支持向量机matlab例子
时间: 2023-10-30 16:09:38 浏览: 85
好的,以下是一个简单的支持向量机的 Matlab 例子:
```matlab
% 加载数据
load fisheriris
X = meas(:,3:4);
Y = species;
% 将数据分为训练集和测试集
cv = cvpartition(Y,'HoldOut',0.3);
idx = cv.test;
Xtrain = X(~idx,:);
Ytrain = Y(~idx,:);
Xtest = X(idx,:);
Ytest = Y(idx,:);
% 训练 SVM 模型
SVMModel = fitcsvm(Xtrain,Ytrain);
% 预测测试集
Ypred = predict(SVMModel,Xtest);
% 计算准确率
accuracy = sum(Ypred == Ytest)/length(Ytest)
% 可视化分类结果
figure;
gscatter(Xtest(:,1),Xtest(:,2),Ypred);
hold on;
h = ezplot(@(x1,x2)predict(SVMModel,x1,x2]),get(gca,'XLim'),get(gca,'YLim'));
title(sprintf('Accuracy = %.2f%%',accuracy*100));
legend('Versicolor','Virginica','Boundary');
```
相关问题
支持向量机matlab实现例子
以下是一个在MATLAB中实现支持向量机的简单示例:
```matlab
% 加载数据集
load fisheriris
X = meas(:,3:4); % 使用花萼长度和花瓣长度作为特征
Y = species;
% 将标签转换为类别索引
groups = ismember(Y,'versicolor');
Y = do
支持向量机matlab实例
以下是一个支持向量机的MATLAB实例:
```matlab
% 创建一个简单的二分类数据集
X = [1 1; 2 2; 3 3; 4 4; 5 5; 1 5; 2 4; 4 2; 5 1];
Y = [1; 1; 1; 1; 1; -1; -1; -1; -1];
% 训练支持向量机模型
svmModel = fitcsvm(X, Y);
% 绘制决策边界和支持向量
figure;
gscatter(X(:,1), X(:,2), Y, 'rb', 'o+');
hold on;
h = svmModel.SupportVectors;
plot(h(:,1), h(:,2), 'ko', 'MarkerSize', 10);
sv = svmModel.SupportVectorIndices;
legend('Class 1', 'Class -1', 'Support Vector');
title('Support Vector Machine');
hold off;
```
这个例子创建了一个简单的二分类数据集,并使用`fitcsvm`函数训练了一个支持向量机模型。然后,使用`gscatter`函数绘制了数据点和类别,使用`plot`函数绘制了支持向量,最后使用`legend`和`title`函数添加了图例和标题。
阅读全文