ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略

目录

​ML:机器学习模型的稳定性分析简介、常见的解决方法​

​1、增强稳健性的通用方法​

​2、提高模型稳定性—适合泛线性模型(如逻辑回归)—幅度过大的变量进行分箱处理​

​3、提高模型稳定性—适合基于树的模型—降低过拟合​

​3,1、基于树模型的2个天然优势​

​3.2、降低树模型的过拟合问题​


ML:机器学习模型的稳定性分析简介、常见的解决方法

1、增强稳健性的通用方法

(1)、加入噪声数据—加扰动:比如在图像识别场景中,训练CNN识别图片时,常用的数据增强技术包括选择、拉伸、增加白噪声等方法。而在风控场景里,由于数据一般都是标签不平衡的(一般5%左右的bad rate),我只SMOTE方法来对bad的部分进行upsample。SMOTE方法通过对bad的部分加扰动,产生新的数据,这样就能平衡训练集中的各标签比例。
(2)、使用统计特征:比如,在2000年逾期5000元,是很严重的事件,意味着高风险;但2022年逾期5000元,却是低风险的。所以,如果只用金额数据,模型的预测往往不够精准。此时,可以利用统计特征来代表实际值。例如使用Z-Score,z的绝对值值越高,代表他和其他客户的差异越大。

风控领域由于对解释性有一定要求,所以很难使用神经网络等深度学习模型。

2、提高模型稳定性—适合泛线性模型(如逻辑回归)—幅度过大的变量进行分箱处理

对于逻辑回归模型,单个变量的变动会影响模型的输出,而且这种影响是线性的。这会造成两个因素影响稳定性,


问题



(1)、某特征样本的数值变化幅度过大,对最终输出结果影响会较为剧烈:例如我的模型其中一个特征是逾期金额,逾期10元和逾期20元对于银行来说都是小事,但在模型的某一项里,影响是双倍的。

(2)、对outlier值处理,比较复杂



解决方案



采用分箱技术→如WOE编码变换→来提高模型的稳定性:采用WOE编码后,(1)、比如,把小于100元的样本都被分到一个组,那么欠银行1元和99元都是一样低风险;

(2)、比如,把outlier值的样本,会自动转换成变成分箱的最左或者最右的那一类。例如我们的客户里年龄最大的不到100岁,那么我们可以每10岁设置一个分箱,变为[-∞,10],[11,20],....[90,+∞]十个分箱。


3、提高模型稳定性—适合基于树的模型—降低过拟合

3,1、基于树模型的2个天然优势

(1)、自带的自动分箱理念:由于树的split是基于阈值的,即相当于进行自动分箱,这也是基于树模型的好处之一。
(2)、基于树的模型,一般对数据的波动不敏感:数据分布发生微小偏移时,仍能表现稳定。比如决策树,数据的准备往往是简单的甚至是不必要的。

3.2、降低树模型的过拟合问题

但是,使用单棵决策树容易过拟合。为了防止过拟合我们一般会:
(1)、使用单棵决策树顺丰需要修剪枝叶技巧:但是这种方法,需要大量的分析与尝试,所以大多数人,很少使用单颗决策树作为ML模型。
(2)、使用随机森林算法:三个臭皮匠顶过一个诸葛亮,RF在解决回归问题时,并没有像它在分类中表现的那么好,这是因为它并不能给出一个连续的输出。
(3)、使用XGBoost算法:Kaggle比赛中的利器,XGBoost具有非常好的非线性拟合能力,以及对超参数的鲁棒性。但依赖统计特征,特征的准备需要积累一定周期才有足够置信度,比如一年的数据量。
其实,无论稳定性做得多好,模型总有效用递减的时候。下一步就是要如何实现模型监控。