matlab向量机代码
时间: 2023-10-01 19:04:09 浏览: 21
以下是一个简单的MATLAB向量机示例代码,使用线性核函数进行分类:
% 生成样本数据
X = [1 1; 1 2; 2 2; 2 3; 3 2; 3 3; 4 4; 4 5; 5 4; 5 5];
Y = [-1; -1; -1; -1; -1; 1; 1; 1; 1; 1];
% 训练向量机
svm = fitcsvm(X, Y, 'KernelFunction', 'linear');
% 绘制决策边界
figure;
svmplot(svm, X, Y);
% 预测新数据
newX = [1.5 1.5; 3.5 3.5];
predY = predict(svm, newX);
disp(predY);
function svmplot(svm, X, Y)
% 绘制决策边界
sv = svm.SupportVectors;
figure;
gscatter(X(:,1), X(:,2), Y);
hold on;
plot(sv(:,1), sv(:,2), 'ko', 'MarkerSize', 10);
% 计算决策边界
xlim = get(gca, 'XLim');
ylim = get(gca, 'YLim');
[x, y] = meshgrid(linspace(xlim(1), xlim(2), 100), linspace(ylim(1), ylim(2), 100));
xy = [x(:) y(:)];
[~, score] = predict(svm, xy);
contour(x, y, reshape(score(:,2), size(x)), [0 0], 'LineWidth', 2);
end