PS:这篇文章讲的是SVM的算法的基础理论知识,因为博主也是刚学习没多久,对SVM的数学思想了解的不是很深,所以这篇文章就简单介绍一下什么是SVM以及SVM是怎么工作的。

1、什么是支持向量机(SVM)

简单来说,SVM是一种用来对数据分类的数学模型。深度学习(2012)出现之前,SVM被认为机器学习中近十几年来最成功,表现最好的算法,是图像识别方面的佼佼者。它对数据的分类有两种模式,一种是线性可分割,另一种是线性不可分割的。下面我们来几个例子。

上面的图片中有两类点,一类是黑色的,另一类是白色的。现在我们要做的是画出一条线,来区分这两类点从图中可以看出,总共是画了三条线,只有粉红色的那条是最完美的。当然咱们这个是在二维的平面上,如果是多维的话那么将是一个超平面。SVM要干的事情就是找到一个超平面(hyper plane)来完美的区分连个类,但从上图我们可以看出,这个平面是不止一个的,多所以我们要找的是最完美的那个超平面。继续看下面的例子。

看左边的那种图,同样是两类点加上一条区分的线,不另外还有两根支撑在两点之间的平行线,这两条虚线到中间的线的距离叫做margin,并且左margin和右margin是相等的,从左边的图可以看出,此时的margin是最小的,我们要的不是这种效果,我们要的最完美的超平面是让两边的margin取最大值。看右边的图,这才是我们需要的建立的超平面,让两个margin最大。在图中我们可以看到,左右两条虚线都支撑在两类点上,我们管这几个点叫做支持向量点(support vector)。

2、线性可区分(linear separable)

其实线性可区分我们已经见识过了,上门的几幅图中我们可以卡到,总是可以找到一条线可以区分开两类点。如下图。

3、数学定义和公式的实现

超平面可以定义为: W·X + b = 0

其中W为weight vector 权重向量 W = {w1,w2,w3,....,wn}, n时候特征的个数

其中X为训练实例

其中b为bias也就是我们常说的截距

现在,我们假设有二维向量X=(x1,x2)

把b想象成二外的 weight

那么超平面的方程将变成: w0 + w1x1 + w2x2 = 0

所有超平面上方的点满足: w0 + w1x1 + w2x2 > 0

所有超平面下方的点满足: w0 + w1x1 + w2x2 < 0

调整weight,使超平面定义边际的两边:

综合上面的两个式子,可以得到:

分界的超平面到H1和H2任意一点的距离为 1/||W|| (其中||W||为向量的范数)

具体的求解比较复杂,博主数学功夫不到家,就不献丑了。

4、线性不可区分(linear inseparable)

但是在有些情况下,我们是找不到那么一条直线可以完美的区分两类点的,就像下面的这张图片。

很明显,区分这两类点的是一个圆而不是一条直线,此时我们应该怎么做呢?

两个步骤来解决:

1 .利用一个非线性的映射把原数据集中的向量点转化到一个更高维度的空间中。

2 .在这个高维度的空间中找一个线性的超平面来根据线性可分的情况处理。

5、将低维转化为高维

ps:以上图片引用全部来自网络。

