支持向量机(Support Vector Machine):SVM算法既可以处理分类问题,也可以处理回归问题。SVM算法要解决的问题就是找到最好的决策边界,以对问题进行分类和求解。
我们用这张图来理解SVM算法,图片中有两类点方形和圆形,我们要找到一条分界线将两类点清楚的分开。我们的依据是分界线离最近点的距离要最大,这样的决策边界是最优的,右图的决策边界要优于左图的决策边界,因为它的分类效果更好,直观地看就是决策边界越宽越好。我们将这些最近的点称为支持向量,我们的决策边界的构造只取决于它们,与其他点无关。

SVM是机器学习中非常重要的算法,也是面试中经常会被问到的算法。因为SVM算法涉及到的数学问题非常的多,整个数学推导过程还是挺复杂的。下方的链接是SVM算法的推导过程,如果想从事机器学习方面相关工作的,SVM的算法的数学原理是要掌握的。
链接:https://pan.baidu.com/s/1Ml-LbBkKy5bSZ4qJMSSGLQ
提取码:u77t
1.SVM算法的核心要点
找到距离决策边界最近的点,然后使得该点到决策边界的距离最大。
2.解决特征难以分割的数据
下图中左边的数据点在二维平面中是难以分割的,决策边界非常复杂。通过将二维数据映射到三位空间中,由于新增了一个高度方向的维度,数据点在这个方向上就变得容易区分了。原数据X通过映射函数φ转换成φ(X),使得新的数据集φ(X)容易分类。

3.SVM API文档

sklearn.svm.SVC(C=1.0, kernel=’rbf’, degree=3, gamma=’auto_deprecated’, coef0=0.0,shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None,
verbose=False, max_iter=-1, decision_function_shape=’ovr’, random_state=None)

SVM关键参数说明


C:浮点型数值,默认值为1,可指定数值。这个参数我们称之为松弛因子,C值越大,决策边界越窄,分类要求越严格。C值越小,决策边界越宽,分类要求宽松,前面我们说到决策边界越宽越好。
kernel:核变换参数,如上面的将二维数据转换为三维数据,就需要指定kernel参数。kernel可指定为‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’,默认为’rbf’。'linear’就是线性变换,‘rbf’就是对数据做高斯变换,如将二维数据转换为三维数据。
gamma,默认为’auto’,只有当kernel指定为’rbf’时,gamma数值才有效。gamma值越大,支持向量的个数越少,gamma值越小,支持向量的个数越多。支持向量的数量影响模型的训练与预测速度。


SVM 样例演示
使用sklearn中封装好的iris数据集,最终得出SVM算法的精度。

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import datasetsiris = datasets.load_iris()
iris_X = iris.data
iris_y = iris.targetfrom sklearn.model_selection import train_test_split
#切分数据集
X_train,X_test,y_train,y_test = train_test_split(iris_X,iris_y,test_size = 0.3,random_state = 0)
#调用SVC算法
from sklearn.svm import SVC
clf = SVC(kernel = 'linear')
clf.fit(X_train,y_train)
clf.score(X_test,y_test)
0.9777777777777777

SVM算法小结:
SVM算法的目标是求解最优的决策边界,对决策边界起决定性的作用的数据点,我们称之为支持向量,也就是距离决策边界最近的数据点。
SVM算法可以将低维不可分的数据转化为高维可分的数据。
SVM算法中最主要的三个参数:
C:惩罚力度的大小,C越小,容错能力越大,对决策边界的要求越宽松。C越大,容错能力越小,对决策边界的要求越严格。
kernel:核函数,默认为’rbf’高斯核函数,对原始数据进行变换。
gamma:只有当kernel为’rbf’,gamma值才回起作用,gamma值越大,选用的支持向量越少,gamma值越小,所选用的支持向量越多。

