一、了解业务,确定最终目的;
二、理解数据,从数据库中抽取数据/或者网上爬取数据;
逻辑上理解数据,筛选x(y时间点之前的数据为x,时间点之后的数据不能选为x)
三、数据清洗:
缺失值(列处理):占比超过80%(经验值,不一定),删除;
占比30%~80%,分类变量;
占比10%~30%,多重插补(预测或者互相填补)、分类;
小于10%,固定值填补(中位数、均值、众数等)。
注:以上数据(80%、30%、10%)为经验值,实际不一定完全按照以上数据进行缺失值处理。
异常值:删除异常值所在的行;
替换为正常值(盖帽法)。
错误值:替换成NA,当做缺失值处理。
合表:
长表:一个id对应一列(一个酒店多个订单,一个信用卡多个消费记录);
宽表:一个id对应一行;
合表:首先将长表变为宽表,再将所有相关的特征合并到一张表中。长表变宽表时,需进行分类汇总:
• 连续变量:最小值、最大值、均值/中位数、方差/标准差、变异系数cv=方差/均值;
• 分类变量:占比、信息熵/基尼;
变量变换:
• 偏态数据:一般是右偏数据,取log;
• 变量分箱;
衍生变量:
• 字符型变量:提取某一特殊字符等方法;
• 时间型变量:做时间差等方法;
四、生成y:
定义好客户、坏客户。
(评分卡对缺失值、异常值有包容度,默认把缺失值单独分为一类。)
五、分箱(连续变量变为分类变量,分类变量进行重分箱):
连续变量分箱:
无监督:自定义:有明确的业务需求时,按照业务需求分箱;
等宽:按照距离分类,每个等级中数据最大-最小值一致(好处:不改变数据分布);
等深:按照个数分类,每个等级中数据量一致;
信息:数据出现扎堆现象,使用聚类进行分箱;
有监督:cart树分箱;
分类变量重分箱:
某个类或者某几个类的频数较少:合并类(一般情况下,无序变量合并为一类,有序变量合并到其他类);
类别太多:无监督分箱:按业务分箱;
有监督分箱:cart树分箱;
除以上两种情况,其他分类不需要重分箱。
六、WOE、IV值
WOE(Weight of Evidence)值表示预测为1的概率大小,值越大、预测为1的概率越大;WOE值是放进logistic回归的值。WOE值可能为无穷值(0或者1的频数为0),方法:公式中的0改为0.5、或者,改对应频数,加一减一。WOE值,看趋势。
IV(Information Value)值表示变量能提供的信息大小,表示变量的重要度。IV<0.02:对预测几乎无帮助;0.02<=IV<0.1:有一定帮助;0.1<=IV<0.3:对预测有较大帮助;IV>0.3:对预测有很大帮助;IV>0.5:慎重考虑x对y预测的有效性;IV>1:不能使用。
注:可利用IV值筛选变量,一般评分卡中的变量为10个左右。也可用随机森林筛选变量(变量特别多,也可以先利用随机森林筛选变量,再进行分箱)。
七、优比odds
odds = 同一类人中好客户的比率/坏客户的比率
八、回归
九、分数
odds越高,分数也应该越高,因此,ln(odds)与score成正比,即:
需确定参数offset与factor,可以直接给定,但实际工作中一般不直接给定;通过参数pdo给定。pdo代表当odds变为原来的两倍时,score增加多少。即:
与上一公式相减,可得到: 即:
指定一组初始的score与odds,带入即可算出offset值。至此,分数计算公式完成。
每一个特征对应的分数:
拆解score:
对于每一个具体的特征值都会有对应的区间,对应的WOE值,对应的分数即为:
十、评估
指定score阈值,可得到ROC曲线、KS曲线等相关指标。
网友评论