SVM
特别适用于中小型复杂数据集的分类
硬间隔分类:严格的让所有实例不在支持向量之间的“街道”上,并且位于正确的一边。
存在两个主要问题:1.只在数据是线性可分时有效 2.对异常值非常敏感
软间隔分类:尽可能在保持“街道”宽阔和限制间隔违例(即位于街道之上,甚至在错误一边的实例)之间找到良好的平衡
处理非线性数据集方法:
1.添加更多特征–方法:多项式内核
添加多项式特征很有效,但是当多项式太低阶处理不了复杂的数据,太高特征会太多模型变慢,因此可以采用核技巧,产生的结果跟添加许多多项式特征一样,实际不需要添加。
2.添加相似特征,这些特征通过相似函数计算得出,可以将非线性的特征通过相似函数计算得到可分的特征,缺点是m个实例n个特征会产生一个m个实例m个特征的训练集,训练集非常大
经验法则:首先选择线性核函数,特别是当数据集很大或特征很多时。如果训练集不大,可以试试高斯RBF核,也可以通过交叉验证和网格搜索尝试其它核函数。
分类器对比:
LinearSVC需要缩放,不能使用核技巧;
SGDClassifier需要缩放,不能使用核技巧,可以使用核外支持;
SVC需要缩放,可以使用核技巧。
以上是SVM分类,是尝试拟合两个类之间可能的最宽街道的同时限制限制间隔违例。
SVM回归:让尽可能多的实例位于街道上,同时限制间隔违例(即不在街道上的实例)。
SVM的基本思想是拟合类别之间可能的、最宽的“街道”。即使决策边界之间的间隔最大化,该决策边界分隔两个类别和训练实例。
训练集有百万特征和实例选择原始问题还是对偶问题?
这个问题仅适用于线性支持向量机,因为核SVM只能用对偶问题。对于SVM问题,原始形式的计算复杂度与训练实例m成正比,对偶与某个介于m平方和m立方的数量成正比,因此百万实例应选择原始问题。