SVM模型中需要调参的一般为C和kernel,但是kernel99%都是选择’rbf’(径向基核函数,也就是高斯核函数),所以一般只需要对C进行调参。
参数C是SVM近似线性可分情况下松弛因子的参数,原理上C值越小越好
from sklearn.svm import SVC
from sklearn.model_selection import cross_val_score
# 创建选择最优参数C的模型
def select_c_function(i):
# 将含有参数的模型实例化
svm_model = SVC(kernel='rbf',C=i)
# 对模型进行K折交叉验证,注意scoring可以根据需要改变(其他选择查看API)
recall_score = cross_val_score(svm_model, x_train, y_train.values.ravel(), scoring='recall', cv=10)
return recall_score.mean() # 返回K次交叉验证评分的均值
c_range = [] # 此处填写参数C的取值范围
for i in c_range:
avg_score = select_c_function(i)
print('当C值为{}时,K折交叉验证的平均分是{}'.format(i, avg_score))