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: 小说
Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