SVM3分类程序matlab
时间: 2024-01-07 13:23:38 浏览: 118
以下是一个使用SVM进行3分类的Matlab程序示例:
```matlab
% 加载数据
load fisheriris
X = meas(:,3:4);
Y = species;
% 将类别标签转换为数字
Y = grp2idx(Y);
% 将数据分为训练集和测试集
cv = cvpartition(Y,'Holdout',0.2);
X_train = X(training(cv),:);
Y_train = Y(training(cv),:);
X_test = X(test(cv),:);
Y_test = Y(test(cv),:);
% 训练SVM模型
SVMModel = fitcecoc(X_train,Y_train);
% 预测测试集数据
Y_pred = predict(SVMModel,X_test);
% 计算分类准确率
accuracy = sum(Y_pred == Y_test) / numel(Y_test);
% 显示分类结果
gscatter(X_test(:,1),X_test(:,2),Y_pred,'rgb','osd');
hold on
gscatter(X_train(:,1),X_train(:,2),Y_train,'rgb','osd');
legend('Class 1','Class 2','Class 3','Location','Best');
hold off
```
这个程序使用了鸢尾花数据集(`fisheriris`),其中包含了4个特征和3个类别。首先,我们将数据分为训练集和测试集。然后,我们使用`fitcecoc`函数训练一个多类别的SVM模型。接下来,我们使用训练好的模型对测试集进行预测,并计算分类准确率。最后,我们使用`gscatter`函数将测试集和训练集的数据点可视化,并用不同的颜色表示不同的类别。
阅读全文