对具有许多分类标签的数据使用的最佳策略是什么?

数据挖掘 机器学习 分类 算法 初学者 多类分类
2022-03-11 14:09:54

一般来说,我应该对具有以下特征的数据使用哪种监督算法和技术:

  • 2个潜在的分类标签?

  • 3-5个潜在的分类标签?

  • 6-10个潜在的分类标签?

  • 10-50 个潜在的分类标签?

  • 50 个或更多潜在的分类标签?

我的主要问题:

  1. 哪些算法在这些不同层次的总类标签上学习最有效?
  2. 哪些算法通常在这些层的每一层用最少的数据量做出最好的预测?

我知道在某些时候使用回归而不是分类器更有意义。这将是多少个潜在的类标签?

1个回答

影响分类器算法选择的因素有很多。与输入特征的性质相比,目标类的数量通常不会产生影响。

举个例子,如果您的输入数据是自然音频或图像,那么无论类的数量如何,深度卷积神经网络很可能具有最佳性能。

哪些算法通常在这些层的每一层用最少的数据量做出最好的预测?

没有基于输出类数量的先验最佳方法。“最佳预测”与“最少数据量”也是一种权衡,在少量数据上,更简单的模型会比复杂的模型表现更好,但更复杂的模型会更好地处理大量数据,并且会然后给你更好的预测。在某些时候,您可能有足够的数据,因此更多的采样不会改善您的训练模型,但您需要凭经验确定这一点。

大多数算法允许您通过改变超参数来探索它们之间的权衡,以使模型对于较小的数据集更简单,而在有更多训练数据时更复杂。

我知道在某些时候使用回归而不是分类器更有意义。这将是多少个潜在的类标签?

严格来说,这并不正确。一般来说,分类和回归之间的区别是一条强硬路线。例如,如果您将手写符号分类为字母表,那么对于 10、100 或 1000 个类别并不重要,符号从一组对象转变为实际点是没有意义的进入一个连续的空间来执行回归。

如果您的目标类表示某个连续变量内的范围(例如,通过事件发生的某些属性对事件进行分类),则可能是正确的。但在那种情况下,问题本质上是一个回归问题。事实上,在这种情况下,即使对于少量目标类,您最好还是训练回归算法,然后简单地将预测分类到相关类中。

您的目标类也可能代表有序集中的等级或序列。在这种情况下,当您有更长的序列时,这看起来更像是一个回归问题。一般来说,如果您可以目标类排列成有意义的序列,那么您可能能够执行某种序数回归,这可能是比使用分类器更好的选择。但是,对符号/字母进行分类不能以这种方式工作,因为其中的顺序是任意的。

最后,您可能会面临如此多的类,以至于单个分类器模型不堪重负,您需要以不同的方式解决问题。

对于最后一种情况的一个例子,考虑一个宠物图像的分类器。如果它有三个类别(猫、狗、兔子),那么您显然会使用标准分类方法。即使按品种分类 - 100 类 - 这种方法仍然可以很好地工作,如ImageNet比赛中所见。但是,一旦您决定尝试检测身份对于每只宠物(从技术上讲,仍然是一个类),您使用简单的分类器技术遇到了问题——在这种情况下,解决方案的结构需要更多的思考。一种可能的解决方案是经过训练的回归算法,用于从图像中提取生物特征数据(鼻子长度、眼睛之间的距离、下颌中心和耳朵之间的夹角),并根据观察到的个体的生物特征数据数据库将分类阶段移动到 KNN 中。这就是一些人脸识别算法的工作原理,首先将人脸图像映射到一个易于分类的连续空间(通常使用深度 CNN),然后使用一个更简单的分类器,该分类器可以在该空间中很好地扩展。