缺失值处理
本站寻求有缘人接手,详细了解请联系站长QQ1493399855
缺失值处理是一个数据分析工作者永远避不开的话题,如何认识与理解缺失值,运用合适的方式处理缺失值,对模型的结果有很大的影响。
1. 缺失值分析
1.1. 缺失值类型
- 随机丢失(MAR,Missing at Random)
指数据丢失的概率与丢失的数据本身无关,而仅与部分已观测到的数据有关。
- 完全随机丢失(MCAR,Missing Completely at Random)
数据的缺失是完全随机的,不依赖于任何不完全变量或完全变量,不影响样本的无偏性。
- 非随机丢失(MNAR,Missing not at Random)
数据的缺失与不完全变量自身的取值有关。
正确的理解和判断缺失值的类型,对工作中对缺失值分析和处理带来很大对便利,但因没有一套成熟但缺失值类型判断方法,大多考经验处理,这里不作过多阐述。
1.2. 缺失值成因
- 信息暂时无法获取、获取信息代价太大;
- 信息因人为因素没有被记录、遗漏或丢失;
- 部分对象或某些属性不可用或不存在;
- 信息采集设备故障、存储介质、传输媒体或其他物理原因造成的数据丢失。
1.3. 缺失值影响
- 使系统丢失大量的有用信息;
- 使系统中所表现出的不确定性更加显著,系统中蕴涵的确定性成分更难把握;
- 包含空值的数据会使数据挖掘过程陷入混乱,导致不可靠的输出。
1.4. 缺失值分析
数据缺失值分析属于数据探索分析(Exploratory Data Analysis,EDA)的里重要的一步,其工具通常是统计分析和数据可视化。统计分析为我们提供了假设不正确的理论概率,即显着性水平,而数据可视化工具给我们带来了有关数据分布的印象,有助于从概念上验证他们的假设。
2. 缺失值处理
先通过一定的方法找到缺失值,接着分析缺失值在整体样本中的分布占比,以及缺失值是否具有显著的无规律分布特征,即第一部分介绍到缺失值分析。然后考虑使用的模型中是否满足缺失值的自动处理,最后决定采用那种缺失值处理方法,即接下来介绍到缺失值处理。
缺失值处理⽅法的选择,主要依据是业务逻辑和缺失值占比,在对预测结果的影响尽可能小的情况下,对缺失值进行处理以满足算法需求,所以要理解每个缺失值处理方法带来的影响,下⾯的缺失值处理⽅法没有特殊说明均是对特征(列,变量)的处理。
2.1. 丢弃
占⽐较多,如80%以上时,删除缺失值所在的列如果某些行缺失值占比较多,或者缺失值所在字段是苛刻的必须有值的,删除行。
2.2. 补全
占比一般,30%-80%时,将缺失值作为单独的⼀个分类如果特征是连续的,则其他已有值分箱如果特征是分类的,考虑其他分类是否需要重分箱
2.3. 等深分箱法(统一权重法)
将数据集按记录(行数)分箱,每箱具有相同的记录数(元素个数)。每箱记录数称为箱子深度(权重)。
- 等宽分箱法(统一区间法): 使数据集在整个属性值的区间上平均分布,即每个箱的区间范围(箱子宽度)是一个常量。
- 用户自定义区间:当用户明确希望观察某些区间范围内的数据时,可根据需要自定义区间。
2.4. 模型法
占⽐比少,10%-30%时,一般使用模型法,基于已有的其他字段,将缺失字段作为目标变量进行预测,从而得到最为可能的不全值。连续型变量用回归模型补全;分类变量用分类模型补全。如进行多重插补、KNN算法填充、随机森林填补法,我们认为若干特征之间有相关性的,可以相互预测缺失值。
2.4. 真值转化法
认为缺失值本身以一种数据分布规律存在。将变量的实际值和缺失值都作为输入维度参与后续数据处理和模型计算中。
2.5. 不处理
对于一些模型对缺失值有容忍度或灵活处理方法,可不处理缺失值。如KNN、决策树、随机森林、神经网络、朴素贝叶斯、DBSCAN等。