支持向量机python代码_Python机器学习SVM支持向量机算法理论 | kTWO-个人博客相关推荐

  1. 支持向量机python实例_Python机器学习SVM简单应用实例 | kTWO-个人博客

    1.前言 在上一篇理论性的文章中我们说过了,SVM是分线性可分和线性不可分两种情况的,线性可分的比较容易理解,比较容易一些,线性不可分的就稍微复杂一点了.我们测试就分别用线性可分和线性不可分两种情况分 ...

  2. 支持向量机python代码_Python中的支持向量机SVM的使用(有实例)

    除了在Matlab中使用PRTools工具箱中的svm算法,Python中一样可以使用支持向量机做分类.因为Python中的sklearn库也集成了SVM算法,本文的运行环境是Pycharm. 一.导 ...

  3. 随机森林分类算法python代码_Python机器学习笔记:随机森林算法

    随机森林算法的理论知识 随机森林是一种有监督学习算法,是以决策树为基学习器的集成学习算法.随机森林非常简单,易于实现,计算开销也很小,但是它在分类和回归上表现出非常惊人的性能,因此,随机森林被誉为&q ...

  4. 鸢尾花完整的python代码_python机器学习实现鸢尾花的分类

    鸢尾花(学名:Iris tectorum Maxim)属百合目.鸢尾科,可供观赏,花香气淡雅,可以调制香水,其根状茎可作中药,全年可采,具有消炎作用. 鸢尾花主要有三个品种,setosa,versic ...

  5. 分形几何python代码_Python, Cython绘制美妙绝伦的Mandelbrot集, 曼德博集分形图案

    上世纪60-70年代,美籍数学家曼德博 - Benoit B. Mandelbrot几乎单枪匹马的创立了一个新的数学分支,即分形几何学 - fractal geometry.这个新的数学分支有助于人类 ...

  6. 人工智能python框架_Python 与 AI 智能框架 - 随笔分类 - Hopesun - 博客园

    摘要:ODOO模块网 :http://www.odoomk.com/partner 官方用户手册:https://www.odoo.com/documentation/user/13.0/zh_CN/ ...

  7. 【python代码实现】朴素贝叶斯分类算法

    目录 前置知识 1.概念 2.算法原理 2.1.条件概率 2.2.全概率 2.3.先验概率 2.4.后验概率 朴素贝叶斯分类算法 1.构建数据集 2.分类概率 3.条件概率 4.先验概率 前置知识 1 ...

  8. 波特词干算法 - 残阳似血的博客

    波特词干算法 - 残阳似血的博客 波特词干算法 - 残阳似血的博客 波特词干算法 位于分类 自然语言处理 在英语中,一个单词常常是另一个单词的"变种",如:happy=>ha ...

  9. Python中的TCP的客户端UDP学习----第一篇博客

    Python中的TCP的客户端&UDP学习--第一篇博客 PS: 每日的怼人句子"我真想把我的脑子放到你的身体里,让你感受一下智慧的光芒" 先说UDP流程 发送: 创建套接 ...

最新文章

  1. permutation_importance是什么?背后的思想又是什么?是如何使用permutation_importance计算特征重要度的?
  2. 服务器系统选择什么,服务器选择什么系统
  3. pg数据库生成随机时间_如何测试数据库查询优化器
  4. 学python有哪些书推荐-Python 有哪些入门学习方法和值得推荐的经典教材?
  5. Ubutun重启网卡
  6. VTK+MFC 系列教程 非常强大
  7. DARPA Grand挑战赛Overbot的软硬件架构,轨迹规划和车辆控制
  8. NBA Top Shot巨鲸17.5万美元购买的球星卡目前已值2000万美元
  9. 成都睿铂M6Pros近景摄影测量:西安古城墙数字化建设应用介绍
  10. android使用的数据,在 Android 应用中使用数据 - Xamarin | Microsoft Docs
  11. 如何实现一个无边框Form的移动和改变大小(一)
  12. matlab6序列号plp,matlab6.5PLP是什么
  13. 湘潭大学计算机学院考研喜报,湘潭大学化学学院考研率连续七年在全校排名第一...
  14. logistic逻辑回归
  15. 网站单页面优化的6个技巧
  16. Python3快速入门—5.函数
  17. A级学科计算机技术,全国学科评估结果出炉 四川高校这些学科进入全国A档
  18. SAP-PM设备模块-PM主数据之设备主数据
  19. Matlab含新能源(风电光伏)和多类型电动汽车配电网风险评估 由于电动汽车负荷与风电光伏出力的不确定性,造成配电网运行风险,运用蒙特卡洛概率潮流计算分析电压和线路支路越限
  20. JAVA实现基础版五子棋

热门文章

  1. 大龄程序员都去哪了?分享我身边的几个故事
  2. “Torch not compiled with CUDA enabled“
  3. 拉卡拉智能支付终端应用介绍
  4. Python-Django毕业设计安卓基于移动群智感知城市轨道交通激励APP(程序+LW)
  5. vue仿外卖项目(使用vue-cli3脚手架)
  6. mybatis-plus 实现一对一和一对多关系
  7. python语法分析器(parser)源码阅读(三)
  8. NLog 在NetCore中实现多实例注入DI, 实现多租户模式
  9. 7-16 验证“哥德巴赫猜想” (20 分)
  10. Real-world Anomaly Detection in Surveillance Videos监控视频中的现实世界异常检测