基于QD求解法的二分类SVM仿真
Posted 我爱C编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于QD求解法的二分类SVM仿真相关的知识,希望对你有一定的参考价值。
目录
CSDN用户:我爱C编程
CSDN主页:https://blog.csdn.net/hlayumi1234567?type=blog
擅长技术:智能优化,路径规划,通信信号,图像处理,深度学习,控制器等。
1.算法概述
支持向量机(support vector machines)是一种二分类模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是间隔最大化,最终转化为一个凸二次规划问题来求解。由简至繁的模型包括:
当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;(也称硬间隔 SVM或线性可分 SVM)
当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;(也称软间隔 SVM或线性不可分 SVM)
当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;(也称核函数或非线性 SVM)
SVM 是一种二分类模型,该模型是定义为特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM 还包括核技巧,这使它成为实质上的非线性分类器。其学习策略就是间隔最大化,可形式化为一个求解凸二次规划的最小化问题。
2.部分程序
......................................................
%%=========================================================================
%定义核函数及相关参数
C =0.1719;
ker=struct('type','linear');
%%=========================================================================
%构造训练样本和训练目标
n = 50;
% randn('state',2);%选择正态分布数据,线性可分样本点
x1 = randn(n,2);
y1 = ones(n,1);
x2 = 4+randn(n,2);
y2 = -ones(n,1);
X = [x1;x2]; % 训练样本,2n×2的矩阵,2n为样本个数,2为样本维数
Y=[y1;y2];
% figure(2)
% plot(x1(:,1),x1(:,2),'x')
figure();
plot(x1(:,1),x1(:,2),'bx',x2(:,1),x2(:,2),'b.');
title('二分类svc');
hold on;
% 构造测试样本
x3 = randn(n,2);
x4 = 5+randn(n,2);
Xd = [x3;x4];
plot(x3(:,1),x3(:,2),'kx',x4(:,1),x4(:,2),'k.');
hold on
...........................................
3.算法部分仿真结果图
A_156
4.完整程序获取
使用版本matlab2022a
解压密码:C+123456
获得方式1(面包多下载):
获取方式2:
如果下载链接失效,加博主微信,或私信。
以上是关于基于QD求解法的二分类SVM仿真的主要内容,如果未能解决你的问题,请参考以下文章
tensorflow实现svm iris二分类——本质上在使用梯度下降法求解线性回归(loss是定制的而已)
SVM分类基于kmeans聚类+SVM的数据分类MATLAB仿真
基于龙格-库塔法Runge-Kutta的常微分方程的求解matlab仿真