数据集:http://www.amlbook.com/data/zip/features.train
我正在加州理工学院在线学习“从数据中学习”。上周,我们有一项任务,我们必须使用支持向量机对数字进行分类。我完成了任务,把一切都搞定了。
本周,我尝试再次运行我的脚本,当我尝试使用libsvm中的svmtrain时出现错误:错误:C< = 0。
此处的C是软边距SVM中的参数C.
class1 = 1;
class2 = 5;
%read in the data
data = dlmread('train.txt');
data = data(data(:,1) == class1 | data(:,1) == class2, :);
N = size(data,1);
%X matrix and labels vector
Xsv = data(:, 2:end);
labels = data(:,1);
y = zeros(size(labels));
y(labels == class1) = 1;
y(labels ~= class1) = -1;
model1 = svmtrain(y, Xsv, '-t 2 -c 0.01 -g 1')
sv = model1.sv_indices;
b = -model1.rho;
如您所见,我在SVM算法中使用C = 0.01。这不是< = 0.错误发生在“sv = model1.sv_indices;”因为我尝试访问model1中的sv_indices,但是model1有一个错误,所以它是空的。
我将脚本命名为stackoverflow.m,我尝试运行时得到的错误是:
Error: C <= 0
model1 =
[]
Attempt to reference field of non-structure array.
Error in stackoverflow (line 19)
sv = model1.sv_indices;