Answers:
有一种称为聚类回归的方法可以解决类似的问题(首先聚类数据,然后构建预测模型)。例如参见此。
两点太长了,无法发表评论:
纯聚类(即仅包含一个类的情况)本身没有问题:所谓的一类分类器对每个类进行建模,使其独立于所有其他类。他们可以完美地解决这个问题。
但是,如果数据聚类以类完全分离的方式(即聚类相当纯净)表示存在很强的结构,则聚类分析无需类标签的指导即可找到该结构。这意味着某些类型的分类器(例如基于聚类分析所使用的相同距离度量的最近邻方法)适用于数据。
另一种可能性是,聚类不是纯净的,但是聚类和分类方法的组合可以很好地适用于树木。树将完成集群的一部分(并且纯节点不被视为问题。)这是一个人工示例,它是XOR问题的2个集群版本:
在不冒纯簇风险的情况下包含簇信息的另一种方法是将聚类用作特征生成步骤:将聚类分析的结果作为新变量添加到数据矩阵中。
您问它是否由于某种原因而不好:一个陷阱是,这种方法导致模型具有许多自由度。您必须特别小心,不要过大。
看看基于模型的树,例如mbq在这里的答案,我认为它们实现的概念非常接近您想要的模型。它们也可以实现为森林:例如R包mobForest。
建造 集群然后 相应的模型是绝对可行的。评论中指出的病理案例,其中聚类将结果变量完全分开将给分类器带来困难,这是一个理论问题,但我认为这不太可能(尤其是在高维案例中)。此外,如果您可以构建此类集群,则可以仅使用这些集群进行预测!
此外,如果流程开始于 样本,分类器只能使用 样品。因此,一种更强大的方法是使用聚类来构建单个分类器,该分类器使用回归混合将聚类的异质性纳入其中。在基于模型的聚类中,假设数据是从混合物分布中生成的 哪里 很有可能 和 很有可能 和 和 。混合回归是一种扩展,它使人们可以将数据建模为依赖于协变量。 被替换为 ,其中 必须估计。尽管此示例适用于单变量高斯情况,但该框架可以容纳许多数据(多项式对数适用于分类变量)。用于R 的flexmix软件包提供了更详细的描述,当然还提供了一种相对容易和可扩展的方式来实现此方法。
或者,在区分性设置中,可以尝试将群集分配(硬或软)作为一种功能来训练选择的分类算法(例如NB,ANN,SVM,RF等)。
好吧,如果您的集群真的很好,那么您的分类器将很糟糕。因为他们的训练数据没有足够的转移。
说您的集群是完美的,即纯净的。您甚至无法再在那里正确地训练分类器。分类器需要正面和负面的例子!
随机森林在做完全相反的事情上非常成功。他们随机抽取数据样本,在其上训练分类器,然后使用所有训练有素的分类器。
可能的工作是使用集群,然后在每对集群上训练分类器,至少在它们之间的分歧很大时(如果将一个类分为两个集群,您仍然不能在那里训练分类器!)