SVMmatlab代码
时间: 2023-11-25 22:07:31 浏览: 31
以下是一个简单的SVM Matlab代码示例:
```matlab
% 加载数据
load fisheriris;
X = meas(:,1:2);
Y = species;
% 将鸢尾花数据集分成训练和测试集
cv = cvpartition(Y,'HoldOut',0.3);
Xtrain = X(cv.training,:);
Ytrain = Y(cv.training,:);
Xtest = X(cv.test,:);
Ytest = Y(cv.test,:);
% 训练SVM模型
SVMModel = fitcsvm(Xtrain,Ytrain);
% 预测测试集结果
Ypred = predict(SVMModel,Xtest);
% 计算精度
accuracy = sum(Ypred == Ytest)/length(Ytest);
% 显示分类结果
gscatter(Xtest(:,1),Xtest(:,2),Ytest)
hold on
h = ezplot(@(x1,x2)predict(SVMModel,[x1,x2]),get(gca,'XLim'));
h.Color = 'r';
h.LineWidth = 2;
title(sprintf('Accuracy = %.2f%%',accuracy*100))
legend('versicolor','virginica','SVM decision boundary')
hold off
```
此代码演示了如何使用SVM对鸢尾花数据集进行分类。首先,数据集被加载并分成训练和测试集。然后,使用fitcsvm函数训练SVM模型。接下来,使用predict函数预测测试集结果,并计算精度。最后,使用gscatter和ezplot函数可视化分类结果和决策边界。