向量自动分类 matlab举例
时间: 2023-10-16 18:29:44 浏览: 33
以下是一个示例的 MATLAB 代码,演示如何使用支持向量机(SVM)对向量进行自动分类:
```matlab
% 加载数据
load fisheriris
X = meas(:,3:4);
Y = species;
% 将数据分为训练集和测试集
cv = cvpartition(Y,'HoldOut',0.2);
idxTrain = cv.training(1);
idxTest = cv.test(1);
% 训练 SVM 模型
svmModel = fitcsvm(X(idxTrain,:),Y(idxTrain),'KernelFunction','rbf',...
'ClassNames',{'setosa','versicolor','virginica'});
% 预测测试集
yPred = predict(svmModel,X(idxTest,:));
% 计算准确率
accuracy = sum(strcmp(yPred,Y(idxTest)))/cv.TestSize
% 绘制决策边界
figure
gscatter(X(idxTest,1),X(idxTest,2),Y(idxTest))
hold on
ezpolar(@(x)1);
ezpolar(@(x)-1);
h = gca;
xlim(h.XLim)
ylim(h.YLim)
title('SVM - Decision Boundary')
legend('off')
```
这个示例使用了鸢尾花数据集,其中每个样本都有四个特征。我们只选择了其中的两个特征,并使用 SVM 对其进行分类。代码中的 `fitcsvm` 函数训练 SVM 模型,`predict` 函数用于预测测试集,`strcmp` 函数计算准确率。最后,我们绘制了决策边界,以便更好地理解分类结果。