matlab下libsvm测试heart_scale的问题

[复制链接]
xirden 发表于 2012-8-26 11:25:13
各位大侠,我在matlab中安装好libsvm后测试heart_scale,出现了一下问题,

load heart_scale
??? Error using ==> load
Number of columns on line 2 of ASCII file D:\Program Files
(x86)\MATLAB\libsvm-3.12\heart_scale
must be the same as previous lines.
后来在网上看到可以用libsvmread函数加载数据,但是没有出现 heart_scale_inst 和heart_scale_label这项,二是出现下面两个 未命名.jpg 是怎么回事?哪位大侠能帮我解决,万分感激!!!

27 条回复


jieni622 发表于 2012-10-2 20:09:35
我的也出现了同样的问题,不知道什么情况哎

chacha19880518 发表于 2012-10-3 16:41:39
我也出现了同样的问题 初学者啊 不明白 估计格式不支持

swordman1972 发表于 2013-1-13 21:11:47
只能用libsvm自带的libsvmread去读

swordman1972 发表于 2013-1-13 21:14:40
[a,b]=libsvmread('heart_scale')

xirden 发表于 2013-4-5 10:27:25
谢谢哈,我试试

JoyChen 发表于 2013-4-11 10:37:19
swordman1972 发表于 2013-1-13 21:14
[a,b]=libsvmread('heart_scale')

我的可以load进去,但
[a,b]=libsvmread('heart_scale');
can't open input file heart_scale

564669104 发表于 2013-7-13 17:09:46
JoyChen 发表于 2013-4-11 10:37
我的可以load进去,但
[a,b]=libsvmread('heart_scale');
can't open input file heart_scale

请问你 解决了没?我也遇见了这个问题 弄了好久就没有解决

life段会 发表于 2013-9-2 17:45:30

非常感谢啊!

life段会 发表于 2013-9-2 17:45:53

非常感谢啊!

活水~ 发表于 2013-11-15 16:40:09
564669104 发表于 2013-7-13 17:09
请问你 解决了没?我也遇见了这个问题 弄了好久就没有解决

用绝对路径就ok了

peace_2013 发表于 2013-12-10 16:09:35
活水~ 发表于 2013-11-15 16:40
用绝对路径就ok了

首先把heart_scale文件拷到matlab文件夹中,然后使用libsvmread('heart_scale')加载就ok了

742118819lovely 发表于 2014-3-20 15:22:26
我是新手,也遇到了同样的问题,可是我不知道去哪下载:matlab型数据集heart_scale文件,请指教!

742118819lovely 发表于 2014-3-20 15:22:44
着急啊,

周文静 发表于 2014-5-13 19:23:58
呜呜看不懂

clhfio 发表于 2014-5-14 09:13:20
这个载入就行了

heart_scale.mat

28.23 KB, 下载次数: 11227


fuzhanpeng 发表于 2014-11-28 12:25:27
编译一下你的libsvm

w1553393104 发表于 2015-12-18 16:17:13
564669104 发表于 2013-7-13 17:09
请问你 解决了没?我也遇见了这个问题 弄了好久就没有解决

你的问题解决了吗,我也遇到相同的问题了

yy03101050233 发表于 2016-1-7 16:34:18
peace_2013 发表于 2013-12-10 16:09
首先把heart_scale文件拷到matlab文件夹中,然后使用libsvmread('heart_scale')加载就ok了 ...

谢谢你。问题已解决。

黄HHH 发表于 2017-4-26 15:40:44
clhfio 发表于 2014-5-14 09:13
这个载入就行了

谢谢。。。。。。。。。。。。。。。。。。。。

天道酬勤MATLAB 发表于 2017-6-22 11:52:00
把heart_scale文件换成下面这个就可以

heart_scale.mat

28.23 KB, 下载次数: 87


