一、学习要求
对一份金融数据,我们在之前的博客中用各种模型完成了预测贷款用户是否会逾期的工作,接下来我们要介绍网格搜索和交叉验证的方法,来提高模型的准确率。
二、基础知识
-
什么是网格搜索
通过循环遍历,尝试每一种可能的参数选择,表现最好的参数就是最终的结果。以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历、搜索,最后比较挑选出最优结果对应的参数网格。 -
交叉验证用来干什么的
在模型中,我们把数据分成了训练集和测试集,通过训练集拿到的参数来预测并且观察与测试集的拟合效果,但这样有很大的偶然性,为了减少这种一次划分的偶然性,我们使用交叉验证的方法。
三、实现
对数据的预处理和模型测试详见前面的博客,以下是模型调优的实现过程
逻辑回归模型调优
#模型调优
# n折交叉验证
n_fold = 5
# 评价标准
scoring = 'roc_auc'
from sklearn.model_selection import GridSearchCV
log_reg = LogisticRegression()
#把要调整的参数以及其候选值 列出来;
param_grid = {'C': [1e-3,0.01,0.1,1,10,100,1e3], 'penalty':['l1', 'l2']}
print("Parameters:{}".for