分类预测SVC
from sklearn.svm import SVC
svm = SVC(C=1, kernel='rbf', degree=3, gamma='auto', class_weigth=None)
svm.fit(train_data,train_label)
test_pred = svm.predict(test_data)
参数:
(1)C:惩罚参数(0.0001-10000)
表示对错误案例惩罚程度,C越大,越不容忍出现误差,容易过拟合;C越小,容易欠拟合
(2)kernel:核函数(rbf、linear、poly、sigmoid)
rbf为高斯核函数、linear为线性核函数、poly为多项式核函数、sigmoid为双曲正切函数
如何选用(线性核参数少,速度快;rbf核参数多,分类结果依赖参数,需要网格调参,比较耗时):
特征数量很大,甚至和样本数量差不多,往往线性可分,选用LR或者线性核linear;
特征数量很小,样本数量正常,选用rbf;
特征数量很小,样本数量很大,手动添加一些特征,使得线性可分,然后选用LR或者linear
(3)degree:核函数多项式的最高核(当kernel为poly时有效,其他核忽略)
(4)gamma:核函数系数(核函数是rbf、poly和sigmoid时使用gamma参数。默认auto,使用特征数的倒数,即1/n_features)
gamma越大,σ越小,使得高斯分布又高又瘦,模型只能作用于支持向量附近,导致过拟合;
gamma越小,σ越大,高斯分布会过于平滑,在训练集上效果不好,导致欠拟合。
友情链接:
参数讲解(https://www.cnblogs.com/lyxML/p/9668386.html
https://www.cnblogs.com/solong1989/p/9620170.html)
调参策略(https://blog.csdn.net/chenyiming2010/article/details/89044014)
回归预测SVR
类似SVC参数