温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何学习SVM算法

发布时间:2021-11-15 17:31:32 来源:亿速云 阅读:141 作者:柒染 栏目:大数据

本篇文章给大家分享的是有关如何学习SVM算法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

SVM支持向量机是建立于统计学习理论上的一种分类算法,适合与处理具备高维特征的数据集。

下面给出几个本人认为讲解的相当不错的:

支持向量机通俗导论(理解SVM的3层境界):http://blog.csdn.net/v_july_v/article/details/7624837

这篇讲的很详细,由浅入深层层推进。

还有一个比较通俗的简单版本的:手把手教你实现SVM算法:http://blog.csdn.net/alvine008/article/details/9097105

SVN原理比较复杂,但是思想很简单,一句话概括,就是通过某种核函数,将数据在高维空间里寻找一个最优超平面,能够将两类数据分开。

针对不同数据集,不同的核函数的分类效果可能完全不一样。可选的核函数有这么几种:

线性函数:形如K(x,y)=x*y这样的线性函数;

多项式函数:形如K(x,y)=[(x·y)+1]^d这样的多项式函数;

径向基函数:形如K(x,y)=exp(-|x-y|^2/d^2)这样的指数函数;

Sigmoid函数:就是上一篇文章中讲到的Sigmoid函数。

我们就利用几个数据集,直接给出Python代码,看看运行效果:

测试1:身高体重数据

如何学习SVM算法

运行结果如下:
如何学习SVM算法

可以看到,针对这个数据集,使用3次多项式核函数的SVM,得到的效果最好。

测试3:圆形边界

最后我们测试一个数据分类边界为圆形的情况:圆形内为一类,原型外为一类。看这类非线性的数据SVM表现如何:

测试数据生成代码如下所示:

如何学习SVM算法

测试结果如下:

SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,  kernel='linear', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)


0.65


SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,  kernel='poly', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)
0.675
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,  kernel='rbf', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)


0.9625


SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0, degree=3, gamma=0.0,  kernel='sigmoid', max_iter=-1, probability=False, random_state=None,
  shrinking=True, tol=0.001, verbose=False)


0.65

如何学习SVM算法
可以看到,对于这种边界,径向基函数的SVM得到了近似完美的分类结果。

以上就是如何学习SVM算法,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

svm
AI