问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

3000字详解四种常用的缺失值处理方法

创作时间:
作者:
@小白创作中心

3000字详解四种常用的缺失值处理方法

引用
CSDN
1.
https://blog.csdn.net/2501_90256916/article/details/145180787

在数据处理中,缺失值是一个常见的问题。如何处理这些缺失值,直接影响到后续的数据分析和建模效果。本文将详细介绍四种常用的缺失值处理方法,包括删除、填充等策略,并通过代码示例展示具体操作。

对于缺失值的处理大致可分为以下三方面:

  • 不处理
  • 删除含有缺失值的样本
  • 填充缺失值

不处理应该是效果最差的了,删除虽然可以有效处理缺失值,但是会损伤数据集,好不容易统计的数据因为一个特征的缺失说删就删实在说不过去。填充缺失值应该是最常用且有效的处理方式了,下面介绍四种处理缺失值的常用Tips。

作者自己构建了一个简易的含有缺失值的DataFrame,所有操作都基于这个数据集进行。

1. 删除缺失值

删除虽说是一个可行的方式,但肯定是不能随便删除的,比如一个样本中仅有一个特征的值缺失,这样的情况下填充取得的效果一定会优于删除,所以在删除缺失值时,我们需要一个衡量的标准。

删除的方式无非有两种,一是删除缺失值所在行,也就是含有缺失值的样本;二就是删除缺失值所在列,也就是含有缺失值的特征,下面以后者为例。

首先需要确定的是删除的标准是什么?比如一个特征的缺失值所占比例已经超过了50%,如果选择填充的话,就表明该特征超五成的值都是自己猜测填入的,导致误差可能比删除这个特征还要大。

def find_missing(data):

(注:原文代码未完整展示,实际生产时应补充完整代码)

2. 填充缺失值

填充缺失值是一种更常用且有效的方法。常见的填充方式有以下几种:

  • 使用统计量填充(如均值、中位数、众数)
  • 使用预测模型填充
  • 使用特定值填充(如0、-1等)

使用统计量填充

这种方法适用于数值型特征。例如,可以使用均值、中位数或众数来填充缺失值。

data.fillna(data.mean(), inplace=True)

使用预测模型填充

这种方法更复杂,但效果通常也更好。可以使用其他特征来预测缺失值。例如,可以使用回归模型来预测数值型特征的缺失值,使用分类模型来预测类别型特征的缺失值。

使用特定值填充

这种方法适用于任何类型的特征。例如,可以使用0、-1等特定值来填充缺失值。但是,这种方法可能会引入偏差,因此需要谨慎使用。

3. 使用插值法填充

插值法是一种基于已有数据点来估计缺失值的方法。常见的插值方法有线性插值、多项式插值等。

data.interpolate(method='linear', inplace=True)

4. 使用KNN填充

K近邻(KNN)方法可以用来填充缺失值。基本思想是找到与缺失值最相似的K个样本,然后用这K个样本的平均值来填充缺失值。

from sklearn.impute import KNNImputer

imputer = KNNImputer(n_neighbors=5)
data_imputed = pd.DataFrame(imputer.fit_transform(data), columns=data.columns)

总结

处理缺失值是数据预处理中的一个重要环节。不同的方法适用于不同的场景,需要根据具体的数据和业务需求来选择合适的方法。在实际应用中,往往需要尝试多种方法,以找到最佳的解决方案。

本文介绍了四种常用的缺失值处理方法,包括删除、填充、插值和KNN填充。每种方法都有其优缺点,需要根据具体情况进行选择。希望本文能帮助读者更好地理解和处理数据中的缺失值问题。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号