基于线性核函数的SVM数据分类算法matlab仿真

目录

1.程序功能描述

2.测试软件版本以及运行结果展示

3.核心程序

4.本算法原理

5.完整程序


1.程序功能描述

基于线性核函数的SVM数据分类算法matlab仿真,通过程序产生随机的二维数据,然后通过SVM对数据进行分类,SVM通过编程实现,不使用MATLAB自带的工具箱函数。

2.测试软件版本以及运行结果展示

MATLAB2022A版本运行

(完整程序运行后无水印)

3.核心程序

 % 生成随机数据点
X1 = [10*rand(100,2)];
Y1 = ones(length(X1),1);
% 移动并复制数据点,生成第二组
X2 = [X1(:,1)+6,X1(:,2)+6];
Y2 = 0*ones(length(X2),1);
X  = [X1;X2];% 合并两组点为最终数据集
y  = [Y1;Y2];% 合并两组标签

% 设置惩罚参数C的两种情况
C      = [1,100];
% 使用SVM训练模型,线性核函数,设置容差和最大迭代次数
model1 = svmTrain(X,y,C(1),@linearKernel,1e-4,50);
model2 = svmTrain(X,y,C(2),@linearKernel,1e-4,50);

% 获取模型参数w和b,绘制决策边界
w   = model1.w;
b   = model1.b;
xp1 = linspace(min(X(:,1)), 1.0*max(X(:,1)), 100); % 生成x轴绘图范围的等间距点
yp1 = -(w(1)*xp1 + b)/w(2); % 根据w和b计算对应的y值,绘制直线

w   = model2.w;
b   = model2.b;
xp2 = linspace(min(X(:,1)), 1.0*max(X(:,1)), 100);
yp2 = -(w(1)*xp2 + b)/w(2);


figure 
pos = find(y == 1); neg = find(y == 0);
plot(X(pos, 1), X(pos, 2), 'ks', 'MarkerFaceColor', 'r', 'MarkerSize', 8)
hold on;
plot(X(neg, 1), X(neg, 2), 'ko', 'MarkerFaceColor', 'g', 'MarkerSize', 8)
hold off;


hold on;
plot(xp1, yp1, 'linewidth', 2); 
hold on;
plot(xp2, yp2, 'linewidth', 2); 




legend('positivo', 'negativo', 'C=1', 'C=10');
title('SVM分类结果');
59

4.本算法原理

支持向量机(SVM, Support Vector Machine)是一种强大的监督学习算法,广泛应用于分类和回归任务。在分类任务中,线性核函数的SVM通过寻找一个最优的超平面来实现数据的分类,这个超平面尽可能地最大化不同类别之间的间隔。

3. 分类决策规则

5.完整程序

VVV

相关推荐
Purepisces16 分钟前
深度学习笔记: 最详尽解释预测系统的分类指标(精确率、召回率和 F1 值)
人工智能·笔记·python·深度学习·机器学习·分类
机器学习之心2 小时前
独家首发 | Matlab实现SVM-Transformer多变量回归预测
支持向量机·matlab·transformer·svm-transformer
阿昆的科研日常2 小时前
Matlab进阶绘图第62期—滑珠气泡图
开发语言·matlab·可视化·论文插图
IT猿手7 小时前
2024最新算法:北极海鹦优化(Arctic puffin optimization,APO)算法求解23个函数,MATLAB代码
开发语言·算法·matlab·优化算法·图搜索算法
Ezekiel Mok13 小时前
面向阿克曼移动机器人(自行车模型)的LQR(最优二次型调节器)路径跟踪方法
matlab·自动驾驶·汽车·移动机器人·路径跟踪·lqr
托比-马奎尔13 小时前
6.26.4 基于视觉变换的乳房x光片分类迁移学习
分类·数据挖掘·迁移学习
哥廷根数学学派14 小时前
基于LMS自适应滤波的窄带信号宽带噪声去除(MATLAB R2021B)
开发语言·人工智能·算法·matlab
Evand J15 小时前
EKF+UKF+CKF+PF的效果对比|三维非线性滤波|MATLAB例程
开发语言·matlab
小桥流水---人工智能18 小时前
MATLAB的.m文件与Python的.py文件:比较与互参
开发语言·python·matlab
东方佑19 小时前
Python教程--基本技能
前端·数据库·windows·笔记·python·分类