使用Python 的sklearn包来训练svm,当然也可以使用libsvm。
主要想用svr做预测,我们知道svm是做分类的,同样基于svm的改进版svr也同样和可以做预测。
from sklearn import svm.SVR()
svr的初始化:
clf=svm.SVR(
C=c_value,
cache_size=200,
coef0=0.0,
degree=3,
epsilon=0.1,
gamma=gamma_value,
kernel='rbf',
max_iter=-1,
shrinking=True,
tol=0.001,
verbose=False
)
主要调节的参数是C,coef0,gamma,kernel。
C是惩罚函数
kernel可以选择核函数,一般认为“rbf”或者“linear”会比较合适。
因此我们一般都会选择“rbf”,默认的也是径向基函数。
在后续我们主要调节C和gamma的参数。
台湾大学的Chih-Jen Lin有一篇指导性的文章讲svm的调参,可以借鉴。
http://10.254.1.82/cache/13/03/ntu.edu.tw/72c9aa1223379f2b3d82c519299ffe1a/guide.pdf
前路漫漫。