matlab svm
时间: 2023-07-13 13:04:30 浏览: 123
在MATLAB中使用支持向量机(SVM)需要使用SVM工具箱。SVM是一种分类算法,可以用于二元分类和多元分类。下面是一个简单的示例来说明如何在MATLAB中使用SVM进行二元分类。
假设我们有两个类的数据集,每个类有两个特征。我们可以使用SVM来训练一个分类器,并使用该分类器对新的数据进行分类。以下是一个简单的示例:
```matlab
% 创建数据集
X = [randn(50,2)*0.5+ones(50,2);randn(50,2)*0.5-ones(50,2)];
y = [-ones(50,1);ones(50,1)];
% 训练 SVM
svm = fitcsvm(X,y);
% 绘制决策边界
svmplot(svm,X,y);
function svmplot(svm,X,y)
% 绘制决策边界
x1 = min(X(:,1)):0.01:max(X(:,1));
x2 = min(X(:,2)):0.01:max(X(:,2));
[X1,X2] = meshgrid(x1,x2);
Y = predict(svm,[X1(:),X2(:)]);
figure;
gscatter(X(:,1),X(:,2),y);
hold on;
contour(X1,X2,reshape(Y,size(X1)),[0 0],'k');
title('SVM Decision Boundary');
hold off;
end
```
在上面的代码中,我们首先创建了一个数据集,其中有两个类,每个类有两个特征。然后,我们使用`fitcsvm`函数训练了一个SVM分类器。最后,我们使用自定义的`svmplot`函数绘制了决策边界。
该示例只是SVM在MATLAB中使用的一个简单示例。SVM工具箱还提供了许多其他选项和功能,如不同的内核函数和正则化参数。
阅读全文