我们知道SVM的基本原理就是找一个超平面(广义平面)将样本分为几个部分,即分类。
MATLAB中自带SVM包,使用起来也十分方便,假如X是特征矩阵,Y是分类标签(可以是数值(1、2)也可以是string,总之有区别就行。)
二分类代码
SVMModel = fitcsvm(X,y) %训练分类器
CVSVMModel = crossval(SVMModel); %分类器的交叉验证
classLoss = kfoldLoss(CVSVMModel)% 样本内错误率
[~,score] = predict(SVMModel,X_test)%; %样本外的数据进行分类预测
[label,scorePred] = kfoldPredict(CVSVMModel); %样本外的数据进行分类预测结果,
线性分类和非线性分类
我们在训练分类器的时候需要选择是线性分类还是非线性分类,比如如下两种: