2014-10-07 83 views
-2

我正在处理一个用于用户认证的数据集,并且我想将我的列车数据划分为冒名顶替者和有效用户。它有31个功能和51个用户。matlab中的svm精度代码

我有200个火车样本和200个样本用于测试。这是我的代码:

ttrain=[train;train2]  
group=[repmat(1,100,1);repmat(2,100,1)]  
model=svmtrain(ttrain,group,'kernel_function','rbf')  
testoutput=svmclassify(model,test,'Showplot','false') 

但是当我想用下面的代码来计算的精度,它显示错误: "Undefined function 'eq' for input arguments of type 'struct'."

acc = sum(model == testoutput) ./ numel(testoutput)  

我该怎么办?

+0

你能澄清一下吗?上面你说你的火车数据有31个功能和51个用户。对我来说,听起来像你的训练集中有51个例子。在下面,你陈述你的训练数据由200个例子组成。 “51用户”是什么意思? – user1809923 2014-10-07 19:19:18

回答

0

模型是SVMStruct,因此无法使用“==”进行比较。你想要做的是计算你的支持向量机正确预测了多少个例子,并将这个数字除以测试例子的总数。

我会假设你必须做这样的事情有以下前提:

  • correctLabels是正确的例子标签你 测试SVM为:

    ACC = SUM (correctLabels == testoutput)/ numel(correctLabels)