支持向量机分类鸢尾花matlab代码
时间: 2024-08-04 16:01:21 浏览: 58
MATLAB 构建机器学习模型
支持向量机(SVM)是一种常用的机器学习算法,用于分类和回归分析。在Matlab中,可以使用`fitcsvm`函数来进行SVM分类。下面是一个简单的例子,展示如何使用SVM对Iris数据集(鸢尾花数据集)进行分类:
```matlab
% 导入所需库
addpath('toolboxsvm'); % 如果你安装了统计与机器学习工具箱
% 加载Iris数据集
load fisheriris; % 这将加载到一个名为'meas'的数据结构,包含了特征和目标变量
data = meas;
species = species;
% 划分训练集和测试集
cv = cvpartition(species,'HoldOut',0.3); % 使用30%的数据作为测试集
idx_train = training(cv);
idx_test = test(cv);
% 提取训练集和测试集特征及标签
X_train = data(idx_train,:);
y_train = species(idx_train);
X_test = data(idx_test,:);
y_test = species(idx_test);
% 训练SVM模型
model = fitcsvm(X_train, y_train, 'KernelFunction', 'linear'); % 线性核
% 预测测试集类别
y_pred = predict(model, X_test);
% 评估性能
accuracy = sum(y_pred == y_test) / numel(y_test);
disp(['Accuracy: ', num2str(accuracy), '%']);
```
在这个例子中,我们首先加载鸢尾花数据,然后划分数据集为训练集和测试集。接着训练一个线性核的支持向量机模型,并在测试集上进行预测,最后计算并显示分类精度。
阅读全文