特征工程(下)

本文探讨了在业务中特征工程的重要性和应对模型效果问题的方法,包括变量重要性、共线性、单调性和稳定性。通过IV值、分箱、WOE、集成模型输出的特征重要性、PSI和跨时间交叉检验等工具来评估和优化特征。强调了模型的稳定性和可解释性在实际应用中的关键地位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  工作中常用的特征工程有哪些方法呢?首先,我们需要了解业务中的模型会遇到什么问题,定位了问题才能找到贴合业务场景的特征工程方法。这比你会一些处理特征的骚操作重要很多,毕竟模型落地不是在打比赛,某个评价指标提高一点点就行,需要考虑的方面更多,比如变量的可解释性、模型的可解释性、模型的部署和监控等等。

  下面是我们在业务中的模型中会遇到的问题:

  • 模型效果不好
  • 训练集效果好,跨时间测试效果不好
  • 跨时间测试效果也好,上线之后效果不好(一定是变量逻辑出问题,特征出现穿越)
  • 上线之后效果还好,几周之后分数分布开始下滑(有一两个变量跨时间测试不好)
  • 一两个月内都比较稳定,突然分数分布骤降(关注外部环境)
  • 没有明显问题,但模型每个月逐步失效(无解)

  以上问题是建模的核心,个人觉得比高大上的算法重要得多,可以针对这些问题多深入思考原因。然后我们来考虑一下业务所需要的变量是什么。

  • 变量必须对模型有贡献,也就是说必须能对客群加以区分
  • 逻辑回归要求变量之间线性无关
  • 逻辑回归评分卡也希望变量呈现单调趋势 (有一部分也是业务原因,但从模型角度来看,单调变量未必一定比有转折的变量好)
  • 客群在每个变量上的分布稳定,分布迁移无可避免,但不能波动太大

import pandas as pd
import numpy as np
df_train = pd.read_csv('train.csv')
df_train.head()
#数据集为kaggle上的Titanic数据集。

变量重要性

  • IV值
  • 卡方检验
  • 模型筛选
    这里我们使用IV值或者模型筛选多一点(一般一种方法就行,差别不大)
分箱、WOE、IV
import numpy as np
import pandas as pd
from scipy import stats

def mono_bin(Y,X,n=20):
    r=0
    good = Y.sum()
    bad = Y.count()-good
    while np.abs(r)< 1:
        d1=pd.DataFrame({
   
   "X":X,"Y":Y,"Bucket":pd.qcut(X,n)})
        d2=d1.groupby('Bucket',as_index=True)
        r,p=stats.spearmanr(d2.mean().X,d2.mean().Y)
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值