【问题标题】:Make use of available data and neglect missing data for building classifier利用可用数据并忽略缺失数据构建分类器
【发布时间】:2012-12-20 09:57:52
【问题描述】:

我正在使用 R 平台中的 randomForest 包来构建二进制分类器。大约有 30,000 行,其中 14,000 行在正类中,16,000 行在负类中。我有 15 个已知对分类很重要的变量。

我有一些额外的变量(大约 5 个)缺少信息。这些变量的值为 1 或 0。1 表示存在某物,而 0 表示不知道它是否存在。众所周知,如果有 1,这些变量将是分类最重要的变量(增加分类的可靠性,并且样本更有可能属于正类),但如果有 0,则无用。而且,只有 5% 的行的值为 1。因此,一个变量仅对 5% 的情况有用。这 5 个变量是相互独立的,所以我希望它们对我拥有的 15-25% 的数据非常有用。

有没有办法利用可用数据但忽略单个列中存在的缺失/未知数据?您的想法和建议将不胜感激。实现不必特定于随机森林和 R 平台。如果使用其他机器学习技术或其他平台可以做到这一点,那么它们也是最受欢迎的。 感谢您的时间。 问候

【问题讨论】:

  • 可能:) 你能provide example data吗?谢谢
  • 如果您只有存在和未知的选项,您可以做两件事:将“未知”视为有用的类别,表示某些内容,或将“未知”视为缺失数据。如果你做后者,这些变量将只包含一个非缺失值,因此在任何类型的分析中都是无用的。不要介意数据中的缺失会丢弃您现在拥有的大多数案例这一事实。所以你可以,但它甚至不太可能是一个好主意。
  • 感谢您的评论。在存在和未知的变量中,如果存在,我知道它将有助于预测属于某个类别。因此,如果为 1,则很可能属于正类,但如果为 0,则分类器应完全依赖于其他变量。

标签: r machine-learning missing-data random-forest


【解决方案1】:

我至少可以看到以下方法。就个人而言,我更喜欢第三种选择。

1) 丢弃多余的列

您可以选择丢弃这 5 个额外的列。显然这不是最优的,但最好知道这个选项的性能,并与以下内容进行比较。

2) 按原样使用数据

在这种情况下,这 5 个额外的列将保持原样。这5列中的每一列中的确定存在(1)或未知存在/不存在(0)用作信息。这与说“如果我不确定某物是否存在,我会将其视为不存在”是一样的。我知道这很明显,但如果您还没有尝试过,您应该将其与选项 1 进行比较。

3) 使用单独的分类器

如果这 5 列中大约 95% 的列都为零,并且它们大致相互独立,那么 0.95^5 = 77.38% 的数据(大约 23200 行)在所有这些列中都为零。您可以在这 23200 行上训练分类器,删除全为零的 5 列(因为这些列对于所有点都是相等的,所以它们的预测效用仍然为零)。然后,您可以为剩余的点训练一个单独的分类器,其中至少有一个列设置为 1。对于这些点,您可以保持数据不变。

然后,对于您的测试点,如果所有这些列都为零,则使用第一个分类器,否则使用第二个分类器。

其他提示

如果 15 个“正常”变量不是二进制的,请确保您使用的分类器可以处理具有不同规范化的变量。如果您不确定,请将 15 个“正常”变量归一化,使其位于区间 [0,1] 内——这样做您可能不会丢失任何东西。

【讨论】:

  • 谢谢 HerrKaputt。第一个选项是好的,这就是我现在所拥有的。但是,我想利用更多可用的数据。第二个选项有点误导。第三个选项是我正在考虑的一个好主意。我想在我的问题中再添加一件事。如果列中有 1,则该样本更有可能属于正类(这也是已知的)。这会引发什么新想法吗??
  • 然后尝试第二个和第三个选项。相对于第一个(基本上从数据中删除行/列),两者都应该涉及很少的额外工作。然后让我们知道您获得了哪些价值,我们将从那里开始工作。
  • 我已经尝试了第二个选项,虽然它不是那么令人信服。它并没有真正提高性能。我会尝试第三种选择并让你知道。顺便说一句,你看到我第一条评论的编辑版本了吗?
  • 我没看过,但我现在看到了。它使选项 3 看起来比我想象的更有趣。
【解决方案2】:

我想对 Herr Kapput 的进一步建议:如果您使用概率方法,您可以将“缺失”视为您有一定概率观察到的值,无论是全局还是在每个类别中(不确定这更有意义)。如果它丢失,它有发生概率 p(missing),如果它存在,它有概率 p(not missing) * p(val | not missing)。这使您可以优雅地处理值存在时具有任意范围的情况。

【讨论】:

  • 这听起来很有趣。谢谢你,本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-25
  • 1970-01-01
  • 2020-12-22
  • 1970-01-01
  • 2017-06-20
  • 2021-01-26
相关资源
最近更新 更多