支持向量机 鸢尾花 matlab代码
时间: 2024-05-30 18:07:15 浏览: 134
支持向量机(Support Vector Machine,SVM)是一种二分类模型,其基本想法是找到将两类样本分开的最优超平面。在此基础上,SVM通过引入核函数将线性模型推广到非线性情况下,并引入软间隔与松弛变量处理非完全线性可分的情况。SVM 在实际应用中具有良好的表现。
鸢尾花(Iris)是一个经典的数据集,常用于机器学习和数据挖掘的训练和测试。
Matlab是一个非常强大的数学软件,也提供了SVM的相关函数和工具箱,可以方便地进行SVM模型的建立和分析。
以下是利用Matlab实现鸢尾花数据集上的SVM分类器的代码:
```matlab
% 加载鸢尾花数据集
load fisheriris
% 将数据集分为训练集和测试集
cv = cvpartition(species,'HoldOut',0.3);
idx = cv.test;
dataTrain = meas(~idx,:);
speciesTrain = species(~idx,:);
dataTest = meas(idx,:);
speciesTest = species(idx,:);
% 训练SVM模型
svmModel = fitcsvm(dataTrain,speciesTrain,'KernelFunction','rbf','Standardize',true,'ClassNames',{'setosa','versicolor','virginica'});
% 预测测试集
predicted = predict(svmModel,dataTest);
% 计算准确率
accuracy = sum(predicted == speciesTest)/size(speciesTest,1);
disp(['Accuracy: ' num2str(accuracy*100) '%']);
```
阅读全文