层次分类中的数据转换

数据挖掘 分类 多类分类 文本
2021-09-17 07:58:20

我正在使用每个父节点的本地分类器 (LCPN) 方法和“兄弟姐妹”策略构建分层文本分类器,如跨不同应用程序域的分层分类调查中所述:

例如,如果我们有 1.1、1.2、2.1、2.2、2.3 类,那么在第一级中,我们使用所有训练集来训练分类器来区分类 1 (1.1,1.2) 和类 2 (2.1,2.2,2.3),在第二个级别,我们使用两个多类分类器,第一个分类器在 1.1 和 1.2 之间进行分类,仅使用属于这些类的数据作为训练集,其余分类器使用第二个分类器。

我们对数据所做的任何数据转换(例如缩放、tf-idf)是否应该发生在分类器的每个级别?即,由于在第一级,tf-idf 向量是通过拟合整个训练集创建的,我们可以在第二级使用它们还是应该适应新的训练子集?

2个回答

它取决于数据集,但通常再次适合

为什么?如果您在分类 1.1 和 1.2 时不再适合第二级,那么您将引入在分类 1 和 2 之间时从第一级获得的偏差。

为什么这取决于?如果所有父类和子类之间的信息交织在一起,并且您将来会再次使用这些模型,那么再次拟合时您可能会丢失重要信息,换句话说,您只会在当前火车上过度拟合(分类 1.1 1.2)

在应用分类器之前执行所有特征工程通常是最佳实践。

两个主要原因是:

  1. 简单性——如果特征工程以模型性能为条件,那么很难找到和调试边缘情况。

  2. 样本问题的处理——特别是在文本中,有新的例子(例如,在预测期间出现的单词在训练期间没有出现)。尽可能多地应用特征工程来增加变换的鲁棒性。