缺失数据难题:探索和插补技术17 Mar 2025 | 6 分钟阅读 缺失数据在统计分析和机器学习中是最常见且不可避免的问题。它们会影响数据质量。这可能是由多种原因造成的,例如推荐系统中用户未响应问题、治疗中的患者死亡或不依从等。 在本教程中,我们将讨论缺失数据的重要性,并找出缺失数据的原因。 缺失数据机制在当今时代,数据被视为燃料,意味着数据是最强大的东西。它可以以多种方式使用。但是不完整的数据会导致问题。因此,首先我们需要理解数据的重要性,更重要的是,我们需要全面识别缺失数据发生的根本原因。数据收集过程在识别数据收集错误方面也起着重要作用。 缺失数据机制可分为三个主要类别。这些类别基于缺失数据和观测数据的性质。这些机制如下所示。 完全随机缺失 (MCAR) 缺失数据的性质与观测数据有关,但与缺失数据无关。例如——孩子们因为父母搬到另一个城市而缺课,因此孩子们不得不退学。 随机缺失 (MAR) 缺失数据的性质与观测数据有关,但与缺失数据无关。例如——孩子们因为父母搬到另一个城市而缺课,因此孩子们不得不退学。 非随机缺失 (MNAR) 它也被称为不可忽略,因为缺失机制不能被忽略。只有在既不是 MCAR 也不是 MAR 的情况下才会发生。变量上的缺失值与观测变量和未观测变量都有关。例如——父母因恶劣的氛围而拒绝将孩子送到学习中心,他们不希望自己的孩子被欺凌。MNAR 数据的问题本质上与可识别性问题相关。 理解数据收集过程和实质性的科学知识有助于假设数据机制。统计检验也有助于理解缺失数据机制的类型。 有许多模块可以有效地处理缺失数据,但 **fancyimpute** 模块非常有用且流行。 Fancyimpute 模块缺失数据在创建预测模型中起着重要作用;算法在处理缺失数据集时性能不佳。 Fancyimpute 是一个用于缺失数据填补算法的机器学习库。它使用机器学习算法来填补缺失值。Fancyimpute 使用整个列来填补缺失值。它提供了两种填补缺失数据的方法:
K-近邻KNN 在所有特征中找出相似的数据点并填补缺失值。让我们通过以下示例来理解。 示例 - 输出 A B C D 0 NaN 1.0 NaN 0 1 2.0 7.0 NaN 1 2 NaN NaN NaN 5 3 NaN 8.0 NaN 4 4 9.0 7.0 8.0 2 5 2.0 5.0 7.0 9 Imputing row 1/6 with 2 missing, elapsed time: 0.001 [[4.80735271 1. 7.70802941 0. ] [2. 7. 7.57627146 1. ] [5.29411783 7.49760549 7.64000033 5. ] [6.2499999 8. 7.87179494 4. ] [9. 7. 8. 2. ] [2. 5. 7. 9. ]] 链式方程多重填补在此方法中,mice 使用多个填补而不是单一填补。它对样本数据执行多次回归并取它们的平均值。让我们通过以下示例来理解。 示例 - 输出 A B C D 0 NaN 15.0 1.0 NaN 1 23.0 40.0 NaN 1.0 2 NaN NaN NaN 5.0 3 NaN 3.0 NaN 4.0 4 15.0 70.0 28.0 29.0 5 20.0 35.0 57.0 91.0 [[ 32.13508529 15. 1. -76.25883183] [ 23. 40. 23.80426163 1. ] [ 24.47759791 32.58430591 26.67745156 5. ] [ 31.14858991 3. 32.06817994 4. ] [ 15. 70. 28. 29. ] [ 20. 35. 57. 91. ]] 处理缺失数据在文献、教科书和标准课程中有许多可用于处理缺失数据的方法。我们已经讨论了一种重要的方法,即 **fancyimputer**。然而,这些方法都存在一些缺点。在使用数据挖掘过程时,需要小心避免偏差或高估变异性;这些方法性能不佳。 ![]() 案例删除有两种类型的案例删除方法。第一种是列表删除(也称为完整案例分析),第二种方法是配对删除。案例删除方法用于根据分析情况从数据集中删除缺失的案例。 让我们使用 pandas DataFrame 创建一个包含一些缺失值的人工数据集。 示例 - 1 输出 Name Age Sex Goals Assists Value 0 John 21.0 M 5.0 7.0 55.0 1 Paul 23.0 NaN 10.0 4.0 84.0 2 NaN NaN NaN NaN NaN NaN 3 Wale 19.0 M 19.0 9.0 90.0 4 Mary 25.0 F 5.0 7.0 63.0 5 Carli NaN F 0.0 6.0 15.0 6 Steve 15.0 M 7.0 4.0 46.0 在上面的代码中,我们创建了一个包含缺失值的新数据集。我们可以使用 df.dropna() 方法删除缺失值,该方法会删除所有缺失值。下面看输出。 示例 - 2 输出 Name Age Sex Goals Assists Value 0 John 21.0 M 5.0 7.0 55.0 3 Wale 19.0 M 19.0 9.0 90.0 4 Mary 25.0 F 5.0 7.0 63.0 6 Steve 15.0 M 7.0 4.0 46.0 我们还可以使用 **df.dropna(how = 'all')**,它只删除包含缺失值的行。我们还可以使用 **df.dropna(axis = 1, how = 'all')** 来指定删除包含缺失值的列。让我们通过以下示例来理解。 示例 - 2 输出 Name Age Sex Goals Assists Value 0 John 21.0 M 5.0 7.0 55.0 1 Paul 23.0 NaN 10.0 4.0 84.0 3 Wale 19.0 M 19.0 9.0 90.0 4 Mary 25.0 F 5.0 7.0 63.0 5 Carli NaN F 0.0 6.0 15.0 6 Steve 15.0 M 7.0 4.0 46.0 示例 - 3 输出 Name Age Sex Goals Assists Value 0 John 21.0 M 5.0 7.0 55.0 1 Paul 23.0 NaN 10.0 4.0 84.0 2 NaN NaN NaN NaN NaN NaN 3 Wale 19.0 M 19.0 9.0 90.0 4 Mary 25.0 F 5.0 7.0 63.0 5 Carli NaN F 0.0 6.0 15.0 6 Steve 15.0 M 7.0 4.0 46.0 结论在本教程中,我们讨论了缺失数据在数据科学项目中的重要性。它回顾了用于处理缺失数据的探索技术和重要的填补方法。我们还描述了处理缺失值的方法。一个广泛使用的模型假设所有缺失值的联合分布,并估计描述观测数据的模型参数。 |
TIFF 文件格式用于存储光栅化图像。一个名为 GDAL 地理空间数据抽象库的库专门用于读取这些光栅文件,以及其他文件格式,例如矢量格式。gdal 库是……的一部分
阅读 2 分钟
键盘记录器是一种监控软件,用于记录用户使用键盘的按键。它们通常用于监控网络利用率以及排除技术错误。相反,许多恶意软件利用键盘记录器试图...
阅读 12 分钟
我们可以利用统计包的强大功能来计算任何与统计相关的任务。其中一个函数是 variance()。我们可以借助此方法计算数据样本的方差(样本是总体数据的一小部分)。在计算时可以使用 variance() 函数...
5 分钟阅读
与其他编程语言一样,Python 模运算符执行相同的工作来查找给定数字的模数。该运算符是一个数学符号,用于对给定两个数字执行不同的操作,例如(+、-、* /)加法、减法、乘法和除法...
14 分钟阅读
梯度下降使用迭代算法来寻找模型的最优参数。其主要目标是通过找到函数参数的值来最小化给定函数。这些被称为最优参数。我们可以对一个函数使用梯度下降...
阅读9分钟
在接下来的教程中,我们将了解 Python 编程语言中的 Web2py 框架。了解 Web2py 框架 Web2py 是一个易于使用的框架,不需要任何安装和配置。该框架是可移植的,也可以在 U 盘上执行。它是...
阅读 3 分钟
在接下来的教程中,我们将借助示例来理解 Python 编程语言中的 reprlib 模块。让我们开始吧。理解 Python 中的 reprlib 模块 Python reprlib 模块提供了一种方法,用于生成限制了结果大小的对象表示...
阅读 3 分钟
| 魔术命令 当 Python 于 1991 年推出时,普遍认为 Python 是“自担风险”的语言。但情况已经改变;Python 目前是一种主导语言,它用于数据科学、机器学习和软件开发。我们知道...
阅读 6 分钟
本教程将教我们如何将元组连接成嵌套元组。有时,我们需要将单个记录转换为嵌套集合,但它们仍作为单独的元素存在。换句话说,我们将添加元组并展平结果容器;它通常是...
阅读 3 分钟
在本教程中,我们将学习 Python 中的协程。我们将详细讨论协程、子例程、协程的执行和协程的关闭。在我们开始学习协程之前,我们必须对 Python 中的子例程有基本的了解。所以,...
7 分钟阅读
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India