Python库——sklearn.svm的SVC函数

under 机器学习  tag     Published on February 14th , 2020 at 08:09 am

函数原型

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

参数说明

  • C:SVC的惩罚参数。默认值:1.0

    • C越大,相当于惩罚松弛变量,希望松弛变量接近0,即对误分类的惩罚增大,趋向于对训练集全分对的情况,这样对训练集测试时准确率很高,但泛化能力弱。
    • C值小,对误分类的惩罚减小,允许容错,将他们当成噪声点,泛化能力较强。
  • kernel:核函数,默认为' rbf ',可选:

    • linear:线性,u’v
    • poly:多项式,(gamma*u’v + coef0)^degree
    • rbf:rbf函数,exp(-gamma|u-v|^2)
    • sigmoid:tanh(gammau’*v + coef0)
    • precomputed
  • degree:多项式poly函数的维度,默认为3,选择其他核函数时会被忽略
  • gamma:rbf、poly、sigmoid的核函数参数,默认为auto
  • coef0:核函数的常数项。对于poly和sigmoid有用
  • probability:是否采用概率估计。布尔类型,默认为False
    需要在训练fit()模型时加上这个参数,之后才能用相关的方法:predict_proba和predict_log_proba
  • shrinking:是否采用shrinking heuristic方法,默认为true
  • tol :停止训练的误差值大小,默认为1e-3
  • cache_size :核函数cache缓存大小,默认为200
  • class_weight :类别的权重,字典形式传递。设置第几类的参数C为weight*C(C-SVC中的C)
  • verbose :允许冗余输出?
  • max_iter :最大迭代次数。-1为无限制。
  • decision_function_shape :‘ovo’, ‘ovr’ or None, default=None

    • decision_function_shape='ovr'时,为one v rest,即一个类别与其他类别进行划分,
    • decision_function_shape='ovo'时,为one v one,即将类别两两之间进行划分,用二分类的方法模拟多分类的结果。
  • random_state :数据洗牌时的种子值,int值

样例代码

import numpy as np
from sklearn.model_selection import GridSearchCV
parameters={'kernel':['linear','rbf','sigmoid','poly'],'C':np.linspace(0.1,20,50),'gamma':np.linspace(0.1,20,20)}
svc = svm.SVC()
model = GridSearchCV(svc,parameters,cv=5,scoring='accuracy')
model.fit(X_train,y_train)
model.best_params_
model.score(X_test,y_test)

本文由simyng创作, 采用知识共享署名4.0 国际许可协议进行许可,转载前请务必署名
  文章最后更新时间为:February 14th , 2020 at 12:09 am