处理明显不可分割的数据集

数据挖掘 机器学习 领域适应
2022-02-21 19:11:13

我正在尝试构建一个模型/模型套件来预测二进制目标。模型的确切细节并不重要,但足以说明我已经尝试了六种不同类型的模型,所有模型的结果都相当。

在查看对训练数据的各个子集的预测时,似乎某个特征子集对大约 30% 的数据很重要,而另一个子集对剩余的 70% 很重要。使用训练数据/保留集。当目标已知时,这种分离相当容易检测(使用子集 1 运行模型,使用子集 2 运行另一个模型,找到一个模型比另一个模型做得更好的子集)。显然,这对于测试数据是不可能的,因为那里不知道目标。

数据中显然(至少)有两个区域彼此大不相同,因为在整个数据集上训练的模型比在每个区域上训练的单独模型的组合更差。

然而,数据集似乎非常难以分离,主成分(线性和 RBF 内核)之间没有重大差异,并且在应用了几种不同的聚类算法(KMeans、凝聚、均值偏移)后没有清晰/稳定的聚类。

是否有任何流行的方法可以分离/聚类抵抗“正常”方法的数据?这里的最终目标是找出目标未知时在哪些行上使用哪个模型。

2个回答

您可能有域适应问题。样本实际上取自两个不同的来源,并且具有不同的行为规则。

我建议你试试下面的方法。

  • 使用目标概念将数据拆分为两个数据集。
  • 为每个数据集建立一个模型。如果您的性能没有提高,则域适应假设可能是错误的。
  • 否则,我们将获得改进。现在我们应该找出应用哪个模型。使用完整数据集并使用目标来创建一个新概念,指示样本属于哪个数据集。既然你说给定目标,你可以推断出我认为两者是不同的。
  • 为新数据集构建模型。如果效果好,问题就解决了。首先运行此模型并为每个样本应用正确的模型。否则,这意味着这两个数据集无法区分(至少就您应用的方法而言),削弱了问题原因是域适应的假设。

合奏

这包括构建几个分类器,每个分类器在数据子集中表现得特别好,并将它们的预测结合到最终预测中。

根据您的描述,提升算法似乎是不错的候选者,例如AdaBoost