美文网首页互联网科技每周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