风控建模之模型训练(基于逻辑回归)

1 变量筛选

模型训练第一步就是变量筛选,该步骤又可以分为粗筛选、细筛选两个过程。注意:好客户与坏客户会参与到模型构建,而不确定客户不进入模型。

1.1 变量粗筛选

粗筛选就是把明显不符合要求的变量筛掉,常用指标有:

  • 参数估计的符号:要保证一致
  • VIF:对变量间共线性有一定要求
  • P值:看显著性
  • 信息熵:太低的可以直接筛出

特别注意的是,参数估计的符号必须一致。因为在完成WOE转换(线性转换)之后,变量的趋势就已经确定了。这时,若符号是负的,则趋势就完全相反了(负相关)。

1.2 变量细筛选

细筛选就是用给定数据拟合逻辑回归模型,用最大似然法得到模型最优解的过程。常用细筛选方法有:

  • 前向选择
  • 后向选择
  • 步进法(双向选择)

 
其中,最大似然法有三个步骤:

  • 假设数据遵循一种特定的模型形式
  • 如果数据遵循这种特定模型形式,可以构建一个函数来计算给定数据的似然值
  • 估计模型参数以实现似然函数的最大化

2 建模过程

我们采用的是步进法(双向选择)进行建模,模型训练的过程如下图。

建模最开始时,有两种选择:

  • 一种是先预设几个变量,让它们进入模型(First设定);
  • 一种是不设定First,让系统自己去找变量建模。

若不设定First,则找到的第一个变量,一定是信息熵最大的变量,因为该变量能最大化降低模型拟合误差。若设定了First,则会将选定的几个变量先放进模型,再看模型拟合误差。无论是哪种方式,第一次迭代之后,都会生成一个初始化变量集合,并用它们去建模。之后就会对模型进行最优化判断,看是否满足最优模型要求:

  • 把除建模变量外的其他变量,一个一个往模型里增加,看哪个变量能有效降低模型拟合误差。若有,则加入模型中,然后继续判断,直到其他变量都不能有效降低模型拟合误差
  • 然后把模型中的变量一个一个向外移除,看移除哪个变量后,模型性能提升了
  • 直到既不能往里增加,也不能向外移除时,模型性能达到最优。输出模型与变量

每一次迭代过程,都会进行是否最优模型判断,都会向模型中增加或移除一个变量,直到模型性能最优。

3 知识拓展

1. VIF与P值的设定准则

无论VIP还是P值,设定越小就越严格,她俩的设定,都和可选变量的数量有一定关系:

  • 可选变量很多:倾向于把要求设置更严(VIP与P值更小),这样既能选到理想的变量,模型性能也更稳定(变量间共线性更小,P值更显著)
  • 可选变量很少:在模型稳定性上标准会放宽一些(VIP与P值更大),希望能让更多变量进入模型,优先满足模型的性能

 
2. Ca、Am、Reg之间的关系?

三者的含义及其关系如下:

  • Ca:指单变量分析,该阶段完成了变量分箱和信息熵计算,Ca分析结果是Am和Reg的基础

  • Am:在没有任何人工干预情况下训练模型,得到模型数学上的最优解,这个过程称为Am(automod)

  • Reg:Am得到的数学上最优,不一定是模型的实际最优,因为模型可能加入了一些不符合业务逻辑的东西,所以需要对模型中部分变量进行替换,并计算出每个变量的参数。这种在最优解基础上进行微调的过程就是Reg

 
3. 跑Am时phase=2能否保证变量一定进入模型,与Reg固定变量有什么区别?

phase=2其实就是First设定(预设几个变量,让它们进入模型),但这并不能保证这几个变量最后一定出现在模型中。因为用最大似然法拟合模型的过程,实质是在多维曲面上寻找一个极值点,过程类似于梯度下降(沿斜率最大方向下降),通常得到的是一个局部最优解。因为极值点的确定,和初始值有很大关系,而First设定改变的就是初始值,找到的极值点一定是在初始值附近。所以,First设定会影响Am过程的模型结果,但并不能保证设定的初始变量一定能进入模型。

首先明确Reg过程不是训练模型,而是对训练好的最优解模型做微调,此时已经得到变量组,只需计算出每个变量的参数,这是Reg的过程。

 
4. 经过WOE转换后,参与模型训练的是变量实际值还是WOE值?

经过WOE转换后,参与模型训练的是WOE值。

 
5. 进入模型的变量中存在很多只有两个分箱的变量,去掉该变量后模型的KS会减小,是否要保留该变量?

虽然我们希望找到这种理想变量(分箱数不多不少),它能对所有人群都有很好的区分效果,但实际并不一定总能找到这类变量。现实情况是,有些变量分组取值比较少但效果却不错,比如逾期类的变量(有过逾期/没有过逾期),就有比较好的风险识别效果,所以该类变量应该保留。

 
6. 在选择入模变量时,除了从IV值角度进行考虑,还能如何从业务角度进行考虑?

从业务角度选择入模变量,主要体现在以下两个方面:

  • 变量分箱的趋势单调化,是否符合业务理解
  • 看入模变量是否有可解释性,是否符合业务认知

4 思考

  • 建模过程的WOE是不是必须的?如果不做WOE变换会有什么影响?

  • 连接函数为什么要用Logit函数?可以用其他Sigmoid函数做S型变换吗?

猜你喜欢

转载自www.cnblogs.com/1k-yang/p/12533144.html