在建立风控模型的过程中,期望最终能得到性能优良的模型,但在实际业务场景中,由于许多机器学习模型算法参数较多,用手动参数方式优化模型不仅耗时特别长,而且能取得理想的结果这种情况尤其是对于随机森林、XG boost、LightGBM等算法模型,在模型训练环节无法得到可以采用缺省参数的模型,但参数的调谐和测试对提高模型的效果至关重要本文围绕这一实际情况,对模型性能优化中的参数自动化检索内容进行了介绍,描述了模型参数优化中最常见的两种检索策略,分别是网格检索和随机检索,具体描述结合实际案例进行解读分析
首先,我们来看看下面的案例场景。 样本数据共包含10000个样本和10个特征。 部分数据样本如图1所示,其中ID为样本主键,X01~X10为特征变量,y为目标变量(取值二分之一表示是否违约),场景的具体需求通过特征变量池,风控粘土
编辑
添加图像注释,不超过140个字符(可选)
图1示例数据
以上实例数据表明,目前采用XG boost决策树集成学习算法实现模型的开发。 而XG boost作为经典树模型在实际信用风控APP应用中得到广泛应用,XG boost算法的超参数较多,也符合本文描述的多参数自动化调优的业务背景。
以下将建模数据按7:3的比例随机划分为训练集和测试集,采用算法的缺省参数组合在训练样本集上对拟合模型进行训练,同时在测试样本集中对模型进行建模具体的实现过程和模型指标结果如图2所示。
将编辑切换到中心
添加图像注释,不超过140个字符(可选)
图2模型的训练和评价
XGBoost模型的默认参数如图3所示,这样输入参数组合下的模型性能指标为accuracy=0.5373,AUC=0.5319 (参照上图模型评价print结果)。 模型参数调整往往是一个必然的过程,结合实际建模经验,图3中参数n_estimators (树数)、max _ depth ( learning _ rate )、学习率)
编辑
添加图像注释,不超过140个字符(可选)
图3xg boost的默认参数
其次,根据模型参数自动搜索方法对模型进行优化,介绍了网格搜索、随机搜索的原理逻辑和实现过程,给出了关键参数n_estimators (树数)、max_depth (树深)、learning
1、网格搜索
网格搜索会扫描由参数对象相交形成的所有组合。 例如,如果有三个参数,每个参数都有三个值,则对应于3*3*3=27种参数的组合。 网格搜索尝试测试并比较所有组合。 该方法在实际应用中最常见,因为输入参数组合的完整性较高。 在python中,可以通过调用sklearn库中的GridSearchCV来实现。 其中GridSearch表示网格搜索,CV表示交叉检查。 另一种优化模型策略经常与参数检索结合应用。
现在,参数n_estimators、max_depth、learning_rate分别取3种,这里需要注意的是,最好也加入模型的默认参数(这里为010 ) 模型调谐各参数的可取值的分布是n _ estimators={ 50,100,200 }、max _ depth={ 3,6,10 }、learning_rate=的模型参数
编辑
添加图像注释,不超过140个字符(可选)
图4网格搜索参数的调整
编辑
添加图像注释,不超过140个字符(可选)
图5网格搜索的最佳参数
通过网格搜索在预先给定的参数范围内得到最优参数后,将其重新建模为训练数据集拟合模型,验证数据集并评估模型的性能效果。 该过程与图2一致,只是模型输入参数进行了调整,具体如图6所示。
将编辑切换到中心
添加图像注释,不超过140个字符(可选)
图6网格搜索模型优化
模型最终结果表明,调谐后模型的accuracy(0.5610 )、AUC ( 0.5395 )和先前默认参数下的模型的accuracy ( 0.5373 )、AUC ( 0.5610 )均有一定的提高
2、随机搜索
随机搜索是对参数的取值范围,不需要尝试所有可能的参数组合,而是在搜索参数范围内随机抽样进行测试。 另外,可以在参数中自由指定检索次数。 随机搜索比网格搜索效率更高,特别是在参数多取值范围广的情况下,随机搜索更有效率,因此在机器学习树模型的参数调整等场合中也经常被使用。 在python中,可以通过调用sklearn库中的RandomizedSearchCV来实现随机搜索。 随机搜索表示随机搜索,而CV表示交叉验证。
目前,使用与网格搜索相同的参数范围,通过随机搜索法优化模型,具体实现过程如图7所示,最佳参数组合输出如图8所示。
编辑
添加图像注释,不超过140个字符(可选)
图7随机搜索参数调谐
编辑
添加图像注释,不超过140个字符(可选)
图8随机搜索最佳参数
通过随机搜索在预先给定的参数范围内得到最优参数后,同样在测试数据集上验证了效果,实现过程和结果如图9所示。
将编辑切换到中心
添加图像注释,不超过140个字符(可选)
图9网格搜索模型优化
模型最终结果表明,调谐后模型的accuracy(0.5607 )、AUC (0. 5478 )和先前默认参数下的模型的accuracy (0. 5373 )、AUC (0. 5607 )均有一定的提高,随机搜索得到了
综上所述,我们先后采用了网格搜索、随机搜索这一最常用的参数搜索方法,优化了模型在缺省参数下的性能,最后通过比较模型相关指标(图10 )验证了网格搜索和随机搜索的有效性,即模型搜索的有效性
编辑
添加图像注释,不超过140个字符(可选)
图10模型优化前后的比较
当然,上图所示模型的性能结果反映了网格搜索、随机搜索的模型参数中的调谐的好处,但本论文为了表示实现过程和效果,从模型参数中提取了常见的3个参数( n _ eee ) 如果只选择“learning_rate”,并且每个参数的取值范围只有三种,则扩大参数的数量和值类别的范围时,优化模型性能的结果会更加明显。 在机器学习模型调优的实际场景下,结合模型算法属性、样本数据情况、服务器性能、参数重要性等维度综合考虑,适当选择合理的参数范围,以及参数优化的搜索方法,实现模型的
为了便于了解和熟悉常用参数检索方法下的模型性能调优,准备了与本文内容同步的样例数据和python码,供学习参考。 详情请转至知识星查看相关内容。
将编辑切换到中心
添加图像注释,不超过140个字符(可选)
.
~原创文章