数据预处理小结_简版

一、数据清洗

在讨论具体的方法前,想讨论一个大前提,数据的预处理是否是测试集和训练集一起进行?答案是不要。

简单而言,就是不应当把测试的信息引入训练中。但在确定预处理方法后,测试集应进行同样的处理,因为机器学习的一个假定,就是样本服从独立同分布。

数据缺失

一般可从样本维度和变量维度检视,更常见的是变量维度的缺失,实际上,变量缺失的原因才是最关键的

例如,某些特定样本,基本所有变量缺失,是IT系统问题、风控流程环节导致?某些变量缺失率较高,是业务合理(如非强制录入项)、数据加工错误(表关联的问题居多)?

样本维度,如果某些样本,大多数变量均缺失,则直接删除样本。

变量维度,缺失值较多的话,可转换为“有\无”的类别性变量,缺失值较少则进行填充。

根据样本间的相关性填充:

1、变量分布的常见值,如中位数、均值、众数等,采用哪种方式填充,一方面可实验进行,一方面需要根据变量本身分布的特点决定。如接近正态分布,则选择均值,偏态分布选择中位数。

2、用上下数据进行填充,一般时序类的变量可尝试该方法。

根据变量间的相关性填充,常用的如RF、KNN等填充。

最后,对于传统评分卡建模方法,缺失值可单独作为一组,保留计算WOE,关键在于分组内客群的风险表现是一致的。另外的考虑,则是填充毕竟相当于认为引入了噪声,均值简单填充效果不会太好,用其他变量预测填充,需要有一个强假设,变量之间是相关的,方可预测,但一般来说,可很好预测的变量,也没太大必要进行入模

比较推荐的还是单独一组或进行one-hot编码(其实也是保留缺失),或者考虑使用不限制缺失值的算法(xgb、rf、lgb是否支持要搞搞清楚)。

异常值检测

略。

脏数据处理

如注册时间,为1970-01-01 23:59:59,明显不符合业务规则;或由系统时区配置,导致时间异常,则可进行修复。

二、常用技巧

log转换:非线性关系为线性关系,降低变量值跳跃的影响。

U型特征转为单调:转化成中值差值的绝对值。

数据质量的常见问题:数据来源多样,格式不统一;数据不准确,如客户A在数据库B、C的年龄分别记录了为23、70岁。

附,参考资料

1、评分卡模型开发-用户数据缺失值处理,https://blog.csdn.net/lll1528238733/article/details/76599626

2、机器学习中,对于数据的预处理是否是测试集和训练集一起进行,https://www.zhihu.com/question/312639136/answer/601839910

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容