编写一个支持向量机模型训练拟合matlab程序
时间: 2024-02-07 07:03:05 浏览: 28
当然可以!下面是一个简单的MATLAB程序,用于训练一个支持向量机(SVM)模型并拟合数据:
```matlab
% 准备训练数据
X = [1, 1; 2, 2; 3, 3; 4, 4; 5, 5]; % 特征矩阵
y = [1; 1; -1; -1; -1]; % 类别标签
% 训练SVM模型
svmModel = fitcsvm(X, y);
% 绘制决策边界
figure;
gscatter(X(:, 1), X(:, 2), y, 'rgb', 'osd');
hold on;
h = svmModel.Beta' * svmModel.SupportVectors' + svmModel.Bias;
h = ezplot(@(x1, x2) h(1)*x1 + h(2)*x2 + h(3), xlim, ylim);
set(h, 'Color', 'k', 'LineWidth', 2);
legend('Class 1', 'Class 2', 'Support Vectors', 'Decision Boundary');
title('SVM Model');
% 预测新样本
X_new = [6, 6; 7, 7];
y_pred = predict(svmModel, X_new);
disp(y_pred);
```
这个示例代码中,我们首先准备了训练数据 `X` 和类别标签 `y`。然后,我们使用 `fitcsvm` 函数来训练一个SVM模型。接下来,我们绘制了决策边界和支持向量,并用 `ezplot` 函数绘制了决策边界。最后,我们使用训练好的模型对新样本 `X_new` 进行预测,并输出预测结果 `y_pred`。
请注意,这只是一个简单的示例,实际使用中可能需要对数据进行预处理、调整模型参数等。你可以根据自己的需求进行修改和扩展。