数据预处理:缺失值处理




1、缺失值处理概述


由于各种原因,现实世界的许多数据集包含缺失值,通常将其编码为空白,NaN或其他占位符。但是,此类数据集与Scikit-Learn估计器不兼容,后者假定数组中的所有值都是具有含义的数字

使用不完整数据集的基本策略是舍弃包含缺失值的整行或整列。但是,这是以丢失可能有价值的数据为代价的(即使数据不完整)。更好的策略是估算缺失值,即从数据的已知部分推断出缺失值

缺失值的处理是数据预处理中非常重要的一步,因为很多机器学习算法都假设数据是完整的,算法的执行过程中没有考虑缺失值的影响。所以,为了提高数据质量、改进数据分析结果、提高数据挖掘和机器学习的效果,缺失值处理必不可少

对于包含缺失值的数据,有两种处理思路:

  • 删除包含缺失值的行或列:会导致特征和样本数据丢失,如果数据丢失过多,可能会改变数据的分布,影响模型的准确性
  • 填充缺失值:实际情况下,使用最多的还是填充缺失值

Scikit-Learn缺失值填充中文文档:https://scikit-learn.org.cn/view/124.html

下面主要介绍一些常用的缺失值填充处理方式

2、缺失值填充方式


1)单变量填充

Scikit-Learn中的SimpleImputer类提供了填充缺失值的基本策略。可以使用提供的常量或使用缺失值所在列的统计量(平均值、中位数或众数)来估算填充缺失值。此类还支持不同的缺失值编码

from sklearn.impute import SimpleImputer

# 均值(mean)、中位数(median)、众数(most_frequent)和常量(constant)填充
# 下面以均值填充为例
data = np.array([[1, 2, 3], [4, np.NaN, 6], [7, 8, np.NaN]])
print
  • 26
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值