《Spark机器学习进阶实战》——3.2.3 SVM模型

举报
华章计算机 发表于 2019/05/31 01:54:34 2019/05/31
【摘要】 本书摘自《Spark机器学习进阶实战》——书中的第3章,第3.2.3节,作者是马海平、于俊、吕昕、向海。

3.2.3 SVM模型

SVM(Support Vector Machine,支持向量机)模型能有效防止过拟合,在大量的应用场景中表现突出,对于线性可分的训练数据集,一般存在无穷多个可以正确划分不同类别的超平面,但是间隔最大的超平面是唯一的。SVM本质就是在样本空间中找出能区分不同类别而且使得间隔最大的超平面。划分超平面间隔最大,意味着该平面以充分大的确信度对训练数据进行分类,而且对未知样本的泛化能力最强。

在样本空间中,划分超平面可以表示为以下方程:

wTx + b = 0

超平面由法向量w和截距b决定,可用(w, b)表示。针对样本空间中的任意点x,该点到划分超平面(w, b)的距离r为:

image.png

针对二分类问题,划分超平面可以将样本空间划分成两部分,一部分是正类,另一部分为负类。假设超平面能将所有训练样本正确分类,那么对于训练样本(xi, yi),如果yi=1,则有wTxi + b > 0;如果yi=-1,则有wTxi + b < 0。训练样本中离划分超平面最近的样本点称为支持向量。如图3-3所示,对于正类的样本,支持向量在超平面H1:wT·x + b = 1上。对于负类的样本,支持向量在超平面H2:wT·x + b = -1上。H1和H2两超平面是平行的,中间的间隔等于,如图3-3所示。

image.png

图3-3 SVM中支持向量示例

算法想找到具有最大间隔的超平面,也就是说要最大化。由于最大化等价于||w||2最小,所以可以形式化表示为如下的最优化问题:

image.png

s. t. yi (w·xi + b)-1≥0, i = 1, 2, …, N

求解该凸二次规划问题,可以得到最优间隔的超平面(w*, b*)。一般来说,法向量指向的一侧对应正类,另一侧则对应负类。模型最终的决策函数为:

f(x) = sign (w*·x + b*)

在线性SVM的基础上,非线性SVM模型引入了核函数,对特征进行空间变换,将低维空间映射到高维空间,解决线性不可分的问题,常用的核函数有多项式核、RBF核等。核函数的引入使得模型的计算复杂度变高、训练速度很慢且模型的可解释性变差,因此在大规模样本的训练中,非线性的SVM使用得较少。

MLlib库仅支持线性SVM。线性SVM有着效率高、擅长高维场景的优点,在文本分类中有不错的表现。求解该问题,损失函数为hinge loss。默认情况下,线性SVM使用L2正则,当然也可以使用L1正则。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。