处理多数类的缺失数据

数据挖掘 分类 数据集 阶级失衡 缺失数据
2022-02-21 01:17:35

我正在使用不平衡 (10:1) 数据集进行分类。我在某些列上也有一堆缺失的数据。如果我把它们都扔掉,我仍然有 5:1 的比例,所以我想我能负担得起扔掉它们吗?

我应该如何处理我的多数类行?

  • 预测/填充缺失值并将它们全部用于欠采样。
  • 由于数据集已经不平衡,因此丢弃具有缺失值的行。使用剩余的行进行欠采样。

很抱歉这个菜鸟问题,初级DS在这里。

2个回答

我非常不愿意丢弃数据,因为您可能永远不知道它们如何真正影响整个数据集。如果它们只占数据集的一小部分(可能是 5%?),我只会丢弃它们。

对于您的情况,它减少了大部分数据集的一半,即 ALOT。我建议您尝试查找与其他列的相关性并找到平均值。

有很多关于处理缺失数据和不平衡类值的书籍和在线资源。

如果不了解并熟悉数据及其上下文(顺便说一句,这是您的工作),就不可能给出标准答案。做出此类选择时需要考虑许多因素。但删除数据应该是最后的手段。

我的建议是阅读!

处理缺失值的一个很好的介绍是数据挖掘和预测分析,第 2 版的第 2 章

例如,可以使用引导重采样来处理类不平衡。同样,这取决于您的数据和最终目标。对于使用集成方法的分类,自举重采样可能非常有效。但是您需要考虑成本敏感性。

以下是有关该主题的一些课程笔记的摘录:

在这些数据集上构建有用的分类器可能具有挑战性,因为诸如传统决策树之类的分类器可能会简单地表明所有记录都是非癌症患者并达到 99% 的分类准确率。但是,这些树不会有用,因为它们总是会错误地分类癌症患者,而正确分类通常更重要。这些树也无法揭示有关癌症患者和欺诈客户的有用信息。

在成本敏感的数据集中,错误分类成本(即错误分类的后果)因类别值而异。例如,将癌症患者错误分类为非癌症的成本/后果可能显着高于将非癌症患者错误分类为癌症的成本/后果。在后一种情况下,非癌症患者可能需要进行一些医学检查,这会浪费患者和临床医生的一些时间。然而,在前一种情况下,癌症患者可能会一直未被发现,直到为时已晚,并且由于错误分类或错误诊断而面临严重后果。

成本敏感的分类算法应该旨在减少对成本高的类别值(例如癌症患者)的错误分类,即使这会增加对非成本类别值(例如非癌症患者)的错误分类,以降低总体错误分类成本. 传统的分类算法(例如决策森林算法)可能无法将这种成本敏感性考虑在内,并且无法容忍对非成本类值的一些错误分类,以减少对高成本类值的错误分类。需要修改常规分类算法以处理数据集的类别不平衡和成本敏感性问题。

如果成本敏感性是相关的,那么具有 CS 能力的分类器是必要的。