2017-04-23 194 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

或者我可以将双数组转换为其他参数? –