2、缺失值处理

本文探讨了处理数据集中缺失值的三种策略:删除列、插补平均值和插补扩展。通过实例分析,展示在机器学习任务中,插补方法通常优于删除列,而插补的扩展在某些情况下可能并不总是提高模型性能。
摘要由CSDN通过智能技术生成

缺失值会发生。请准备好应对实际数据集中的这个常见挑战。

在本教程中,你将学习三种处理缺失值的方法。然后,你将比较这些方法在一个真实世界数据集上的效果。

本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2
提取码:uDzP

1、简介

数据可能因多种原因而存在缺失值。例如:

  • 一个有2个卧室的房屋将不包含第三个卧室的大小数值。
  • 一位调查受访者可能选择不透露他的收入。

大多数机器学习库(包括scikit-learn)在尝试使用带有缺失值的数据构建模型时会报错。因此,你需要选择以下其中一种策略。

2、三种方法

1)一个简单的选项: 删除缺少值的列

最简单的选项是删除缺少值的列。
在这里插入图片描述

除非删除的列中的大多数值都丢失了,否则模型将无法访问许多(可能很有用!)用这种方法获取信息。作为一个极端的例子,考虑一个有10,000行的数据集,其中一个重要的列缺少一个条目。这种方法将完全删除该列!

2)更好的选择: Imputation插补

插补是用一些数字填充缺失的值。例如,我们可以沿着每一列填写平均值。
在这里插入图片描述

估算值在大多数情况下不会完全正确,但它通常会导致比完全删除列所得到的模型更准确。

3)插补的扩展

在列后添加一列记录是否缺失值。插补法是标准的方法,通常效果很好。但是,输入值可能系统地高于或低于其实际值(数据集中未收集)。

或者缺少值的行在其他方面可能是唯一的。在这种情况下,通过考虑最初缺少的值,您的模型可以做出更好的预测。

在这种方法中,我们像以前一样输入缺失的值。另外,对于原始数据集中缺少条目的每一列,我们添加一个新列,显示输入条目的位置。

在某些情况下,这将有意义地改善结果。在其他情况下,这根本没有帮助。

在这里插入图片描述

在这种方法中,我们像前面一样估算缺失的值。此外,对于原始数据集中缺少项的每个列,我们添加一个新列,显示估算项的位置。

在某些情况下,这将有很好的改善结果,而在另一些情况下,这根本没有帮助。

3、举例

在本例中,我们将使用墨尔本住房数据集。我们的模型将使用房间数量和土地面积等信息来预测房价。

我们将不关注数据加载步骤。相反,您可以想象您已经拥有了 X _ train、 X _ valid、 y _ train 和 y _ valid中的训练和验证数据。

In [1]:

import pandas as pd
from sklearn.model_selection import train_test_split

#加载数据
data = pd.read_csv('../input/melbourne-housing-snapshot/melb_data.csv')

#选择目标
y = data.Price

#使用数字预测器
melb_predictors = data.drop(['Price'], axis=1)
X = melb_predictors.select_dtypes(exclude=['object']
  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

AI算法蒋同学

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值