距离上次看SVM算法已经快过了半个月了,今天再次看到,温故知新后决定把自己的理解写出来。不过由于本人文笔不佳,所以想到什么写什么,等有空了再整理。看到觉得混乱的还请见谅。
刚刚看SVM的时候,只能明白支持向量机之所以叫支持向量机是因为支持向量,后面懂得了w的内容是什么、几何距离的意义、低维映射到高维的作用、核函数、SMO、随机梯度下降。SVM算法相对其他机器学习算法,内容涉及要广的多,很多东西都非常巧妙,在计算上相对其他要遍历所有样本的算法来说,只需作为支持向量的样本即可构造模型,让预测计算复杂度降低很多,而核函数又将维爆炸的问题完美解决。而我觉得对于SVM,即使是面对新的GBRT(Gradient Boosting Random Tree,迭代随机森林)也不失下风,就像2014年淘宝天池大赛使用SVM算法的参赛者获得了第八的成绩。
SVM算法优势来自于高维空间,将向量投影到高维空间后,每个特征点都获得了更多的属性,更多的属性意味着样本背后隐藏的信息也会被带出,显然,额外的信息可以让样本得到更好的分类。可惜,不一样的核函数构造的高维空间有很大特异性,这也就造成了不一样的核函数对同一组样品预测的能力天差地别,这或许也是SVM的缺点,它能否将隐藏的信息带出,在一定程度上是不受控制的,一旦核函数不合适,带来的将会是无用的干扰信息。或许有一天谁能把核函数也用上boosting的方法就能解决了,哈哈,谁知道呢。