支持向量机
支持向量机是神经网络大热之前,独领风飒的一种机器学习的算法。主要用来解决机器学习中的分类问题,也可以用来解决回归问题。大热是因为支持向量机能够将非线性可分的数据集,分的很好。
原理实现
支持向量机在让机器学习的过程中,主要是寻找一个决策边界,这个决策边界相比于逻辑回归或者线性回归,有大大的优化,如果说逻辑回归或者线性回归和支持向量机都能找到一个符合我们期望的决策边界,那么支持向量机找到的决策边界,将是最好的那个决策边界。
所谓最好的决策边界,就是容错率最高的那个决策边界。
所谓容错率最高的决策边界,就是在决策边界的正负两个方向,拥有最大的留白部分,就是margin。当模型训练到最大margin的时候,将模型用于实践,去预测新来的数据,模型将拥有最大的泛化能力。就是说,这样的模型,在工业应用中,表现出的预测效果最好,是我们最期望的模型。
我们的直观目的就是要求得决策边界的最大的margin,就是距离决策边界最近的点的最大距离。
进一步说明的话就是,机器找到了一个决策边界,将正负两类分开,然后机器会求得所有的样本点到这个决策边界的距离,找到距离本个决策边界最近的那么几个点(这几个点叫做支持向量),将这几个点到决策边界的距离和在其他决策边界中找到的相同作用的点的距离,做一个比较,哪个距离更大,那个就是更好的决策边界。
通过这样的分析,可以总结出:
首先,要找到每一个决策边界中,距离决策边界最近的点
然后,比较每组最近的点,找到那组最远的点
希望我这样的表述,可以被听得明白。
数学理论
现在将支持向量机抽象成数学问题,其实就是一个求最优化的问题。
二维平面中,支持向量机要最优化的,就是支持向量点到决策边界的距离。
根据数学公式可以得出:
距离 : d = |Ax + By + C| / (A2 + B2)1/2
多维空间中,支持向量机要最优化的,就是支持向量点到决策面的距离。