Python机器学习SVM简单应用实例

2017年7月21日14:12:46 发表评论 3,330

1、前言

在上一篇理论性的文章中我们说过了,SVM是分线性可分和线性不可分两种情况的,线性可分的比较容易理解,比较容易一些,线性不可分的就稍微复杂一点了。我们测试就分别用线性可分和线性不可分两种情况分别测试Python中的SVM算法

Python中已经封装了SVM的算法在sklearn的库中,若不知道sklearn是啥我想你可能是没有看前面的基础课程,建议去了解一下sklearn。

本篇文章只讲线性可分的情况,下一篇文章讲线性不可分的情况,使用图片识别做例子。

2、线性可分的SVM应用测试

(1)简单的预测

测试数据我们给出三个点:(2,0)(1,1)(2,3)。

前两个点我们分为一类,第三个点事另一类可以记为(0,0,1)。

看代码:

上面的代码非常简单就不用讲了,注释写的很清楚。

(2)复杂一些的预测

下面我们做一个复杂点的例子,我们来随机生成两类点,进行SVM的建模然后我们在画布中画出这个模型图。

训练集:随机生成正太分布的点,20个小于0的 20个大于0的数。

代码如下:

模型已经建完,了我们下面就画出这个模型的二维形状。这里我们使用了一个绘图的库叫pylab。

绘图很简单,只要知道点的坐标就可以绘制出点,只要知道多个点的坐标连接起来就可以构成线。

不过这里注意一下,有个计算斜率和截距的公式,看代码吧。

最终的绘制结果如下:

Python机器学习SVM简单应用实例

 

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: