大数据时代的风控体系必有模型部分的参与,用策略贯穿整个风控体系,以数据为驱动,模型一定是标配内容。于是在模型的建设上,如何精细化地输出一套有效的模型,就是在精细化管理上非常重要的一个差异点。不管传统的逻辑回归也好,还是现在的机器学习也罢,总需要进行的就是模型的调参。
关于调参的内容,在知识星球的社区中,我们也跟大家分享过相关的内容,详情如下:
在风控建模的流程中,模型调参是非常重要的一步,我们通过调整算法的参数可以达到更好的模型效果。在调参过程中需要建模人员对算法和数据的理解,细致的分析能力,以及选择合适的调参策略。下面我们基于自身建模的经验,介绍下风控建模中调参的实际应用方法。
调参前需要了解的内容
在讲具体的方法前,先抛出下面几个问题:
1)参数是什么?是调整哪些参数?
2)调参的目标是什么?每种参数对目标有什么影响?
3)调参的流程大概是怎样的?
4)在调参中需要注意哪些地方?参数在机器学习指的是算法的"超参数",决定了模型结构/框架及算法行为,举个例子,决策树中的"最大树深度"就是一个超参数,它决定了树在生长过程中的层数,会影响到最终模型的预测结果。每种算法的参数我们需要去了解它的含义,取值范围,对模型性能的影响等,才能知道怎么去调整。
另外算法中的参数可能很多,但并非所有的参数都同等重要,应该根据目标选择重要的参数来调整。调参的目标,或者说参数对模型效果有什么影响,有以下几点:
1)模型分的分布,根据业务sens,我们希望调参后模型分呈近似的正态分布
2)模型分的最大KS,KS反映了模型的区隔能力,我们希望调参能使KS最大化
3)模型分的Lift排序性,在整体或者尾段,我们希望调参后模型有良好的排序能力
一.调参的流程大致分为以下几步
1)确定使用的算法和调参目标
2)建立baseline模型,baseline类似实验中的对照组,后面调参后的模型就是改进版本,来打败baseline版本,baseline中的模型参数需要按经验来设置
3)确定要调整哪些参数,选择合适的调参策略
4)记录每轮调参的结果,最好能可视化的呈现和分析
5)比较每组参数的训练结果,选择最好的一组参数来跟baseline版本做对比
调参最需要注意的地方在于时间成本。数据规模的大小,参数组合的数量,参数的取值都会影响到调参训练的时间。风控建模的样本一般就几万到十几万,属于小规模样本量,但特征可能有几百维甚至几千维,数据规模越大,训练时间越长,大规模数据集一定要考虑调参耗费的时间。另外我们不可能穷尽所有的参数组合来达到全局最优解,要铭记参数只有更好,没有最好,参数组合数量和取值范围应控制在合理的范围内。
总的来说,我们需要平衡模型的效果和调参耗费的时间成本。
二.风控模型常用算法和主要的参数介绍
风控模型常用的算法有逻辑回归(LR),随机森林,xgboost,lightgbm等,其中LR属于线性回归,剩下的都属于集成算法。LR的参数很少,比较重要的一个参数在sklearn中叫"正则化系数"(C),这个参数值越小,正则化强度越大,即防止过拟合的程度更大,但经过我们的实际验证,这个参数对模型效果影响甚微,所以用LR训练时其实不用调参,用算法给的默认参数即可。相比之下集成算法的参数众多,这里我们挑出了主要的一些参数,介绍下参数的含义,对模型性能的影响和常见的取值范围(sklearn中)。并且将参数分为了性能类,效率类,附加类三种。
1.随机森林
随机森林是bagging算法的代表,使用了CART树作为弱分类器,将多个不同的决策树进行组合,利用这种组合来降低单棵决策树的可能带来的片面性和判断不准确性。随机森林一般调整n_estimators,max_depth,max_features,min_samples_split,min_samples_leaf这几个参数。
2.XGBOOST
xgboost是一种梯度提升的算法,用来解决分类和回归问题。它对GBDT进行了一系列优化,比如损失函数进行了二阶泰勒展开、目标函数加入正则项、特征粒度上支持并行计算和默认缺失值处理等。xgboost一般调整n_estimators,learning_rate,max_depth,min_child_weight,subsample,colsample_bytree这几个参数。
3.Lightgbm
lightgbm跟xgboost类似,也是一种梯度提升的算法,它相比xgboost的改进在于,训练速度和精度上的优化,以及可以处理类别型特征。lightgbm的很多参数和xgboost是一样的,主要对n_estimators,learning_rate,num_leaves,min_child_sample,subsample,colsample_bytree这几个进行调整。
当然模调参中的相关细节,有兴趣的童鞋可继续关注:
…
~原创文章