一、什么是SVM
SVM主要针对小样本数据进行学习、分类和预测(有时也叫回归)的一种方法,有很好的泛化能力
二、SVM原理
举个例子:
好吧,故事是这样子的:
在很久以前的情人节,大侠要去救他的爱人,但魔鬼和他玩了一个游戏。
魔鬼在桌子上似乎有规律放了两种颜色的球,说:“你用一根棍分开它们?要求:尽量在放更多球之后,仍然适用。”
增加难度
然后,在SVM 工具箱中有另一个更加重要的 trick。 魔鬼看到大侠已经学会了一个trick,于是魔鬼给了大侠一个新的挑战
现在,大侠没有棍可以很好帮他分开两种球了,现在怎么办呢?当然像所有武侠片中一样大侠桌子一拍,球飞到空中。然后,凭借大侠的轻功,大侠抓起一张纸,插到了两种球的中间
再后来
无聊的大人们,把这些球叫做 「data」,把棍子 叫做 「classifier」, 最大间隙trick 叫做「optimization最优化」, 拍桌子叫做「kernelling内核」, 那张纸叫做「hyperplane超平面」
三、SVM内核选择
Linear核:主要用于线性可分的情形。参数少,速度快,适用于一般数据
RBF核:主要用于线性不可分的情形。参数多,分类结果非常依赖于参数。
poly:参数较多,在另外两种都不适用的时候选择
就拟合程度来讲,linear在线性可分的情况下和rbf想过差不多,在线性不可分的情况下rbf明显优于linear,poly在前两种情况下效果都不怎么好,但是在变化剧烈的情况下ploy稍微好点。
就速度来讲,linear肯定是最快的,poly的话因为参数很多,测试中最慢。
就参数而言,linear简单易用,rbf, poly参数较多,但是调参好的话可以得到较好的结果。
图解: