推荐课程:【机器学习实战】第5期 支持向量机 |数据分析|机器学习|算法|菊安酱_哔哩哔哩_bilibili
赞美菊神ヾ ( ゜ⅴ゜)ノ
一、什么是支持向量机?
支持向量机(Support Vector Machine, SVM)是一类按监督学习(supervised learning)方式对数据进行二元分类的广义线性分类器(generalized linear classifier),其决策边界是对学习样本求解的最大边距超平面(maximum-margin hyperplane)。
1.1 举个例子
在桌子上似乎有规律地放了两种颜色的球,要求你用一根棍子分离开他们,并且尽量再放更多的球之后,仍然适用。
SVM就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙(这被认为是最佳求解)。
并且,现在即使再放入更多的球,棍子仍然是一个很好的分界线。
但是,现在增加难度,如果将球散乱地放在桌子上,又该怎样进行划分呢?很明显,此时在二维平面中,这变成了一个线性不可分的问题,我们没有方法再用一根棍子将这些球分开了,那么怎么解决这样一个问题呢?
解决方法也很简单,我们可以使用一个核函数,将二维平面中的 '小球' 投影到三维空间,也许就可以在三维空间中,有可能找到这样一个平面将其分隔开来。(可以想象一下,用力拍向桌子,然后桌子上的球就被震到空中,瞬间抓起一张纸,插到两种球的中间。)
(话说,如果3维空间依旧找不到这样一个平面呢?没关系,我继续投四维呀╮(๑•́ ₃•̀๑)╭,总能找到一个维度解决线性不可分的问题。)
可以通过视频,更为直观地感受一下这个过程:支持向量机 SVM在线性不可分情况下进行分类 可视化直观展示 高维空间映射_哔哩哔哩_bilibili
更为规范的,我们把这些球叫做「data」,把棍子叫做「classififier」, 最大间隙 trick 叫做「optimization」,拍桌子叫做「kernelling」, 那张纸叫做「hyperplane」。
1.2 概述一下
当一个分类问题,数据是线性可分(linearly separable)的,也就是用一根棍就可以将两种小球分开的时候,我们只要将棍的位置放在让小球距离棍的距离最大化的位置即可,寻找这个最大间隔的过程,就叫做最优化。但是,一般的数据是线性不可分的,也就是找不到一个棍将两种小球很好的类。这个时候,我们就需要使用核函数 (kernel)将小球投影到多维空间(想象一下,将小球拍飞到空中,瞬间抓起一张纸,插到两种球的中间),而在多维空间中切分小球的平面,就是超平面(hyperplane)。如果数据集是N维的,那么超平面就是N-1维的。
Q:什么是支持向量?
A:把一个数据集正确分开的超平面可能有多个,而那个具有“最大间隔”的超平面就是SVM要寻找的最优解。而这个真正的最优解对应的两侧虚线所穿过的样本点,就是SVM中的支持样本点,称为“支持向量(support vector)”。支持向量到超平面的距离被称为间隔(margin)。
二、线性支持向量机
1)目标函数
2)优化对象:超平面方程。