2、缺失值处理

发布时间:2024年01月20日

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

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

本课程所需数据集夸克网盘下载链接: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
文章来源:https://blog.csdn.net/jiangxinufo00/article/details/135701159
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。