0

爲了更好地理解支持向量機在MATLAB中的工作原理,我建議您簡要閱讀THIS VERY IMPORTANT LINK使用支持向量機訓練我的數據集

我想應用相同的概念,但我有不同的火車設置和測試設置。

爲了更精確:

我的列車設置是指被命名爲C2res {1}其中這最後等於:

C2res{1} = 

      1.0e-05 * 

      Columns 1 through 10 

      0.5341 0.5822 0.6185 0.7555 0.7369 0.7131 0.5985 0.6483 0.5668 0.6620 

      Columns 11 through 12 

      0.6523 0.6097 

我的測試集指是命名爲C2res {2}這裏最後一個具有相同形式的C2res {1}但具有不同的值...

然後,我用在上面的鏈接中使用的概念:

XTrain = [C2res{1}]; 
XTest = [C2res{2}]; 
label = [ones(size(C2res{1},2),1)]; 
SVMStruct = svmtrain(XTrain , label, 'kernel_function', 'linear'); 
Group  = svmclassify(SVMStruct, XTest); 

但不幸的是我總是得到這樣的錯誤爲:

Error using svmtrain (line 335) 
Y must contain exactly two groups for method 'SMO'. 

這就是爲什麼我需要你的幫助,請。

任何幫助將不勝感激!

+1

你什麼錯誤,在哪裏?請將此添加到您的問題。 – Dan

+0

謝謝你的回答!購買方式,我在最後更新了我的答案:) – Christina

回答

2

你是否試圖用兩個班來實施分類訓練?您的label = [ones(size(C2res{1},2),1)];只包含一個值,並且似乎預計有兩個值(如兩個類別)。我認爲這就是錯誤出現的原因。

如果您申請一個類SVM,嘗試添加這樣的選擇(見this page更多參考的選項):

SVMStruct = svmtrain(XTrain , label,'-t 0 -s 2'); 
+0

因爲我的數據集(培訓和測試圖像)都是人臉圖像。所以我認爲我只有一個標籤和一個班級。我知道你對HMAX有很好的想法,以及如何使用C2功能:)這就是爲什麼我非常有興趣得到你的幫助:) :) – Christina

+0

@Christina你期待什麼輸出?我想你想讓你的分類器判斷一個給定的數據集是否是正面的,我是否正確?如果是這種情況,則需要使用標籤1來表示臉部,使用-1來表示非臉部。而且你的訓練集也應該包含那些非臉部數據 – lennon310

+0

不,實際上,我所有的圖像都是臉部。但其中一些被用作訓練圖像,其他被用作測試。請我需要你的意見:) – Christina

相關問題