美文网首页互联网科技每周500字程序员
机器学习笔记030 | SVM的简单使用

机器学习笔记030 | SVM的简单使用

作者: 止一量化养家 | 来源:发表于2017-10-13 08:35 被阅读94次

在Python中,SVM有现成的包sklean可以调用,我们直接使用就好了。

例如我们有这样的一些数据:

经过训练,我们可以画出决策边界:

SVC下面可以选择一下几种核函数,使用的最多的径向基(rbf)核函数是默认的:

rbf(默认)
linear
poly
sigmoid
precomputed

或者也可以自定义核函数。

需要注意的是,高斯核函数公式为:

但是在 sklean 中径向基(rbf)核函数计算的公式为:

当然我们可以将 gamma 看作:

下面是简单的代码实现:

from sklearn import svm
# 训练svm
clf_RBF  = svm.SVC()
clf_RBF.set_params(kernel='rbf', C=1.0, gamma=50) 
clf_RBF.fit(X,y)
print "预测精准度:%s" % clf_RBF.score(Xval,yval)
print "预测:%s" % clf_RBF.predict(Xval)

下面是参考的链接文档:

http://scikit-learn.org/stable/modules/generated/sklearn.svm.SVC.html

正如Andrew Ng所说,使用svm进行训练,相比神经网络来说,确实训练速度要快很多。

不过只有当特征数量 n 很小, 训练集数据量 m 中等的时候,才建议使用高斯核函数来训练SVM,例如 n 的范围是 ( 1,1000 ) , m 的范围是 ( 10,10000 ) 。

如果特征数量 n 远远大于训练样本集 m,或者特征数量 n 很小,而训练样本集 m 很大,都不宜使用高斯核函数。

更多代码,请点击阅读原文查看。

文章转载自公众号:止一之路

相关文章

网友评论

    本文标题:机器学习笔记030 | SVM的简单使用

    本文链接:https://www.haomeiwen.com/subject/cmmdyxtx.html