将相似的科目分组并仅使用它们进行训练

数据挖掘 机器学习 深度学习 聚类 数据挖掘 相似
2022-02-22 03:20:22

我有一个包含 5k 个主题的数据集。这是一个二元分类问题,我有 3000 个正面和 2000 个负面主题。

现在要建立一个模型,我不喜欢用通常的方式训练(我们建立一个广义模型)。

相反,我想将类似的患者分组在一起,例如 group1、group2、group3、group4 等。

当我新的主题预测时,我想知道他属于哪个组并找出每个组的重要预测因子?

我知道这听起来像 K-means 聚类,但我理解正确吗?

任何人都可以向我提供有关如何执行此操作的步骤列表(伪代码类型)吗?抱歉,我是 ML 新手,正在探索解决分类问题的各种方法

1个回答

聚类确实会为您提供类似 group1、group2 等的东西,即它将每个实例分配给一个组,以一起表示相似的实例。使用该模型,您还可以将任何新实例分配给模型中的组之一,即找到与该实例最相似的组。一般来说,聚类不会为您提供哪些预测变量对一个组最重要(可能有一些方法可以从模型中计算出来,但它不是标准的)。

请注意,仅通过聚类您无法预测新主题的目标变量。但是,您可以获得每个组的正/负比例,即知道实例属于特定组的正/负的机会。您也可以做相反的事情:知道实例是正面/负面的属于特定组的机会。

一个重要的问题是您是否要在用于聚类的特征中包含目标变量:

  • 如果包含它,模型会像使用任何其他功能一样使用它来根据实例的相似性对实例进行分组。
  • 如果不包括在内,则模型本身不知道它,因此集群中正/负的比例不依赖于它。这可能更具洞察力,具体取决于您想要获得的内容。不包含它的另一个优点是,您仍然可以使用聚类的结果来训练二元分类模型,通常是通过添加实例所属的聚类作为特征。

如您所见,根据目标需要做出一些重要的设计决策。

[编辑:回答评论]

为了使用聚类作为对任何新实例进行分类的基础,这里有一些通用选项:

  • 基本选项:预测实例所属的集群,然后只输出集群的阳性概率。
  • 聚类模型+分类模型:用所有训练实例训练一个分类器,一个额外的分类特征对应于实例所属的集群。与仅原始特征相比,分类可能会有所改进。
    • 变体:为每个可能的集群添加一个特征,其中值表示实例与每个集群的相似程度(大多数集群方法可以计算与任何集群的距离或相似度)。
  • 多个独立的分类模型:基于聚类,为每个聚类独立训练一个分类模型,只使用该聚类中的实例。优点:这允许分类模型考虑该集群内更细粒度的模式。缺点:该模型需要训练的实例较少,尤其是对于小型集群。