数据预处理中的缺失值补充策略:从删除到模型预测
创作时间:
作者:
@小白创作中心
数据预处理中的缺失值补充策略:从删除到模型预测
引用
CSDN
1.
https://blog.csdn.net/k316378085/article/details/146302255
在数据预处理阶段,处理缺失值是一个常见的挑战。不同的缺失值补充策略适用于不同的场景,选择合适的方法对于后续的数据分析和建模至关重要。本文将介绍四种常用的缺失值补充策略,并通过Python代码示例帮助读者更好地理解这些方法。
缺失值补充策略
策略 | 描述 | 适用场景 | 优点 | 缺点 |
|---|---|---|---|---|
删除含有缺失值的行或列 | 删除包含任何缺失值的行或列。 | 当缺失值比例较小且数据量较大时。 | 简单直接,不会引入新的误差。 | 可能导致数据丢失,特别是在缺失值较多的情况下。 |
用固定值填充 | 使用一个特定值(如0、均值、中位数等)来填充缺失值。 | 数据分布较为均匀,缺失值不是特别多时。 | 简单易行,适用于大多数情况。 | 如果选择的固定值不合适,可能会引入偏差。 |
用插值法填充 | 对于有序数据,使用插值法(如线性插值)来估计缺失值。 | 时间序列数据或其他有序数据。 | 能较好地保留数据的趋势和模式。 | 对于非有序数据效果不佳。 |
用模型预测填充 | 使用机器学习模型(如KNN、随机森林等)预测并填充缺失值。 | 复杂数据集,缺失值较多且有较强的相关性时。 | 能够更准确地填充缺失值,特别是当数据之间存在复杂关系时。 | 实现复杂,计算成本较高,需要更多的计算资源和时间。 |
示例代码与解释
删除含有缺失值的行或列
import pandas as pd
import numpy as np
# 创建一个示例数据集
data = {
'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, 4, 5],
'C': [1, np.nan, np.nan, 4, 5]
}
df = pd.DataFrame(data)
# 删除含有缺失值的行
df_dropped_rows = df.dropna()
print("删除含有缺失值的行后的数据:")
print(df_dropped_rows)
# 删除含有缺失值的列
df_dropped_columns = df.dropna(axis=1)
print("\n删除含有缺失值的列后的数据:")
print(df_dropped_columns)
用固定值填充
# 用均值填充缺失值
df_filled_mean = df.fillna(df.mean())
print("\n用均值填充缺失值后的数据:")
print(df_filled_mean)
# 用中位数填充缺失值
df_filled_median = df.fillna(df.median())
print("\n用中位数填充缺失值后的数据:")
print(df_filled_median)
# 用固定值(如0)填充缺失值
df_filled_zero = df.fillna(0)
print("\n用0填充缺失值后的数据:")
print(df_filled_zero)
用插值法填充
# 用线性插值法填充缺失值
df_interpolated = df.interpolate()
print("\n用线性插值法填充缺失值后的数据:")
print(df_interpolated)
用模型预测填充
from sklearn.impute import KNNImputer
# 使用KNN算法进行缺失值填充
imputer = KNNImputer(n_neighbors=2)
df_imputed = pd.DataFrame(imputer.fit_transform(df), columns=df.columns)
print("\n用KNN算法填充缺失值后的数据:")
print(df_imputed)
总结
通过上述表格和示例代码,您可以更好地理解不同的缺失值补充策略及其应用场景。每种方法都有其特定的优点和局限性,选择合适的方法取决于数据的具体特性和分析需求:
- 删除含有缺失值的行或列:适用于缺失值较少的情况,简单但可能导致数据丢失。
- 用固定值填充:适用于大多数情况,但需谨慎选择填充值以避免引入偏差。
- 用插值法填充:适用于有序数据,能较好地保留趋势。
- 用模型预测填充:适用于复杂数据集,但实现复杂且计算成本较高。
热门推荐
为什么“庆九不庆十”?一个传统习俗的现代解读
八十大寿庆宴指南:传统与现代的完美融合
80大寿送什么?四大类礼物让老人感受满满孝心
最新研究:三种健康生活方式可让80岁以上老人增寿六成
番茄工作法:25分钟专注+5分钟休息,科学提升工作效率
番茄工作法:25分钟专注+5分钟休息,提升效率的时间管理法
益气聪明丸:补气明目的传统中药,这8类人需慎用
医生建议:益气聪明丸宜早上服用
王者荣耀孙悟空出装攻略:暗影战斧+宗师之力,秒杀脆皮不是梦!
乳果糖长期使用需谨慎:副作用与正确使用指南
乳果糖长期使用有风险,这些安全用药指南请收好
虎鲸捕食大白鲨:海洋生态链的惊人变化
虎鲸捕食习性揭秘:渔业资源的新威胁?
个人养老金制度来了,你的钱包准备好了吗?
门冬胰岛素50注射液使用指南:注射时间与注意事项
时间管理不求人:创业者提升效率与平衡生活的实用指南
照明实验意外发现:员工心理需求是效率提升关键
80%员工想学AI技能,职场人如何在AI时代保持竞争力
备战双十一:4大策略提升团队协作效率
从入职到骨干:企业如何建立新员工长效培养机制
产品经理试用期攻略:20个实用建议助你快速融入
青春华章|樊振东谈如何克服困难:要有勇气和良好心态,突破自我更珍贵
紫微斗数:命宫化忌入财帛宫的含义与化解方法
磁州窑虎枕:威猛与柔美的完美结合
氮化镓晶体管:高频高功率应用新趋势引领者
心理学揭示:这四种心态助你扭转运势
九紫离火照射手:规矩中寻自由,把握四大运势
番茄工作法遇上艾森豪威尔矩阵:时间管理的黄金搭档
蜂蜜波美度:揭秘高质量蜂蜜的秘密武器
“睡门”来袭!医学专家教你高效入眠法