2014-10-07 80 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)