【问题标题】:How to Improve Classification Accuracy with Support Vector Machine如何使用支持向量机提高分类精度
【发布时间】:2020-04-29 10:56:21
【问题描述】:

我有 7 类与大脑信号活动 (EEG) 相关的输入。 当类的数量很大时,分类算法的性能可能会受到影响。 正如您在以下代码中看到的那样,我为它们提取了特征,在第一阶段,我用 70% 的数据训练了我的模型,并获得了 100% 的准确率,但在测试阶段,我没有得到剩下的 30%超过 42.5% 的准确率。您对提高模型的准确性有什么建议?

for i=1:7
    [A D]=dwt2(segment_train(i).train,'db1');
    wave_train(i).A=A;
    wave_train(i).D=D;
    f1=mean(A);
    f2=median(A);
    f3=max(D);
    f4=abs(fft(D));
    f4=mean(f4);
    f5=var(D);
    f6=skewness(D);
    f7=entropy(D);
    f8=var(A);
    f9=mean(D);
    f(i,:)=[f1 f2  f3 f4 f5 f6 f7 f8 f9];
end

% feature extraction
% Classifier
nOfSamples=7;
nOfClassInstance=10;
Sample=f;
class=[1 2 3 4 5 6 7]'
%SVM 
Model=fitcecoc(Sample,class);
predictt=predict(Model,Sample);
disp('class predict')
disp([class predictt])

%Accuracy
Accuracy=mean(class==predictt)*100;
fprintf('\nAccuracy =%d\n',Accuracy)

【问题讨论】:

    标签: matlab machine-learning classification svm feature-extraction


    【解决方案1】:

    这个问题有点宽泛。但是,探索类标签的分布是个好主意。

    也许类的分布有偏差?某些类的出现率可能比其他类多得多。有多种方法可以解决此问题,例如上/下采样、使用较大因子加权欠采样类的误差等。在线进一步探索这一点是个好主意。

    话虽如此,听起来您确实过度拟合了模型。您可能还想探索正则化以对抗低测试分数。

    【讨论】:

      猜你喜欢
      • 2019-12-27
      • 2011-07-01
      • 2017-05-17
      • 2013-08-31
      • 2010-12-29
      • 2016-08-19
      • 2015-04-03
      • 2018-05-28
      • 2019-08-06
      相关资源
      最近更新 更多