【代码模版】利用k折交叉验证对SVM中的参数C进行调参

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))

发布了28 篇原创文章 · 获赞 0 · 访问量 1097

猜你喜欢

转载自blog.csdn.net/weixin_44680262/article/details/104680841