ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

ML之SVM:SVM算法的简介、应用、经典案例之详细攻略

2021-06-15 20:56:48  阅读:234  来源: 互联网

标签:SVM ML 分类 支持 算法 攻略 线性 向量


ML之SVM:SVM算法的简介、应用、经典案例之详细攻略

 

 

目录

SVM算法的简介

1、SVM模型分类—线性可分、线性、非线性

2、SVM的决策边界

3、SVM中的核函数

4、SVM算法推导

1.1、SVM转为对偶问题的求解—SMO算法思

5、SVM中“损失+惩罚”框架的灵活性

6、SVM的损失函数分析

SVM的应用——解决的问题类型

1、SVM用作分类

1.1、SVM与二分类

1.2、SVM与多分类

2、SVM用作回归

SVM的经典案例


 

 

SVM算法的简介

        支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类(binary classification)的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。
        SVM的基本思想是:找到集合边缘上的若干数据(称为支持向量(Support Vector)),用这些点找出一个平面(称为决策面),使得支持向量到该平面的距离最大。

 

1、SVM模型分类—线性可分、线性、非线性

        由简至繁的SVM模型包括:

  • 当训练样本线性可分时,通过硬间隔最大化,学习一个线性可分支持向量机;
  • 当训练样本近似线性可分时,通过软间隔最大化,学习一个线性支持向量机;
  • 当训练样本线性不可分时,通过核技巧和软间隔最大化,学习一个非线性支持向量机;
线性可分数据


线性不可分数据

非线性数据

 

 

2、SVM的决策边界

        在分类问题中,很多时候有多个解,如下图左边所示,在理想的线性可分的情况下其决策平面会有多个。而SVM的基本模型是,在特征空间上找到最佳的分离超平面使得训练集上正负样本间隔最大,SVM算法计算出来的分界会保留对类别最大的间距,即有足够的余量,如下图右边所示。

 

 

3、SVM中的核函数

        在解决线性不可分问题时,它可以通过引入核函数,巧妙地解决了在高维空间中的内积运算,从而很好地解决了非线性分类问题。如下图所示,通过核函数的引入,将线性不可分的数据映射到一个高纬的特征空间内,使得数据在特征空间内是可分的。如下图所示:

高斯核函数是无穷维的



 

4、SVM算法推导

 

 

1.1、SVM转为对偶问题的求解—SMO算法思

 

 

5、SVM中“损失+惩罚”框架的灵活性

 

6、SVM的损失函数分析

 

 

 

SVM的应用——解决的问题类型

1、SVM用作分类

1.1、SVM与二分类

二分类Binary Classification,解决输出是0还是1的问题。SVM解决的是二分类。

 

1.2、SVM与多分类

T1、线性核函数Linear Kernal:采用的策略是"one versus one" 。
T2、线性支持向量分类器LinearSVC,采用的策略是"one versus all"

 

2、SVM用作回归

       支持向量回归(Support Vector Regression, SVR)将SVM由分类问题推广至回归问题可以得到支持向量回归(Support Vector Regression, SVR),此时SVM的标准算法也被称为支持向量分类(Support Vector Classification, SVC)。

       支持向量分类的方法能被推广到解决回归问题,称为支持向量回归。由支持向量分类产生的模型仅依赖训练数据的子集,因为创建模型的代价函数并不考虑超过边界的训练点。类似地,由支持向量回归产生的模型仅依赖训练数据的子集,因为创建模型的代价函数忽略任何接近模型预测的训练数据。
      支持向量回归有三个不同的执行版本:rbfSVR,polySVR,linearSVR。linearSVR执行速度比SVR要快,但只提供线性核。fit方法取X, y作为输入参数,这里,y取浮点值而不是分类的整数值。

from sklearn import svm
X = [[0, 0], [2, 2]]
y = [0.5, 2.5]
clf = svm.SVR()
clf.fit(X, y)


 

SVM的经典案例

DL之NN/Average_Darkness/SVM:手写数字图片识别(本地数据集50000训练集+数据集加4倍)比较3种算法Average_Darkness、SVM、NN各自的准确率
MAT之SVM:SVM之Classification根据已有大量数据集案例,输入已有病例的特征向量实现乳腺癌诊断高准确率预测
MAT之SVM/BP:SVR(better)和BP两种方法比较且实现建筑物钢筋混凝土抗压强度预测
ML之SVM:随机产生100个点,建立SVM模型,找出超平面方程
ML之SVM:基于sklearn的svm算法实现对支持向量的数据进行标注

 

 

 

标签:SVM,ML,分类,支持,算法,攻略,线性,向量
来源: https://blog.51cto.com/u_14217737/2906459

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有