【问题标题】:SVM Classifier using GLCM features使用 GLCM 特征的 SVM 分类器
【发布时间】:2017-09-19 21:04:58
【问题描述】:

我的项目是在 MATLAB 中使用 SVM 分类器进行急性中风分类。

下面的截图显示了使用被称为 svm 分类器训练数据的 glcm 对急性中风(21 名患者)和正常脑(6 名患者)进行的 13 个特征提取。

以下屏幕截图显示了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 中 277

使用 svmtrain 时出错(第 335 行) 对于方法“SMO”,Y 必须恰好包含两个组。

我认为这是因为正常大脑的值0NAN 被忽略了。所以我的问题是:我应该怎么做才能包含该行,或者它可能绝对不适用于这段代码?

【问题讨论】:

    标签: matlab image-processing svm feature-extraction glcm


    【解决方案1】:

    您的数据集不是一个好的数据集。如果这是一个准确的数据集,那么您根本不需要机器学习。您可以只使用一项功能并通过检查它是否非零来预测是急性中风还是健康。 (即如果为零则为健康,如果为非零则为急性中风)。

    我猜您没有健康患者的数据,因此您只是在没有的数据中添加零。这没有意义。

    是的,你的零和 Nan 和 Inf 是 SVM 学习的问题。但更大的问题是,即使你对它们进行了预处理,由于我上面提到的原因,数据仍然没有用。所以尝试先收集更好的数据,然后重新开始。

    如果您可以发布一张正面和负面的图片(健康的和不健康的),我可以告诉您哪些功能可能是好的开始。正如我所见,GLCM 不适用于您的问题/您计算 GLCM 的方式可能不正确。

    希望对你有帮助

    【讨论】:

    • 如何获得更好的数据集?我怎样才能用正确的方法计算glcm?先生,你能给我方法吗?对于急性中风,我使用 glcm 提取急性中风的参考图像,而对于健康人,我使用黑色图像,因为我在对正常图像进行分割时,结果使图像变黑,因为没有中风。
    • 使用黑色图像不起作用。我不知道你如何获得更好的数据集。这就是你要解决的问题
    • 或者我可以将双数组转换为其他参数?
    • 你似乎不知道自己在做什么。最好你阅读更多关于这个分类的话题,然后尝试解决这个问题
    猜你喜欢
    • 1970-01-01
    • 2012-03-13
    • 2013-04-23
    • 2018-11-29
    • 2012-04-19
    • 2012-09-17
    • 2018-03-16
    • 2018-05-26
    • 2015-12-09
    相关资源
    最近更新 更多