处理与标记数据略有不同的未标记数据的策略

数据挖掘 机器学习 Python 分类
2021-10-06 23:27:42

假设您有一个具有以下属性的数据集:

  1. 样本数量相当大(~100K 样本)
  2. 有大约 150 个上下文特征和 1 个由文本字符串组成的特征(当然,可以根据文本的预处理将其拆分为任意数量的特征)。预计文本字符串将具有非常强大的预测能力
  3. 根据一些上下文特征,样本分为 3 类(在您接收数据之前),A 类包含约 5% 的样本,B 类包含约 20% 的样本,C 类包含剩余的 75%
  4. A类完全标注,B类部分标注(只有一小部分未标注),C类完全未标注
  5. 用于对样本进行分类的特征可能会影响样本属于 0 类或 1 类的概率。
  6. 类别之间的样本并不完全不同(也就是说,我们不是在谈论猫与狗)。例如:两个非常相似的样本可能会基于大范围数值特征上的非常小的差异而最终归入不同的类别

目的是建立一个能够正确分类样本的分类器。这可能看起来像一个半监督学习问题,但我担心类别之间的结构差异。因此我的问题是:可以采用哪些策略来构建在所有样本上都表现良好的分类器?

当然我可以保守一点,只处理有标签的数据,但也能预测无标签的数据(例如 C 类数据的 75%)有很大的价值。这就是为什么我会尝试为创造性的解决方案挑选你的大脑!

1个回答

没有直接的方法来处理这种情况,但这里有一些想法:

  • 用一个额外的标签“U”表示“未知”来扩充 A/B/C 标签集。现在所有样本都被标记了。

  • 从样本中的其他数据片段中预测未标记样本的 A/B/C 标签。现在所有样本都被标记了。

  • 训练一个带有标签的数据系统和另一个没有标签的数据系统。根据标签的可用性使用它们。如果您的 ML 方法允许共享模型的一部分用于标记数据和用于未标记数据(例如神经网络),那就太好了。