支持向量机(SVM)算法简介相关推荐

  1. 机器学习算法 08 —— 支持向量机SVM算法(核函数、手写数字识别案例)

    文章目录 系列文章 支持向量机SVM算法 1 SVM算法简介 1.1 引入 1.2 算法定义 2 SVM算法原理 2.1 线性可分支持向量机 2.2 SVM计算过程与算法步骤(有点难,我也没理解透,建 ...

  2. 支持向量机SVM算法原理及应用(R)

    支持向量机SVM算法原理及应用(R) 2016年08月17日 16:37:25 阅读数:22292更多 个人分类: 数据挖掘实战应用 版权声明:本文为博主原创文章,转载请注明来源. https://b ...

  3. 机器学习-支持向量机SVM算法

    文章目录 简介 原理 硬间隔 支持向量 对偶问题 软间隔 核函数 SMO算法 小结 多分类问题 回归问题 应用示例 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点 ...

  4. MATLAB实现支持向量机SVM分类简介

    1. 支持向量机SVM 支持向量机(SVM, support vector machine)是名噪一时的机器学习方法,自20世纪末以来在模式识别领域风生水起,至今仍然活跃在各大论文期刊中.无论是和其他 ...

  5. 支持向量机——SVM算法及例子(代码)

    终于拖到最后一天交机器学习作业,选择了SVM算法,之前一直听说过,现在终于有了初步的了解,顺便post到这里分享一下,不足地方请大家指出 本文内容有来自<统计学习算法>(李航 著)第7章- ...

  6. 支持向量机SVM算法原理笔记2

    上篇博客介绍了当样本集是线性可分情况下的SVM算法原理.接下来介绍不存在一个划分超平面可以正确分类的问题,比如说"异或问题". 对于此类问题,可以将样本空间映射到更高维度空间,这样 ...

  7. 支持向量机SVM算法

    支持向量机SVM 目录 支持向量机SVM 1.支持向量机原理 2.如何找出边际最大的决策边界 3.拉格朗日乘数 4.非线性SVM与核函数 5.示例 支持向量机(SVM,也称支持向量网络),是机器学习中 ...

  8. 支持向量机 SVM 算法推导优缺点 代码实现 in Python

    1.基本思想 前面讲到的Logistic Regression在拟合过程,实际上关注所有样本点的贡献,即寻找这么一个超平面,使得正例的特征远大于0,负例的特征远小于0,强调在全部训练数据上达到这一目标 ...

  9. [机器学习算法]支持向量机SVM原理简介

    一.问题和超平面描述 给定训练集 分类学习最基本的想法就是基于训练集在样本空间中找到一个划分超平面,将不同类别的样本分开,但能将训练样本分开的划分超平面可能有很多,如下图所示: 直观来看,应该去找位于 ...

  10. 优雅的读懂支持向量机 SVM 算法

    转自:JerryLead http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html 简介 支持向量机基本上是最好的有监督学习算法 ...

最新文章

  1. 网站内容为王?内容页的优化方法有哪些?
  2. Linux环境下安装OpenOffice 4.1.8
  3. HBA driver for linux
  4. 【PAT甲级 删除字符串中的指定字符】1050 String Subtraction (20 分) C++
  5. 工业无线遥控器 SUNRF-1011RC
  6. 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
  7. 2019上半年系统集成项目管理工程师下午案例分析真题与答案解析
  8. STM32F103:三.(1)步进电机
  9. ChaLearn Gesture Challenge_3:Approximated gradients源码简单分析
  10. ffmpeg把YUV转换为H264
  11. ubuntu 安装log4cpp
  12. hping 详解_HPing3构造多种类型DDOS攻击使用详解
  13. 安装IAR ewarm
  14. 阿里云开发者大会观后感
  15. 【DPD数字预失真】射频功放的Volterra级数数字预失真系统开发
  16. 【NAS备份】摆脱丢数据的噩梦,群晖备份硬核实战教程分享
  17. Finger.02 - 搭建MQTT服务器
  18. stm32结合TFLCD编程遇到的问题之.\Objects\EXTI_Project.axf: Error: L6218E: Undefined symbol POINT_COLOR (referre
  19. win7 关闭计算机休眠,Win7关闭休眠的方法
  20. 黄子韬被封“剧组开心果”:《艳势番》是人生精彩回忆

热门文章

  1. 鼠标如何从常见虚拟机中切出?
  2. 【Linux---NX】Jetson Xavier NX基于虚拟机进行系统安装及迁移
  3. 淘宝新店怎么引入手淘流量?
  4. ps 需要截取某个图层的某个部分,但是被该图层的其他东西遮挡
  5. python DataFrame常用描述性统计分析方法
  6. Linux---使用nice、cpulimit 和 cgroups管理系统资源
  7. 处理人际关系的技巧。
  8. 数据类型有自定义类型吗_自定义类型的数据表和数据集
  9. reGeorg+Proxifier实现内网穿透
  10. IDEA调试台中文乱码