我们什么时候说数据集不可分类?

数据挖掘 机器学习 分类 深度学习 阶级失衡 贝叶斯错误
2021-09-20 05:38:16

我已经多次分析了一个我无法真正进行任何分类的数据集。要查看是否可以获得分类器,我通常使用以下步骤:

  1. 根据数值生成标签的箱线图。
  2. 将维度降低到 2 或 3 以查看类是否可分离,有时也尝试使用 LDA。
  3. 强制尝试拟合 SVM 和随机森林,并查看特征重要性,看看这些特征是否有意义。
  4. 尝试改变类和技术的平衡,如欠采样和过采样,以检查类不平衡是否可能是一个问题。

还有很多其他的方法我能想到,但没有尝试过。有时我知道这些特征并不好,并且与我们试图预测的标签完全无关。然后我使用这种商业直觉来结束练习,得出的结论是我们需要更好的功能或完全不同的标签。

我的问题是数据科学家如何报告无法使用这些功能进行分类。是否有任何统计方法来报告这一点或首先在不同的算法中拟合数据并查看验证指标是最佳选择?

2个回答

从一个类中获取样本元素,从另一类中获取样本元素。这两个元素是否有可能具有完全相同的特征向量?如果这可能发生,那么这两个类不能使用您当前的特征向量完全分离(因为分类决策完全基于给定元素的特征向量)。

另一方面,如果一个类中的 *every" 元素在另一个类中具有对应的元素,使得这两个元素具有相同的特征向量,则使用当前特征向量无法区分这两个类。

此外,如果该条件仅适用于您的某些元素而不适用于其他元素,那么您介于两者之间,您可以以此为基础来衡量您希望分类器使用当前功能集执行的效果如何。

所有这些评估都可用于在不同程度上争论您需要提取更多特征。

这取决于您的数据。有一种叫做人为错误的东西。假设像阅读印刷书籍这样的任务,人类不会费力地阅读,除非因为印刷质量差,否则它可能不会发生错误。在阅读手写手稿等情况下,如果作者的字体对读者来说很奇怪,可能会发生很多不理解所有单词的情况。在第一种情况下,人为错误太低,学习算法可以具有相同的性能,但第二个示例说明了这样一个事实,即在某些情况下,人为错误非常高并且以通常的方式(如果您使用相同的作为人类的特征)你的学习算法会有很大的错误率。

在统计学习中,有一个东西叫做Bayes Error,每当类的分布重叠时,错误率就很大。在不改变特征的情况下,当前分布的贝叶斯误差是最好的性能,根本无法降低。

我还建议你在这里阅读。具有指定特征的大量贝叶斯错误的问题在这些特征的空间中被认为是不可分类的。作为另一个示例,您可以假设您想对开着灯的汽车进行分类。如果您在早上尝试这样做,您自己可能会遇到很多错误,如果您使用相同的图像来训练学习算法,那也可能会有。

另外,我建议您不要更改课程的分布。在这种情况下,边界附近的分类器结果将是完全随机的。用于训练您的机器学习算法的数据分布不应更改,而应与实际情况保持一致。