基于支持向量机SVM的二分类问题(fitcsvm函数)
matlab2018及之后的版本取消了svmtrain和svmclassify函数,取而代之的更多的fitcsvm和predict函数。但是也使得决策边界无法直接生成,需要根据fitcsvm中得到的参数画出决策边界。
线性二分类
问题1:编写程序,用SVM方法解决线性二分类问题
数据集:testSet-linear.txt。
要求:给出代码、数据集分布示意图、支撑向量坐标及图示、决策边界图示
数据集为100*3,前两列为数据的坐标,第三列为数据标签(1、-1)。保存在文本文件中。
代码实现
close all
clear
clc
%% 数据部分
data=load('testSet-linear.txt');
sd=data(:,1:2);
y=data(:,3);
Y=nominal(y); %标签
%% 原始数据图像
subplot(1,2,1)
gscatter(sd(:,1),sd(:,2),Y,'rg','+*');
%% SVM
SVMModel=fitcsvm(sd,Y,'KernelFunction','linear');
[lable,score]=predict(SVMModel,sd);
%% 画图
subplot(1,2,2)
h = nan(3,1);