预聚类是否有助于建立更好的预测模型?

机器算法验证 机器学习 聚类 数据挖掘 预测模型
2022-03-11 18:48:27

对于流失建模的任务,我正在考虑:

  1. 计算数据的 k 个集群
  2. 分别为每个集群构建 k 个模型。

这样做的理由是,没有什么可以证明的,订户的人口是同质的,因此假设不同“组”的数据生成过程可能不同是合理的。

我的问题是,这是一个合适的方法吗?它是否违反了什么,或者由于某种原因被认为是不好的?如果是这样,为什么?

如果没有,您会分享一些关于该问题的最佳实践吗?还有一个问题:预聚类通常比模型树好还是坏(如 Witten, Frank 中所定义 - 叶子上有模型的分类/回归树。直觉上,决策树阶段似乎只是另一种形式的聚类,但我不知道它是否比“正常”聚类有任何优势。)。

4个回答

有一种称为聚类回归的方法可以解决类似的问题(首先对数据进行聚类,然后建立预测模型)。例如看这个。

有两点太长,无法评论:

  • 纯集群(即仅包含一个类别的案例)本身没有问题:所谓的一类分类器对每个类别进行独立于所有其他类别的建模。他们可以完美地解决这个问题。

  • 但是,如果数据以类完全分离的方式聚类,即聚类比较纯,这意味着存在非常强的结构,聚类分析能够在没有类标签指导的情况下找到这种结构。这意味着某些类型的分类器(例如基于聚类分析使用的相同距离度量的最近邻方法)适用于数据。

  • 另一种可能性,集群不是纯的,但集群和分类方法的组合可以做得很好的情况适用于树。树将完成集群的一部分(并且纯节点不被视为问题。)这是一个人为的示例,XOR 问题的 2 集群版本:
    异或簇

  • 另一种包含集群信息而不冒拥有纯集群风险的方法是将集群用作特征生成步骤:将集群分析的结果作为新变量添加到数据矩阵中。

  • 你问它是否因为某种原因不好:一个陷阱是这种方法导致模型具有许多自由度。你必须特别小心不要过度拟合。

  • 看看基于模型的树,例如mbq's answer here我认为他们实现了一个非常接近您所寻找的概念的概念。它们也可以作为森林实现:例如R 包 mobForest

这些天我正在处理类似的问题。我有数百个功能来构建分类器。在尝试了不同的模型(例如:随机森林、梯度提升等)之后,我的精度/召回率仍然很低。所以我正在尝试进行一些聚类,然后在不同的组中构建分类器。我担心的是,就像 Anony-Mousse 所说,如果我在聚类中使用所有信息,如何从分类器中获得更多信息?所以这就是我接下来要做的事情:

  1. 使用一些特征(根据先验知识较少)进行聚类。
  2. 使用其他功能(更多)来训练分类器。

我认为它也可能有助于降低复杂性,希望它有所帮助。

建立个集群,然后个相应的模型是绝对可行的。评论中提到的病理案例,其中集群完全分离结果变量会给分类器带来困难,这是一个理论问题,但我认为不太可能(尤其是在高维情况下)。此外,如果您可以构建这样的集群,那么您就可以使用这些集群进行预测!kk

此外,如果该过程从个样本开始,则分类器只能使用个样本。因此,更强大的方法是使用集群来构建单个分类器,该分类器使用回归的混合来结合集群中的异质性。在基于模型的聚类中,假设数据是从混合分布的,其中,概率为,概率为混合回归是一种扩展,它允许将数据建模为依赖于协变量;NN/kYiN(μi,σi2)i=1πi=21πμ1 μ2σ12σ22μi替换为,其中必须被估计。虽然此示例适用于单变量高斯情况,但该框架可以容纳许多数据(多项式 logit 适用于分类变量)。R的flexmix 包提供了更详细的描述,当然还有一种相对简单和可扩展的方式来实现这种方法。βiXiβi

或者,在有区别的设置中,可以尝试将集群分配(硬或软)作为训练选择的分类算法(例如 NB、ANN、SVM、RF 等)的特征