整理自:

https://blog.csdn.net/woaidapaopao/article/details/77806273?locationnum=9&fps=1

  • 带核的SVM为什么能分类非线性问题?
  • RBF核一定是线性可分的吗?
  • 常用核函数及核函数的条件
  • SVM的基本思想
  • 是否所有的优化问题都可以转化为对偶问题
  • 处理数据偏斜

1.带核的SVM为什么能分类非线性问题?

核函数的本质是两个函数的內积,而这个函数在SVM中可以表示成对于输入值的高维映射。注意核并不是直接对应映射,核只不过是一个內积


2.RBF核一定是线性可分的吗?

不一定,RBF核比较难调参而且容易出现维度灾难,要知道无穷维的概念是从泰勒展开得出的。


3.常用核函数及核函数的条件

核函数选择的时候应该从线性核开始,而且在特征很多的情况下没有必要选择高斯核,应该从简单到难的选择模型。我们通常说的核函数指的是正定和函数,其充要条件是对于任意的x属于X,要求K对应的Gram矩阵要是半正定矩阵。

  • RBF核径向基,这类函数取值依赖于特定点间的距离,所以拉普拉斯核其实也是径向基核。
  • 线性核:主要用于线性可分的情况
  • 多项式核

4.SVM的基本思想

间隔最大化来得到最优分离超平面。方法是将这个问题形式化为一个凸二次规划问题,还可以等价位一个正则化的合页损失最小化问题。SVM又有硬间隔最大化和软间隔SVM两种。这时首先要考虑的是如何定义间隔,这就引出了函数间隔和几何间隔的概念(这里只说思路),我们选择了几何间隔作为距离评定标准(为什么要这样,怎么求出来的要知道),我们希望能够最大化与超平面之间的几何间隔x,同时要求所有点都大于这个值,通过一些变化就得到了我们常见的SVM表达式。接着我们发现定义出的x只是由个别几个支持向量决定的。对于原始问题(primal problem)而言,可以利用凸函数的函数包来进行求解,但是发现如果用对偶问题(dual )求解会变得更简单,而且可以引入核函数。而原始问题转为对偶问题需要满足KKT条件(这个条件应该细细思考一下)到这里还都是比较好求解的。因为我们前面说过可以变成软间隔问题,引入了惩罚系数,这样还可以引出hinge损失的等价形式(这样可以用梯度下降的思想求解SVM了)。我个人认为难的地方在于求解参数的SMO算法。


5.是否所有的优化问题都可以转化为对偶问题

这个问题我感觉非常好,有了强对偶和弱对偶的概念。用知乎大神的解释吧


6.处理数据偏斜

可以对数量多的类使得惩罚系数C越小表示越不重视,相反另数量少的类惩罚系数变大

机器学习——SVM的更多相关文章

  1. 文本分类学习 (五) 机器学习SVM的前奏-特征提取(卡方检验续集)

    前言: 上一篇比较详细的介绍了卡方检验和卡方分布.这篇我们就实际操刀,找到一些训练集,正所谓纸上得来终觉浅,绝知此事要躬行.然而我在躬行的时候,发现了卡方检验对于文本分类来说应该把公式再变形一般,那样 ...

  2. 机器学习——SVM详解(标准形式,对偶形式,Kernel及Soft Margin)

    (写在前面:机器学习入行快2年了,多多少少用过一些算法,但由于敲公式太过浪费时间,所以一直搁置了开一个机器学习系列的博客.但是现在毕竟是电子化的时代,也不可能每时每刻都带着自己的记事本.如果可以掏出手 ...

  3. 程序员训练机器学习 SVM算法分享

    http://www.csdn.net/article/2012-12-28/2813275-Support-Vector-Machine 摘要:支持向量机(SVM)已经成为一种非常受欢迎的算法.本文 ...

  4. [机器学习]SVM原理

    SVM是机器学习中神一般的存在,虽然自深度学习以来有被拉下神坛的趋势,但不得不说SVM在这个领域有着举足轻重的地位.本文从Hard SVM 到 Dual Hard SVM再引进Kernel Trick ...

  5. [机器学习] SVM——Hinge与Kernel

    Support Vector Machine [学习.内化]--讲出来才是真的听懂了,分享在这里也给后面的小伙伴点帮助. learn from: https://www.youtube.com/wat ...

  6. 机器学习--------SVM

    #SVM的使用 (结合具体代码说明,代码参考邹博老师的代码) 1.使用numpy中的loadtxt读入数据文件 data:鸢尾花数据 5.1,3.5,1.4,0.2,Iris-setosa 4.9,3 ...

  7. 小刘的机器学习---SVM

    前言: 这是一篇记录小刘学习机器学习过程的随笔. 正文: 支持向量机(SVM)是一组用于分类, 回归和异常值检测的监督学习方法. 在分类问题中,SVM就是要找到一个同时离各个类别尽可能远的决策边界即最 ...

  8. 机器学习—SVM

    一.原理部分: 依然是图片~ 二.sklearn实现: import pandas as pd import numpy as np import matplotlib.pyplot as plt i ...

  9. 机器学习——SVM讲解

    支持向量机(Support Vector Machine) SVM是一类按监督学习方式对数据进行二元分类的广义线性分类器,决策边界是对学习样本求解的最大边距超平面.只需要知道,SVM是一个有监督的分类 ...

随机推荐

  1. R是用于统计分析、绘图的语言和操作环境

    R是一套完整的数据处理.计算和制图软件系统.其功能包括:数据存储和处理系统:数组运算工具(其向量.矩阵运算方面功能尤其强大):完整连贯的统计分析工具:优秀的统计制图功能:简便而强大的编程语言:可操纵数 ...

  2. Java 和 DynamoDB

    https://docs.aws.amazon.com/zh_cn/amazondynamodb/latest/developerguide/GettingStarted.Java.html 官方

  3. 跟我一起认识axure(三)

    交互设置,添加链接 点击预览

  4. parkingLot

    一个支付宝停车支付生活号前端页面 //index.html //自定义键盘 <!DOCTYPE html> <html> <head> <meta chars ...

  5. MacOS利用Terminal访问远程Linux服务器

    常用命令 默认22端口访问 ssh x.x.x.x 指定端口访问 ssh x.x.x.x -p port 指定用户访问(默认是MacOS当前用户) ssh user@x.x.x.x [-p port] ...

  6. hdu5289 RMQ+二分

    RMQ预处理最大值,最小值,然后对于每一点,二分可能满足的区间长度,长度-1就是该店开始的区间满足的个数. #include<stdio.h> #include<string.h&g ...

  7. poj1459 最大流Dinic

    比较简单. #include<stdio.h> #include<string.h> #include<queue> #define maxn 110 #defin ...

  8. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第二章:矩阵代数 学习目标: 理解矩阵和与它相关的运算: 理解矩阵的乘 ...

  9. 在 Deepin 15.9 安装 KiCad EDA 5.1 (2019-05-30)

    在 Deepin 15.9 安装 KiCad EDA 5.1 Deepin (深度系统)是世界著名的 Linux 发行版. KiCad EDA 是世界最强大的开源 PCB 绘制软件. 尝试一:在深度商 ...

  10. 快递查询API接口集成,有需要的可以直接用

    适用于涉及经常发货.寄快递的人群.企业.电商网站.微信公众号平台等对接使用.支持国内外三百多家快递及物流公司的快递单号一站式查询. 使用说明: 1.KuadidiAPI.php 不需要修改改任何东西 ...