一步步教你轻松学支持向量机SVM算法之理论篇1
(白宁超 2018年10月22日10:03:35)
摘要:支持向量机即SVM(Support Vector Machine) ,是一种监督学习算法,属于分类的范畴。首先,支持向量机不是一种机器,而是一种机器学习算法。在数据挖掘的应用中,与无监督学习的聚类相对应和区别。广泛应用于机器学习,计算机视觉和数据挖掘当中。(本文原创,转载必须注明出处.)
目录 1 机器学习:一步步教你轻松学KNN模型算法 2 机器学习:一步步教你轻松学决策树算法 3 机器学习:一步步教你轻松学朴素贝叶斯模型算法理论篇1 4 机器学习:一步步教你轻松学朴素贝叶斯模型实现篇2 5 机器学习:一步步教你轻松学朴素贝叶斯模型算法Sklearn深度篇36 机器学习:一步步教你轻松学逻辑回归模型算法 7 机器学习:一步步教你轻松学K-means聚类算法 8 机器学习:一步步教你轻松学关联规则Apriori算法 9 机器学习: 一步步教你轻松学支持向量机SVM算法之理论篇1 10 机器学习: 一步步教你轻松学支持向量机SVM算法之案例篇2 11 机器学习: 一步步教你轻松学主成分分析PCA降维算法 12 机器学习: 一步步教你轻松学支持向量机SVM降维算法 更多文章请点击这里>> 相关概念
支持向量就是数据集中的某些点,位置比较特殊。比如 x+y-2=0 这条直线,直线上面区域 x+y-2>0 的全是 A 类,下面的 x+y-2<0 的全是 B 类,我们找这条直线的时候,一般就看聚集在一起的两类数据,他们各自的最边缘 位置的点,也就是最靠近划分直线的那几个点,而其他点对这条直线的最终位置的确定起不了作用,所以我姑且叫这些点叫 “支持点”(意思就是有用的点).
在最大间隔上的这些点就叫 “支持向量”,因为最后的 classification machine (分类器)的表达式里只含有这些 “支持向量” 的信息,而与其他数据点无关,借助图形理解(支持向量就是图中用紫色框框圈出来的点)如下:
线性可分(linearly separable): 如上图中的两组数据,它们之间已经分的足够开了,因此很容易就可以在图中画出一条直线将两组数据点分开。在这种情况下,这组数据就被称为线性可分数据。
分隔超平面(separating hyperplane): 上述将数据集分隔开来的直线称为分隔超平面。
超平面(hyperplane): 在上面给出的例子中,由于数据点都在二维平面上,所以此时分隔超平面就只是一条直线。但是,如果所给的数据集是三维的,那么此时用来分隔数据的就是一个平面。显而易见,更高纬度的情况可以依此类推。如果数据是 1024 维的,那么就需要一个 1023 维的某某对象来对数据进行分隔。这个 1023 维的某某对象到底应该叫什么呢? N-1 维呢?该对象被称为超平面,也就是分类的决策边界。分布在超平面一侧的所有数据都属于某个类别,而分布在另一侧的所有数据则属于另一个类别。
间隔(margin): 我们希望能通过上述的方式来构建分类器,即如果数据点离决策边界越远,那么其最后的预测结果也就越可信。既然这样,我们希望找到离分隔超平面最近的点,确保它们离分隔面的距离尽可能远。这里所说的点到分隔面的距离就是间隔。我们希望间隔尽可能地大,这是因为如果我们犯错或者在有限数据上训练分类器的话,我们希望分类器尽可能健壮。
支持向量(support vector) : 就是上面所说的离分隔超平面最近的那些点。
分类器 : 分类器就是给定一个样本的数据,判定这个样本属于哪个类别的算法。例如在股票涨跌预测中,我们认为前一天的交易量和收盘价对于第二天的涨跌是有影响的,那么分类器就是通过样本的交易量和收盘价预测第二天的涨跌情况的算法。
特征 : 在分类问题中,输入到分类器中的数据叫做特征。以上面的股票涨跌预测问题为例,特征就是前一天的交易量和收盘价。
线性分类器 : 线性分类器是分类器中的一种,就是判定分类结果的根据是通过特征的线性组合得到的,不能通过特征的非线性运算结果作为判定根据。还以上面的股票涨跌预测问题为例,判断的依据只能是前一天的交易量和收盘价的线性组合,不能将交易量和收盘价进行开方,平方等运算。
SVM 原理 直观理解我们在桌子上放置一些不同颜色的球,让小明用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。
于是小明这样放,看起来还不错?
然后我们又在桌上放了更多的球,似乎有一个球站错了阵营。
SVM 就是试图把棍放在最佳位置,好让在棍的两边有尽可能大的间隙。
现在即使我们放了更多的球,棍仍然是一个好的分界线。
然后,在 SVM 工具箱中有另一个更加重要的 trick。 我们看到小明已经学会了一个 trick ,于是我们给了小明一个新的挑战。