支持向量机(SVM)里的支持向量是什么意思

  统计/机器学习 监督式学习    浏览次数: 2871
5

一直在用现成的包里的SVM函数做分类问题,但对SVM还是一知半解,尤其是支持向量这个概念不大理解。支持向量到底是指什么样子的向量?还是就是泛泛而指?

 

MeganC   2017-02-27 16:01



   5个回答 
15


你在画分割线区分红绿两类点的时候,可以问自己一个问题,你认不认为所有的点对于分割线的位置都是起决定性作用的?

其实在特别远的区域,哪怕你增加10000个样本点,对于分割线的位置,也是没有作用的,因为分割线是由几个关键点决定的(图上三个),这几个关键点支撑起了一个分割超平面,所以这些关键点,就是支持向量。

crazy_lau   2017-09-21 15:04

5

所谓向量,其实就是样本点,因为每个样本都是一行数据,也就是向量。

SVM可以用下面这个图表示。

红线和蓝线分别是决策平面。决策平面上的样本点就是支持向量。



sasa   2018-01-19 04:13

灵魂画师 - tianjiayang0711   2018-04-09 05:22
2

支持向量就是离决策超平面最近的那些数据点吧。


图不二   2017-11-21 12:25

2

来个自己朴素的见解:

对于普通的求解一个二次凸规划的Vapnik型SVM(简称其为V-SVM)而言,所谓支持向量就是落在支撑平面上的数据点,“支撑平面”是两个和最终求解规划问题得到的划分平面在高维特征空间中平行的平面(高维指维度等于或高于训练点所在的维度,和核函数的选取相关),直观上来讲,这两个平面在高维空间中分别紧紧地贴合着训练点中的两个类别(一般是+、-表示),之所以说“紧紧贴着”,是因为两类点中有点落在了这两个平面上,这样来看,是不是就像是两个平面在高维空间里牢牢得把点“撑开”以形成中间尽可能宽阔的无点地带,所以说“撑(support)”这个自己在我就是如上形象直观来理解的,那么落在这个支撑平面上的训练点就叫做“支撑向量”,那可能会奇怪,为什么要叫“向量”而不叫“支撑点”呢?因为我们在计算时都是使用点的全部坐标,而一个坐标的组合可以在空间内表示一个点,也可以说是一个由原点O作为起点的向量,那么命名者采用了向量去命名,其实就是点的意思(至于什么是促成选择“向量”命名而不是“点”来命名的具体逻辑其实我也不知道,有没有人来解惑一下)。经过对凸二次规划的求解可以发现,对于那些不在支撑平面上的点而言,其对于最终求得的划分平面的贡献为0(即其对应的拉格朗日乘数为0),那么就是说,在V-SVM中,只有支撑向量会决定划分平面的表达式;

那么还有一种情况,就是最小二乘支持向量机(LS-SVM),这个时候所谓“支持向量”就泛化了意思了,因为它的经验最小化项是准确的点与划分平面之间的误差,这使得所有的训练点都要参与计算,所有的训练带你都对最终的划分平面的表达式有影响,这样按照前面对于V-SVM的认知,就说,在LS-SVM中,所有的点都是支撑向量。

CE_PAUL   2018-06-18 20:23

1

图中橘黄色的就是支持向量。

ZhuangChong   2018-06-13 10:05



  相关主题

adaboost里的learning rate是什么意思?   1回答

kNN的k=1为什么训练误差为0?   3回答

欠采样后概率还原问题   0回答

knn推导过程中的一个细节   2回答

线性可分是什么意思?   1回答

k-NN的k取1会怎么样   3回答

python里如何实现线性判别分析(LDA)?   1回答

线性回归的bagging   2回答

GBDT+LR的工作原理?   3回答

可以对线性回归进行boosting吗?   3回答

逻辑回归的前提假设是什么?   1回答

kNN算法有哪些缺点?   6回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!