2017-04-23 201 views
1

我的項目是使用MATLAB中的SVM分類器進行急性腦卒中分類。使用GLCM特徵的SVM分類器

下面的屏幕截圖顯示了使用glcm(其被稱爲svm分類器的訓練數據)的13個特徵提取急性腦卒中(21個患者)和正常腦(6個患者)。

features

以下屏幕截圖顯示Y或組訓練數據。

Y

這是我使用的代碼和它的顯示錯誤。

Load Trainset.mat 
data = new_var; 
group = label; 
SVMStruct = svmtrain(data, group, 'kernel_function', 'linear'); 
newClasses = svmclassify(SVMStruct, texturedata, 'showplot', true); 
%To plot classification graphs, SVM can take only two dimensional data 
data1 = [new_var(:, 1), new_var(:, 2)]; 
newfeat = [texturedata(:, 1), texturedata(:, 2)]; 
SVMStruct_new = 
svmtrain(data, group, 'kernel_function', 'linear', 'showplot', true); 
%species_Linear_new = svmclassify(SVMStruct_new, newfeat, 'showplot', true); 

警告:Y包含沒有出現在這些水平將用於訓練分類而言可以忽略Y的元素絕對水平。 在svmtrain at 277

使用svmtrain時出錯(第335行) Y必須包含方法'SMO'的恰好兩個組。

我認爲這是因爲正常大腦的值0NAN該行被忽略。所以我的問題是:我應該怎麼做才能包含這一行,或者它絕對不適用於此代碼?

回答

0

你的數據組不好。如果這是一個準確的數據集,則根本不需要機器學習。您可以只使用一個功能,並通過檢查它是否非零來預測急性中風或健康。 (即如果爲零則爲健康,如果爲非零則爲急性中風)。

我猜你沒有健康患者的數據,因此你只是將數據添加到你沒有的數據中。那沒有意義。

是的,你的零和南和Inf是SVM學習的問題。但是更大的問題是即使你對它們進行了預處理,由於我上面提到的原因,數據仍然是無用的。因此,請先嚐試收集更好的數據,然後重新開始。

如果您可以張貼正面和負面圖像(健康而不健康),我可以告訴你什麼功能可以是好的開始。正如我所見,GLCM不適合您的問題/您的計算方式GLCM可能不正確。

希望這有助於

+0

怎樣的方式,我可以得到更好的數據集?我怎麼能用正確的方式計算glcm?請問你能給我先生的方式嗎?對於急性腦卒中,我使用glcm提取急性腦卒中的參考圖像,而對於健康的腦卒中,我使用黑色圖像,因爲我雖然在對正常圖像進行分割時結果使圖像變黑,因爲沒有腦卒中。 –

+0

使用黑色圖像不起作用。我不知道你如何獲得更好的數據集。這是你必須解決的問題 – harshkn

+0

或者我可以將雙數組轉換爲其他參數? –