阅读 49

支持向量机分类(matlab数学建模)

简要了解支持向量机分类

支持向量机是针对二值分类问题提出的,并且成功地应用子解函数回归及一类分类问题。

分类数据并效果展示

分类示例

%数据导入
load ionosphere
rng(1);
%X训练数据,Y训练数据分类,指定15%保留样本,指定类顺序和用于训练的类,标准化数据
CVSVMModel = fitcsvm(X,Y,'Holdout',0.15,'ClassNames',{'b','g'},...
    'Standardize',true);
%抽取训练的紧凑分类器,提取测试指标
CompactSVMModel = CVSVMModel.Trained{1};
testInds = test(CVSVMModel.Partition);
%取训练数据的15%,训练数据分类的15%
XTest = X(testInds,:);
YTest = Y(testInds,:);
%传入参数:训练器、待训练数据
%传出参数:label预测分类 score后验概率
[label,score] = predict(CompactSVMModel,XTest);
%显示实际分类前10个,预测分类前十个,score第二个
table(YTest(1:10),label(1:10),score(1:10,2),'VariableNames',...
    {'TrueLabel','PredictedLabel','Score'})
复制代码

X用于训练的数据,Y用于训练数据的分类,label预测数据分类,score后验概率,CompactSVMModel训练器,XTest用于预测的数据

绘图示例

%导入数据
load fisheriris
inds = ~strcmp(species,'setosa');
X = meas(inds,3:4);
y = species(inds);
%构建训练器
SVMModel = fitcsvm(X,y);
%绘制数据的散点图并圈出支持向量
sv = SVMModel.SupportVectors;
figure
gscatter(X(:,1),X(:,2),y)
hold on
plot(sv(:,1),sv(:,2),'ko','MarkerSize',10)
legend('versicolor','virginica','Support Vector')
hold off
复制代码
文章分类
阅读
文章标签