在Matlab上使用LIBSVM的svmtrain时出错:C <= 0

时间:2014-12-02 16:21:57

标签: matlab libsvm

数据集:http://www.amlbook.com/data/zip/features.train

我正在加州理工学院在线学习“从数据中学习”。上周,我们有一项任务,我们必须使用支持向量机对数字进行分类。我完成了任务,把一切都搞定了。

本周,我尝试再次运行我的脚本,当我尝试使用libsvm中的svmtrain时出现错误:错误:C&lt; = 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。这不是&lt; = 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;

0 个答案:

没有答案