Python机器学习实战之支持向量机概念篇

Python机器学习实战之支持向量机概念篇

本文章主要参考《机器学习实战》之前一直使用sklearn库来调用算法,却不知道算法的低层含义是什么,如何构造出来的。让我很是苦恼。于是决定学习这本书来增强自己对算法的理解能力。

本节主要介绍支持词向量机的算法的推导过程,试图用自己理解的话语最简单的解答支持向量机的主要思想,之后会通过python代码加以实现。

一、SVM概念及推导

优点:泛化错误率低,计算开销小,结果易解释
缺点:对参数调节和核函数的选择敏感,原始分类器不加修改仅适用于处理二分类问题
适用数据类型:数值型,标称型数据

我们知道机器学习中监督学习主要任务就是分类,而分类的目的是学会一个分类函数或分类模型(或者叫做分类器),该模型能把数据库中的数据项映射到给定类别中的某一个,从而可以用于预测未知类别。对于SVM来说,它作为一个而分类的分类模型,也就是给定一个包含正例和反例(正样本点和负样本点)的样本集合,支持向量机的目的是寻找一个超平面来对样本进行分割,把样本中的正例和反例用超平面分开,但是不是简单地分开,其原则是使正例和反例之间的间隔最大。学习的目标是在特征空间中找到一个分类超平面wx+b=0,分类面由法向量w和截距b决定。分类超平面将特征空间划分两部分,一部分是正类,一部分是负类。法向量指向的一侧是正类,另一侧为负类。

如下图两分类的例子所示,我们的分类目标是在Class1与Class2两类样本之间找到一条线,将他们分隔开,如果有新的样本来了,落在线的左边则分到class1类,落到右边则分到class2类。但是又如右图所示,我们可以得出很多条线。那么问题来了,究竟那一条线才能最有效的将两类样本分隔开呢?此外,下图为二维空间,在二维空间中分类就是线,如果是三维那就叫做面了,在高维中也有个NB的名字,叫做超平面。一般将任何维的分类边界都统称为超平面。
这里写图片描述

对于二维来说人眼可以轻易的找到这条线(超平面)但是但维度大于3的时候,我们则无法将这些样本画出来了。此时我们则需要利用计算机来找到这条线。这时候我们也得开始建模了,但计算机将这个模型解出来的时候,这个解就是我们需要的那条线。这样就能达到分类目的了。

以上的思想就是SVM的基本思想,可以解释为:SVM试图寻找一个超平面来对样本进行分割,把样本中的正例和反例用超平面分开,但是不是很敷衍地简单的分开,而

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.late

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值