hust.hae.mao 发表于 2017-8-11 19:39:29
我用的是libsvm-3.22版本,在工具箱matlab目录下是没有heart_scale文件的,而是在该文件夹的上一级文件夹,故在读取的时候需要考虑到路径的问题
[a,b]=libsvmread('..\heart_scale')
这个跟视频中不一样的地方还有这个heart_scale文件并不是matlab的.mat文件,这属于版本问题,为了让给数据能适应其他的比如java等语言,更具有通用性。
1.png matlab文件夹下的libsvmread函数
2.png matlab文件夹的上一级文件夹中的heart_scale文件

y1234_yy 发表于 2017-10-19 10:10:29
使用[a,b]=libsvmread('..\heart_scale'),得到结果是图片所示。请问楼主怎么解决啊 `T6}V6L6[FNR~W0TQU4U1@Y.png

后来下载了heart_scale.mat还是错误

>> [a,b]=load('E:\2017_sds\svm\heart_scale.mat');
Error using load
Too many output arguments.

>> [a,b]=libsvmread('E:\2017_sds\svm\heart_scale.mat');
Wrong input format at line 1


anhai 发表于 2017-11-22 15:55:53
matlab打开README文件,有答案。我的是libsvm3.22。每个版本不一样的
Train and test on the provided data heart_scale:

matlab> [heart_scale_label, heart_scale_inst] = libsvmread('../heart_scale');
matlab> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07');
matlab> [predict_label, accuracy, dec_values] = svmpredict(heart_scale_label, heart_scale_inst, model); % test the training data

For probability estimates, you need '-b 1' for training and testing:

matlab> [heart_scale_label, heart_scale_inst] = libsvmread('../heart_scale');
matlab> model = svmtrain(heart_scale_label, heart_scale_inst, '-c 1 -g 0.07 -b 1');
matlab> [heart_scale_label, heart_scale_inst] = libsvmread('../heart_scale');
matlab> [predict_label, accuracy, prob_estimates] = svmpredict(heart_scale_label, heart_scale_inst, model, '-b 1');

To use precomputed kernel, you must include sample serial number as
the first column of the training and testing data (assume your kernel
matrix is K, # of instances is n):

matlab> K1 = [(1:n)', K]; % include sample serial number as first column
matlab> model = svmtrain(label_vector, K1, '-t 4');
matlab> [predict_label, accuracy, dec_values] = svmpredict(label_vector, K1, model); % test the training data

We give the following detailed example by splitting heart_scale into
150 training and 120 testing data.  Constructing a linear kernel
matrix and then using the precomputed kernel gives exactly the same
testing error as using the LIBSVM built-in linear kernel.

matlab> [heart_scale_label, heart_scale_inst] = libsvmread('../heart_scale');
matlab>
matlab> % Split Data
matlab> train_data = heart_scale_inst(1:150,;
matlab> train_label = heart_scale_label(1:150,;
matlab> test_data = heart_scale_inst(151:270,;
matlab> test_label = heart_scale_label(151:270,;
matlab>
matlab> % Linear Kernel
matlab> model_linear = svmtrain(train_label, train_data, '-t 0');
matlab> [predict_label_L, accuracy_L, dec_values_L] = svmpredict(test_label, test_data, model_linear);
matlab>
matlab> % Precomputed Kernel
matlab> model_precomputed = svmtrain(train_label, [(1:150)', train_data*train_data'], '-t 4');
matlab> [predict_label_P, accuracy_P, dec_values_P] = svmpredict(test_label, [(1:120)', test_data*train_data'], model_precomputed);
matlab>
matlab> accuracy_L % Display the accuracy using linear kernel
matlab> accuracy_P % Display the accuracy using precomputed kernel

Note that for testing, you can put anything in the
testing_label_vector.  For more details of precomputed kernels, please
read the section ``Precomputed Kernels'' in the README of the LIBSVM
package.

冷凝的月光 发表于 2018-6-3 22:02:49
请问heart scale 在哪里下的,能不能发我一份
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表