数据缺失是指在数据采集、传输和处理的过程中,由于某些原因导致数据不完整的情况。
缺失值的存在会给数据的统计带来问题,某些数据分析模型也不能直接处理存在缺失值的数据集,因此,如果要对该数据进行进一步统计和分析,首先需要对确实值进行处理。
处理缺失值的方法可以分为两类:
第一类方法是 删除 带有缺失值的样本或特征;
第二类方法是采用某种方法对缺失值进行 填补 ,如均值填补、随机填补和基于模型的填补。
删除法
删除法通过删除包含缺失值的数据,来得到一个完整的数据子集。数据的删除既可以从样本的角度进行,也可以从特征的角度进行:
- 删除样本
删除存在数据确实的样本,该方法适合某些样本有多个特征存在缺失值,且存在缺失值的样本占整个数据集样本数量比例不高的情形。当缺失值样本所占比例较大,删除样本会导致信息丢失。 - 删除特征
当某个特征缺失值较多,且该特征对数据分析的目标影响不大时,可以将该特征删除。
删除法 简单且易操作 ,但是也有其局限性,它以减少数据来换取信息的完整,丢失了大量隐藏在这些被删除数据中的信息。通常来说,数据的采集成本较高且缺失值无法避免,删除法可能会造成大量的 资源浪费 。
均值填补
对于存在缺失值的某一个特征,均值填补法首先计算该特征中非缺失值的平均数或众数,然后使用平均数或众数来代替缺失值。对连续型特征,通常使用平均值进行填补;对离散型特征,则使用众数进行填补。
均值填补法会使得数据过分集中在平均值或众数上,导致特征的 方差被低估 。此外,由于完全忽略特征之间的相关性,均值填补法会大大弱化特征之间的 相关性 。
实际应用中,可以根据一定的辅助特征,将数据集 分组,然后在每一组数据上分别使用均值 填补 。
随机填补
随机填补是在均值填补的基础上加上随机项,通过增加缺失值的随机性来改善缺失值分布过于集中的缺陷。随机填补方法包括 贝叶斯Bootstrap 方法和 近似贝叶斯Bootstrap 方法。
假设数据集有n个样本,某特征 f 存在 k 个非缺失值和(n - k)个缺失值。
贝叶斯Bootstrap方法步骤:
- 从均匀分布U(0,1)U(0,1)U(0,1)中随机抽取k−1k - 1k−1个随机数,并进行升序排序记为a1a_1a1,a2a_2a2,…,ak−1a_{k-1}ak−1。
- 对(n−k)(n-k)(n−k)个缺失值,分别从非缺失值{f1,f2,…,fkf_1,f_2,…,f_kf1,f2,…,fk}中以 概率 {a1a_1a1,a2−a1a_2-a_1a2−a1,…,1−ak−11-a_{k-1}1−ak−1}采样一个值进行填补。
近似贝叶斯Bootstrap方法步骤:
- 从kkk个非缺失值{f1f_1f1,f2,f_2,f2,…,fk,f_k,fk}中有放回地抽取kkk个值 建立 一个新的大小为kkk的集合FFF。
- 对于(n−k)(n-k)(n−k)个缺失值,分别从FFF中随机 抽取一个值进行填补。
基于模型的填补
基于模型的方法将缺失特征fff作为预测目标,将数据集中其他特征或其子集作为输入特征,通过特征fff的非缺失值构造训练集,训练分类或者回归模型,然后使用构建的 模型来预测 特征fff的缺失值。
在实际使用基于模型的填补方法时,需要采用模型评估方法对模型的预测性能进行评估,如果构建的模型预测性能太差,则不适合使用该方法。
缺点:基于模型的填补方法将增大特征之间的相关性。
其他缺失值处理方法
缺失值处理的方法有很多,除了以上方法之外,还有 哑变量方法 和 EM算法 等。
哑变量方法:
对于离散型特征,如果存在缺失值,可以将缺失值作为一个单独的取值进行处理,如将缺失值替换为“unknown”。
EM算法:
利用不完整的信息实现概率模型的参数化估计的算法。该算法可以用来进行缺失值填补,此时缺失特征被当作隐含变量。
数据缺失值处理:策略与方法
893

被折叠的 条评论
为什么被折叠?



