SVM三大特性:小样本,非线性,高维模式
非线性我们知道,SVM通过核函数与松弛变量实现;高维模式可通过仅用支持向量计算来实现(KNN不可);
小样本:不带核函数的支持向量机(线性)在一定条件下是适合大量数据的,但是带核函数的支持向量机(非线性)在处理大量数据的时候会非常慢,并不适合。下面根据特征维数和样本数对模型与SVM的核函数进行选择时体现了这一点:
- n 为特征数,m 为训练样本数。
- 如果相较于 m 而言,n 要大许多,即训练集数据量不够支持我们训练一个复杂的非线性模型(会导致high variance),我们选用逻辑回归模型或者不带核函数的支持向量机。
- 如果 n 较小,而且 m 大小中等,例如 n 在 1-1000 之间,而 m 在 10-10000 之间,使用高斯核函数的支持向量机。(效果拔群,远胜逻辑回归模型或者不带核函数的支持向量机)
- 如果 n 较小,而 m 较大,例如 n 在 1-1000 之间,而 m 大于 50000,则使用支持向量机会非常慢,解决方案是创造、增加更多的特征(否则会导致high bias),然后使用逻辑回归或不带核函数的支持向量机。
从另外一个角度解释,当数据量极大时,通常以线性等简单的形式就可以获取意想不到的效果,使用SVM进行非线性映射计算量过于复杂。就好比天池这类比赛rule-base走天下一样的道理。