首页 » python机器学习 » python机器学习全文在线阅读

《python机器学习》3.4.2 使用松弛变量解决非线性可分问题

关灯直达底部

我们无需对间隔分类背后的数学概念进行更深入的探讨,在此只是简单介绍一下松弛变量ξ的概念。它由Vladimir Vapnik在1995年引入,并由此提出所谓的软间隔分类。介绍松弛系数ξ的目的是:对于非线性可分的数据来说,需要放松线性约束条件,以保证在适当的罚项成本下,对错误分类的情况进行优化时能够收敛。

取值为正的松弛变量可以简单地加入到线性约束中:

由此,在前面提及的约束条件下,新的优化目标为最小化下式:

通过变量C,我们可以控制对错误分类的惩罚程度。C值较大时,对应大的错误惩罚,当选择小的C值时,则对错误分类的惩罚没那么严格。因此,可以使用参数C来控制间隔的大小,进而可以在偏差和方差之间取得平衡,如下图所示:

前面在回归的正则化中已经做了讨论,我们通过增加C的值来增加偏差并降低模型的方差。

至此,我们已经学习了线性SVM的基本概念,现在让我们来训练一个SVM模型以对鸢尾花数据集中的样本进行分类。

执行上述代码可以对通过SVM获得的决策区域进行可视化,结果如下图所示:

逻辑斯谛回归与支持向量机

在实际分类任务中,线性逻辑斯谛回归与支持向量机往往能得到非常相似的结果。逻辑斯谛回归会尽量最大化训练数据集的条件似然,这使得它比支持向量机更易于处理离群点。而支持向量机则更关注接近决策边界(支持向量)的点。逻辑斯谛回归的另一个优势在于模型简单从而更容易实现。此外,逻辑斯谛回归模型更新方便,当应用于流数据分析时,这是非常具备吸引力的。