- 支持向量机背后的基本思想是什么?
- 基本思想:在正负样本的边界上找到一条分割界线(超平面),使得它能完全区分两类样本的同时,保证划分出的间隔尽量的大。进行软间隔分类时,SVM在完美地分离两个类并且具有尽可能宽的间隔(即,几个实例可能最终在间隔之上)之间寻求折衷。
- 另一个关键思想是在训练非线性数据集时使用内核。
- 什么是支持向量?
支持向量是位于间隔边界之上的任意实例(请参阅上一个答案)。决策边界完全由支持向量决定,而其他实例并不起作用
- 如果移动支持向量讲改变所求的解
- 如果在间隔边界以外移动其他实例,甚至去掉这些实例,解是不会改变的。
计算预测仅涉及支持向量,而不是整个训练集。
使用SVM时,为什么缩放输入很重要?
SVM试图在类之间找到一个最大的间隔,所以如果训练集没有缩放,SVM倾向于忽略小的特征(见图5-2)。在对实例进行分类时,SVM分类器能否输出置信度?概率是多少?
- SVM分类器可以输出测试实例与决策边界之间的距离,您可以将其用作置信度分数。
但是,这个分数不能直接转换为类概率的估计。 - 如果在Scikit-Learn中创建SVM时设置probabilit y = True,那么在训练之后它将使用SVM分数上的Logistic回归来校准概率(通过对训练数据额外的一个五重交叉验证进行训练)。这会将predict_proba()和predict_log_proba()方法添加到SVM。
- 您是否应该使用SVM问题的原始形式或对偶形式来训练模型?在具有数百万个实例和数百个特征的训练集上?
- 这个问题仅适用于线性SVM,因为kernelized只能使用对偶形式。
- SVM问题的原始形式的计算复杂度与训练实例m的数量成比例,而对偶形式的计算复杂度与和之间的数字成比例。 所以,如果有数百万个实例,你肯定应该使用原始形式,因为对偶形式会太慢。
假设您使用RBF内核来训练SVM分类器。 训练集似乎不合适:你应该增加还是减少?C该如何设置?
如果使用RBF内核训练的SVM分类器不适合训练集,则可能存在过多的正则化。 要减少它,您需要增加gamma或C.(或两者都增加)-
如何设置QP参数来解决软边问题使用现成的QP求解器的线性SVM分类器问题?
让我们为硬间隔问题调用QP参数(参见第159页的“二次规划”)。
软间隔问题的QP参数具有m个附加参数和m个附加约束。 它们可以这样定义: