脏数据的几种姿势,我觉得你得了解下。缺失值、异常值、量纲不一致、多重共线性……这些在数据挖掘里都挺常见的。不好,建模效果大打折扣。文章里用 R 语言给了不少实战代码,比如用is.na()
查缺失,用median()
来补值,蛮实用的。
缺失值这块,代码还挺直观。先找空的,再算中位数补上,简单粗暴但效果还不错。Age 字段那段更进阶,用lm()
建回归模型预测缺失值,用predict()
搞定替换。适合数据量大、数据关系比较稳定的场景。
异常值也别小看。文章建议先画个箱型图看看分布,再用 winsorization 方法。就是把极端值拉回合理范围,挺适合金融、气象这些常见异常的领域。
再说量纲差异,单位不统一会让算法输出歪掉。比如身高有的用cm
有的用m
,模型怎么能好好学?所以文章建议直接用Z-score 标准化,思路是把不同尺度统一到一个标准上。
多重共线性比较隐蔽但杀伤力大。特征之间高度相关,会让模型不稳定。文中提到用主成分(PCA)来降维,起来还挺优雅。你如果做线性回归的,尤其得注意这个。
另外文章里推荐了几个相关资源,比如异常值剔除程序、多重共线性方法、缺失值替换参数设置,都挺值得收藏的。
如果你平时用 R 做数据,这篇文章里的代码可以直接拿来用;如果用 Python,思路也能参考下,比如用scikit-learn
里的SimpleImputer
缺失值也挺方便的。