【问题标题】:wrong number of input error in libsvm trainlibsvm train 中输入错误的错误数量
【发布时间】:2015-09-22 05:38:51
【问题描述】:

我想用matlab 中的线性libsvm 函数进行分类。运行此代码时出现Wrong number of arguments 错误:

model1 = svmtrain(xTrain, yTrain, '-t 0');

我的 xTrain 是一个具有 2612*20 维度的双矩阵,而我的 yTrain 是一个 2612*1 向量,其值为 -11,您能帮我看看这段代码有什么问题吗? 提前谢谢你

【问题讨论】:

  • 你是否在路径中添加了 libsvm 库?您似乎使用的是 Matlab 中内置的 svmtrain 而不是 libsvm,因为它们的名称相同。同时,xTrain 和 yTrain 的顺序是错误的,虽然这不是你得到错误的原因。
  • 非常感谢,我添加了路径,它可以工作了

标签: matlab libsvm


【解决方案1】:

问题出在命令'-t 0' 的最后一部分。根据MATLAB,您应该有一个 name-value 作为此函数的第三个参数。

名称-值对参数

指定可选的逗号分隔的名称、值参数对。姓名 是参数名称,Value 是对应的值。名字必须 出现在单引号 (' ') 内。您可以指定多个名称和 值对参数按 Name1,Value1,...,NameN,ValueN 的任意顺序排列。

例如:

svmStruct = svmtrain(xdata,group,'ShowPlot',true);

您可以检查here 以获取正确的name-value 参数。

如果您使用标准选项以外的选项(取决于算法),那么您应该使用命令optimset,如下所示:

my_options = optimset('param1',value1,'param2',value2,...)

那么你可以这样做:

svmStruct = svmtrain(xdata,group,'options',my_options);

【讨论】:

  • 非常感谢您的回答,但我想使用 libsvm 工具箱,因为我在示例中发现我应该为 libsvm 选项使用字符串
  • 你的意思是什么选项。请将编辑添加到问题中。
猜你喜欢
  • 2014-01-11
  • 2017-06-11
  • 2012-03-31
  • 2013-02-12
  • 1970-01-01
  • 2016-07-24
  • 2013-10-07
  • 2012-02-27
  • 2012-05-24
相关资源
最近更新 更多