不要刻薄——我缺少数据
2022/9/13 6:53:19
本文主要是介绍不要刻薄——我缺少数据,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
不要刻薄——我缺少数据
您可能像听到您的全名一样经常听到“丢失数据”这个词,对于某些人来说,“丢失数据”这个词会产生与他们的伴侣使用他们的全名时同等程度的恐惧。有些人可能认为他们可以轻松摆脱这种焦虑的局面,但事情总是那么简单吗?
当您第一次获得数据集时,回到基础总是一个好主意。您的数据是否缺少数据?这是什么意思?您是否需要担心丢失的数据?您可以删除它还是应该尝试填充它?应该使用什么方法来填补空白,您怎么知道是否可以删除它们?
当您第一次收到数据时,这些都是您应该想到的问题。
为什么丢失数据背后的原因很重要
在数据清洗过程中,一些技术可以帮助我们决定如何处理数据集中最常见的场景。然而,在我们进入这些技术之前,让我们回顾一下关于数据清理问题的一些观察到的问题。
为什么我们关心数据丢失的原因?
即使在当今拥有大量数据的情况下,缺失的数据也可能导致分析部分得出错误的结论或导致模型的准确性较低。当在用于决策的重要列中识别出缺失数据时,这一点尤其重要。
即使经过考虑后决定不对丢失的数据采取任何行动,了解丢失数据的数量及其可能导致的潜在漏洞也很重要。分析缺失数据的结果可用于提醒可能使用该数据集的其他人或更好地了解某些记录中的空白导致的结果。
我们为什么要花时间弄清楚是否有丢失的数据?
弄清楚缺失值如何在数据中分布会产生许多后果,可以分为三个主要领域:
- 时间 :
根据丢失的数据,清理过程可以非常简单甚至消除。因此,找出信息丢失的原因可以深入了解处理数据集需要多长时间以及可用的选项。 - 质量 :
了解数据中的差距并衡量来源质量差的影响可以让我们深入了解数据。然后可以使用这些见解来确定行动。一旦对样本进行了分析和映射,所有利益相关者就可以清楚地知道哪些错误是可能的。 - 行动 :
在确定数据集中缺失值的模式后,您可以通过可靠的技术和替代方案找到一条清晰的前进道路。因此,在此发现之后采取的任何行动都将导致更好的解决方案。
用于观察数据集的时间将有助于提高数据质量和更好的决策。
我们不能总是用平均值填充缺失的值吗?
在仅缺少少量观测值的情况下,可以选择用平均值填补空白,但是,根据幅度,这可能会导致数据变化的丢失。
事实是,几个步骤可以提供更好的方法和对如何进行的理解。正确的方法可能比用平均值或中位数填补空白更容易。
缺失数据的类别
既然我们已经更好地理解了为什么数据可能会丢失以及为什么知道它很重要,我们可以看看为什么数据可能会丢失的三个类别:
- 完全随机缺失 (MCAR)
- 随机失踪(MAR)
- 非随机缺失 (MNAR)
这个 关联 很好地解释了丢失的数据。
缺失数据类型的快速总结是:
- “完全随机缺失”是指所有观察中的数据都缺失。由于外部因素导致数据丢失,并且与观察值无关。
示例数据库中的一些数据包含有关猫的信息,我们将使用这些信息来演示如何处理丢失的数据,但由于外部因素(例如秤的电池没电和没有给猫称重)而存在空白。秤的电池电量耗尽不是数据集中观察到的变量之一。 - “随机缺失”是指部分缺失变量的数据与分析模型中其他一些完全观察到的变量相关,但与部分缺失变量本身的值无关。
如果猫生病了,无法参加兽医的预约,那么当天的体重测量值就会丢失。失踪与猫生病有关。生病的猫是数据集中的一个观察变量。 - Missing Not at Random”是由于明显原因而丢失数据的地方。缺失与缺失的内容特别相关。
猫的体重没有填写在问卷上,因为主人对他超重的猫太害羞了。
丢失数据的一些原因包括意外删除数据、由于人为错误而未收集的数据或不存在的数据。
我们需要知道数据是 MAR、MCAR 还是 MNAR 的原因是要知道如何删除或填充数据。
可视化缺失数据
查找和识别缺失数据的一种非常好的和简单的方法是可视化数据集。通过可视化数据,您可以很好地了解数据中发生的情况。用于了解如何可视化丢失数据的一个很好的链接是 这里 .
以下是上面链接中介绍的一些非常有用的可视化:
- 可视化数据的完整性。
具有填充值的记录标记为灰色。每个条上方的数字还表示具有值的记录数。
这里可以看到体重和年龄列有很多缺失的记录。
通过查看顶部的数字,您可以看到 Hair Type 列有一些缺失值的记录。
- 可视化缺失值的位置
白线显示缺失值的位置。
头发类型列的缺失值非常少,并且缺失值与任何其他列的缺失值都不相关。这表明“头发类型”列中的缺失值是完全随机缺失 (MCAR),因为缺失数据与另一个(缺失)值不相关。
体重和年龄列都有很多缺失值。我们无法直接观察到该图缺失的原因。
- 对缺失列之一的数据进行排序并可视化缺失数据
我们现在已经对权重列上的数据集进行了排序。
这里我们可以看到,Weight 的缺失和 Age 之间没有关系。并非 Age 列中的所有缺失值都在 Weight 列中缺失。
因此,体重和年龄的数据完全随机缺失。
- 如果数据是 MAR,则图表可能如下所示:
在这里,您可以看到 Weight 中的缺失值和 Age 列中的缺失值是相关的。对于 MAR 数据,部分缺失的列与完全观察到的变量有关。体重和年龄可能都与一些完全观察到的变量有关。必须进行更多测试以确定丢失数据的原因,但这很好地表明您应该仔细查看丢失的数据。
- MCAR 与 MAR 的非视觉测试
很难 100% 肯定地说出丢失数据的原因。因此,最好通过额外的测试来可视化和丰富您的假设,例如 小测验 .这些测试确定变量是否相互关联。如果变量彼此不相关,则间隙为 MCAR,否则为 MAR。此测试可以帮助您确定数据是 MAR 还是 MCAR。
- 可视化 MNAR:
可视化 MNAR 数据非常困难。最好了解您正在调查的数据的领域知识,以确定数据是否为 MNAR。
您需要专门查看具有缺失值的行。
假设你有关于猫的数据:
名为 num_grey_hairs 的列有缺失值
如果您查看 num_grey_hairs 列并绘制性别值,我们会得到以下信息:
只有雄性猫在 num_grey_hairs 列中有缺失值。
缺少白发数量的平均年龄为 16.5 岁。
所有男性的平均年龄为 10 岁。
公猫的白毛数量从 0 到 13 不等。
母猫的白毛数量从 0 到 30 不等。
当您查看这些细节时,您会发现年长的雄性猫并没有填写它们的白发数量,因为年长的猫会有更多的白发,而且并不是只有雌性猫的白发更多,因为它们变老。
如果你使用雄性猫的平均白发来填补空白,那么它将无法正确填充,模型也会不准确。因此,需要使用更高级的方法来填补空白,否则您将不得不回到猫的主人那里以获得正确的数据,但通常无法获得实际值来填补空白。
为什么必须知道数据丢失
提供准确并提供可靠结果的数据是关注数据流中每个步骤的一个组成部分。因此,了解数据集中的差距可能很重要,具体取决于团队中处理数据的人员的角色。采取的方法考虑了开发人员、数据分析师和数据科学家的需求;但是必须考虑所有原因的总和,并将其归因于数据团队中的各种角色。不同团队成员的需求简述如下:
开发商
在开发应用程序的过程中,您需要了解是否存在可能导致执行错误的数据,以避免代码出现故障。一些用例有需要填写的关键列,如果这些值留空,则会导致失败。
数据分析师
在数据分析中,了解数据集的细节非常重要。如果您了解数据的第一件事是找出数据集是否不完整,那么分析可以从一开始就采取一定的方向。从检测到缺失数据的那一刻起,它就可以提供新的见解。例如,如果某些类别的调查数据缺失,您可以假设存在技术困难或用户需要填写该字段,但由于某种原因没有填写。通过这种方式,甚至在深入分析完成之前,就可以为相关团队提供分析见解。
数据科学家
模型的可靠性在很大程度上依赖于模型的完整关键信息。使用包含大量空字段的数据集可能会使模型无效,因为它还没有在可靠的集合上成熟。
当发现空字段时,数据科学家可以采取措施提高最终模型的准确性。例如,这是一个对 Kaggle 中使用的数据集产生更好结果的过程 泰坦尼克号 案子。
要将数据集用于上述所有任务,重要的是采取以下步骤来确保可靠的数据源:
- 校正偏差值和异常值。
- 填写缺失的信息。
- 为分析创建新特征。
- 将字段转换为正确的计算和演示格式。
假设您在使用数据集时考虑了这四个步骤。在这种情况下,该数据库上的代码执行、分析以及从数据或创建的模型中获得的洞察力将更加可靠,并在数据清理过程中产生多种洞察力。
结论
没有必要花几天时间查看数据中的差距。对您的数据进行快速调查可以显示是否存在缺失数据。如果存在差距,那么只需多花一点时间研究这些差距以确定丢失数据的原因将帮助您了解应该使用什么方法来填补这些差距。了解数据丢失的原因后,您可以找到下一步应该采取的路径,以使您的数据集准备好使用数据。
如本文所述,正确识别缺失数据的类别并以适当的方式对其进行处理,可以提高数据模型的准确性。因此,在盲目插入平均值或中位数之前,花(很少)时间来识别缺失数据的类别非常重要。下一篇文章将详细介绍如何填补或消除这些空白。
作者
弗朗西丝·德雷尔 & 安德烈·马克斯·莱特
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明
本文链接:https://www.qanswer.top/32250/05311301
这篇关于不要刻薄——我缺少数据的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-01后台管理开发学习:新手入门指南
- 2024-11-01后台管理系统开发学习:新手入门教程
- 2024-11-01后台开发学习:从入门到实践的简单教程
- 2024-11-01后台综合解决方案学习:从入门到初级实战教程
- 2024-11-01接口模块封装学习入门教程
- 2024-11-01请求动作封装学习:新手入门教程
- 2024-11-01登录鉴权入门:新手必读指南
- 2024-11-01动态面包屑入门:轻松掌握导航设计技巧
- 2024-11-01动态权限入门:新手必读指南
- 2024-11-01动态主题处理入门:新手必读指南