SVM matlab代码
时间: 2023-11-25 07:07:13 浏览: 49
以下是一个简单的 SVM Matlab 代码示例:
```matlab
%% Load data
load fisheriris
X = meas(:,3:4);
Y = species;
%% Train SVM model
SVMModel = fitcsvm(X,Y,'KernelFunction','rbf','ClassNames',{'setosa','versicolor','virginica'});
%% Predict labels for new data
xnew = [4.5, 1.7];
[label, score] = predict(SVMModel,xnew);
%% Plot decision boundary
d = 0.02;
[x1Grid,x2Grid] = meshgrid(min(X(:,1)):d:max(X(:,1)),min(X(:,2)):d:max(X(:,2)));
xGrid = [x1Grid(:),x2Grid(:)];
[~,scores] = predict(SVMModel,xGrid);
figure;
h(1:3) = gscatter(X(:,1),X(:,2),Y);
hold on
h(4) = plot(X(SVMModel.IsSupportVector,1),X(SVMModel.IsSupportVector,2),'ko','MarkerSize',10);
contour(x1Grid,x2Grid,reshape(scores(:,2),size(x1Grid)),[0 0],'k');
legend(h,{'setosa','versicolor','virginica','Support Vectors'});
axis tight
```
该代码使用鸢尾花数据集作为示例数据,训练了一个 SVM 模型,并使用 RBF 核函数进行分类。然后,使用模型预测新数据的标签,并在图表中绘制决策边界。