机器学习思考题目——05支持向量机(SVM)

文章目录

    • 1.支持向量机的基本原理(fundamental idea)是什么?
    • 2. 什么是支持向量(support vector)?
    • 3.为什么用SVM的时候,scale the input 很重要?
    • 4.SVM分类器在对样本进行分类的时候,能输出置信度数值(confidence score)么?能输出概率值么?
    • 5.在一个有百万量级的样本和数以百计的特征的训练集上,该用原始形式还是对偶形式的SVM来训练模型?
    • 6.假如用RBF核训练一个SVM分类器的时候,模型似乎出现欠拟合了:此时应该增大还是减小γ(gamma)?增大还是减小C?
    • 7.用现成(off-the-shelf )的QP(二次规划,Quadratic Programming)求解器,如何设置QP参数(H,f,A,b)来解决软间隔线性SVM分类问题?【另一种表述,如何设置这些参数,把软间隔线性SVM模型转化为二次规划问题】【除非特别说明,以下向量默认为列向量】

本文直译自《hands on ML》课后题。(有改动的以【】表示)。

1.支持向量机的基本原理(fundamental idea)是什么?

【硬间隔】支持向量机的基本原理是在(不同的)类间找到合适的最宽的‘街道’(street)。换句话说,目标是在划分两类训练样本的决策边界之间找到最大的间隔。
【软间隔】当用软间隔(soft-margin)进行分类时,SVM在‘完美划分两类’和‘找到最宽街道’之间做一个折中(亦即少数样本会落到‘街道’上)。
【核】另外一个关键思想是当在非线性数据集上用核(kernel)。

2. 什么是支持向量(support vector)?

训练完一个SVM之后,落在‘街道’(street)及其边界上的样本称为支持向量。
决策边界完全由这些支持向量决定。不是支持向量的样本(亦即远离‘街道’的那些)对SVM没有任何影响;可以移除它们,添加更多样本或者移动它们,只要它们远离‘街道’它们就不会影响决策边界。计算预测值时只用到支持向量而非整个训练集。

3.为什么用SVM的时候,scale the input 很重要?

SVM是在不同的类中寻找最宽的合适街道,因此如果训练集没有scaled,SVM倾向于忽视小特征。如下图所示:左图为Unscaled,右图为Scaled。
机器学习思考题目——05支持向量机(SVM)_第1张图片

4.SVM分类器在对样本进行分类的时候,能输出置信度数值(confidence score)么?能输出概率值么?

SVM分类器能输出(测试)样本和决策边界的距离,可以把这个距离当做一个置信度数值。当然,这个数值不能直接转化成类的概率。在Scikit-Learn的SVM函数中,设置probability=True,训练完之后,程序会用LogisticsRegression把SVM输出的分值校准(calibrate)为概率值(在这个训练集上对LR用五折交叉验证训练)。这会给SVM(python对象)添加predict_proba()和predict_log_proba()方法。

5.在一个有百万量级的样本和数以百计的特征的训练集上,该用原始形式还是对偶形式的SVM来训练模型?

这个问题只能是对线性SVM来说有意义,因为核-SVM只能用 对偶形式。
SVM的原始形式的计算复杂度与样本数m成比例(O(m)),对偶形式的计算复杂度在m2和m3之间(O(m2)~O(m3))。因此如果有百万量级的样本,肯定需要用原始形式,因为对偶形式慢得多。

6.假如用RBF核训练一个SVM分类器的时候,模型似乎出现欠拟合了:此时应该增大还是减小γ(gamma)?增大还是减小C?

欠拟合可能是因为过分正则化了。需要增加gamma或增加C(或二者都增加)。

7.用现成(off-the-shelf )的QP(二次规划,Quadratic Programming)求解器,如何设置QP参数(H,f,A,b)来解决软间隔线性SVM分类问题?【另一种表述,如何设置这些参数,把软间隔线性SVM模型转化为二次规划问题】【除非特别说明,以下向量默认为列向量】

把硬间隔SVM问题的QP参数记为H’,f’,A’,b’。软间隔问题的QP参数有m个额外参数和m个额外的约束条件。这些可以定义如下:
(a)对H’扩充,在其右侧添加m列0向量,在其底部添加m行0向量。得到H,如下:
机器学习思考题目——05支持向量机(SVM)_第2张图片
(b)在f’(尾端)添加m个超参数C,得到f。
(c)在b’(尾端)添加m个0,得到b。
(d)对A’进行扩充,在其右侧添加m阶单位矩阵,在其右下方添加m阶负单位矩阵,其下方添加0矩阵,得到A如下:【个人觉得原答案有问题,右上角应该也为负单位矩阵,下面有解释】
机器学习思考题目——05支持向量机(SVM)_第3张图片机器学习思考题目——05支持向量机(SVM)_第4张图片机器学习思考题目——05支持向量机(SVM)_第5张图片机器学习思考题目——05支持向量机(SVM)_第6张图片机器学习思考题目——05支持向量机(SVM)_第7张图片

你可能感兴趣的:(机器学习,支持向量机,SVM,二次规划)