神刀安全网

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

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

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

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

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

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

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

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

rbf(默认)
linear
poly
sigmoid
precomputed

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

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

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

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

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

当然我们可以将 gamma 看作:

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

下面是简单的代码实现:

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的简单使用

分享到:更多 ()

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址