首先,确保您的MATLAB环境已经安装了Statistics and Machine Learning Toolbox。如果没有,请先安装此工具箱以获取必要的函数支持。
接下来,我们准备一些示例数据用于训练和支持向量机模型。假设我们有一个二维数据集,其中包含两类点,我们需要根据这些点的位置来区分它们。
```matlab
% 创建随机数据
rng(1); % 设置随机种子以便结果可重复
X = [randn(100,2)+ones(100,2); randn(100,2)-ones(100,2)];
Y = [-ones(100,1); ones(100,1)];
```
这里我们创建了一个由200个样本组成的数据集,每个样本有两个特征。标签分为两类,分别标记为-1和1。
然后,我们将使用`fitcsvm`函数来训练我们的支持向量机模型:
```matlab
% 训练SVM模型
svmModel = fitcsvm(X, Y);
```
训练完成后,可以绘制出决策边界以及支持向量的位置:
```matlab
% 绘制数据点和决策边界
figure;
gscatter(X(:,1), X(:,2), Y,'br','ox');
hold on;
% Plot the boundary and support vectors
x1 = linspace(min(X(:,1)),max(X(:,1)),100);
x2 = -(svmModel.Bias + svmModel.SVMModel.SupportVectors(:,1)svmModel.LinearCoefficients(1) + ...
svmModel.SVMModel.SupportVectors(:,2)svmModel.LinearCoefficients(2)) / ...
svmModel.LinearCoefficients(2);
plot(x1,x2,'k--');
title('Support Vector Machine Classification');
xlabel('Feature 1');
ylabel('Feature 2');
legend('Class -1','Class 1','Support Vectors','Location','Best');
axis equal;
```
这段代码会生成一张图表,显示原始数据点及其类别,同时标出由支持向量定义的决策边界。
最后,如果您想对新数据进行预测,可以使用`predict`方法:
```matlab
% 对新数据进行预测
newData = [0.5; -0.2];
predictedLabel = predict(svmModel, newData);
disp(['Predicted Label: ', num2str(predictedLabel)]);
```
以上就是利用MATLAB实现支持向量机的基本步骤。这种方法简单易懂,适合初学者快速上手并理解SVM的工作原理。当然,在处理更复杂的问题时,可能还需要调整更多的参数或选择不同的内核函数等高级技巧。