matlab人工智能算法模型、支持向量机算法SVM
本文主要介绍matlab人工智能算法模型、支持向量机算法SVM喜欢的朋友记得关注噢,持续更新~
·
matlab
by lqx
人工智能算法模型
支持向量机算法SVM
% 示例一
% 生成示例数据
rng(1); % 设置随机数种子,保证结果可重现
N = 100; % 样本数量
X = [randn(N,2)-ones(N,2); randn(N,2)+ones(N,2)]; % 特征向量
y = [ones(N,1); -ones(N,1)]; % 类别标签
% 训练支持向量机模型
svmModel = fitcsvm(X, y);
% 在训练集上进行预测
predictedLabels = predict(svmModel, X);
% 计算训练集的准确率
accuracy = sum(predictedLabels == y) / numel(y);
fprintf('训练集准确率: %.2f%%\n', accuracy * 100);
% 可视化分类结果
figure;
gscatter(X(:,1), X(:,2), y, 'rb', 'o*');
hold on;
% 绘制支持向量
sv = svmModel.SupportVectors;
plot(sv(:,1), sv(:,2), 'ko', 'MarkerSize', 10);
% 绘制决策边界
x1range = linspace(min(X(:,1))-1, max(X(:,1))+1, 100);
x2range = linspace(min(X(:,2))-1, max(X(:,2))+1, 100);
[X1, X2] = meshgrid(x1range, x2range);
XGrid = [X1(:), X2(:)];
[~, scores] = predict(svmModel, XGrid);
contour(X1, X2, reshape(scores(:,2), size(X1)), [0 0], 'k');
legend('Class 1', 'Class -1', 'Support Vector', 'Decision Boundary');
xlabel('Feature 1');
ylabel('Feature 2');
title('SVM Classification');
% 原始数据
X = [300, 25.0;
250, 18.5;
400, 30.0;
200, 20.0;
350, 28.0];
y = [-1;
1;
1;
-1;
1];
% 训练 SVM 模型
svmModel = fitcsvm(X, y);
% 测试数据
testX = [320, 26.0;
280, 19.5;
380, 31.0];
% 预测分类标签
y_pred = predict(svmModel, testX);
% 输出预测结果
disp('预测结果:');
for i = 1:length(y_pred)
if y_pred(i) == 1
disp(['书籍', num2str(i), ': 小说']);
else
disp(['书籍', num2str(i), ': 非小说']);
end
end
%结果展示
预测结果:
书籍1: 小说
书籍2: 小说
书籍3: 小说
更多推荐
所有评论(0)