SVM和LS-SVM的分类效果对比matlab代码
时间: 2024-01-10 16:08:08 浏览: 27
以下是使用 Matlab 对 SVM 和 LS-SVM 的分类效果进行对比的一个简单示例:
```matlab
% 构造训练数据集
X = [1 2; 2 3; 3 1; 4 3; 5 3; 6 2];
y = [1; 1; -1; -1; -1; 1];
% 定义 SVM 模型
svm_model = fitcsvm(X, y, 'KernelFunction', 'linear');
svm_model = fitPosterior(svm_model);
% 定义 LS-SVM 模型
lssvm_model = fitcsvm(X, y, 'KernelFunction', 'linear', 'BoxConstraint', Inf);
lssvm_model = fitPosterior(lssvm_model);
% 绘制决策边界
x1range = min(X(:, 1))-.1:0.01:max(X(:, 1))+.1;
x2range = min(X(:, 2))-.1:0.01:max(X(:, 2))+.1;
[X1, X2] = meshgrid(x1range,x2range);
XGrid = [X1(:),X2(:)];
[~,scores1] = predict(svm_model,XGrid);
[~,scores2] = predict(lssvm_model,XGrid);
figure;
gscatter(X(:,1),X(:,2),y,'rb');
hold on;
contour(X1,X2,reshape(scores1(:,2),size(X1)),[0 0],'k');
contour(X1,X2,reshape(scores2(:,2),size(X1)),[0 0],'m');
legend('Positive','Negative','SVM','LS-SVM','Location','NorthWest');
hold off;
```
在上面的示例中,我们使用 Matlab 中的 fitcsvm 函数定义 SVM 和 LS-SVM 模型,并调用 fitPosterior 方法进行训练。然后,我们使用 predict 方法对整个分类区域进行预测,并绘制决策边界。最后,我们将 SVM 和 LS-SVM 的分类结果进行对比,并用不同颜色的散点图表示原始数据中的正样本和负样本。
需要注意的是,LS-SVM 模型中的核函数类型和参数可以根据实际问题进行选择和调整,这里的示例使用的是线性核函数。另外,我们在定义 LS-SVM 模型时将 BoxConstraint 参数设置为无穷大,这意味着我们不对分类器的容错能力进行限制,从而使得模型更容易过拟合训练数据。