聚类作为逻辑回归分割数据的一种手段

机器算法验证 聚类 数据挖掘 物流
2022-03-25 19:43:10

我试图根据逻辑回归模型的某些特征来预测学生的成功或失败。为了提高模型的性能,我已经考虑过根据明显的差异将学生分成不同的组,并为每个组建立单独的模型。但我认为通过考试可能很难识别这些群体,所以我想通过对学生的特征进行聚类来划分学生。这是构建此类模型的常见做法吗?您是否建议我将其分解为明显的组(例如,第一学期学生与返校学生),然后对这些组进行聚类,或者从一开始就进行聚类?

试图澄清:

我的意思是我正在考虑使用聚类算法将我的逻辑回归训练集分成几组。然后,我将对这些组中的每一个进行单独的逻辑回归。然后,当使用逻辑回归来预测学生的结果时,我会根据他们最适合的群体来选择要使用的模型。

也许我可以通过包含一个组标识符来做同样的事情,例如,如果学生返回,则返回 1,否则返回 0。

现在您让我思考,将训练数据集聚类并将其聚类标签用作逻辑回归中的特征,而不是为每个总体构建单独的逻辑回归模型是否有利。

如果为返校生和新生包含组标识符很有用,那么扩展组列表是否也有用?聚类似乎是一种自然的方式来做到这一点。

我希望这很清楚...

4个回答

您提出的一般方法 - 使用潜在分区将不同的数据点分配给不同的基本分类器 - 是一种经过充分研究的分类方法。

这些方法没有被广泛使用的原因可能是因为它们相对复杂并且比逻辑回归或 SVM 运行时间更长。在许多情况下,它们似乎可以带来更好的分类性能。

以下是一些参考资料:

  • Shahbaba, B. 和 Neal, R. “使用 Dirichlet 过程混合物的非线性模型”

  • Zhu, J. 和 Chen, N. 和 Xing, EP “用于分类和多任务学习的无限潜在 SVM”

  • Rasmussen, CE 和 Ghahramani, Z. “高斯过程专家的无限混合”

  • Meeds, E. 和 Osindero, S. “高斯过程专家的另一种无限混合”

我相信,如果您的集群之间的因变量存在显着差异,那么首先进行集群的方法肯定会有所帮助。无论您选择哪种学习算法。

我认为在整个基础上运行学习算法可以掩盖较低聚合级别的有意义的差异。

任何人都听说过辛普森悖论,这是一个更深层次问题的困难案例,在不同的组中存在不同的相关性,这些相关性被较大的样本噪声和/或较大组的较弱相关性所掩盖。

我想从一开始就承认我对集群知之甚少。但是,我看不到您描述的程序的意义。例如,如果您认为第一个学期与返校学生可能不同,为什么不包括一个协变量来索引呢?同样,如果您认为学生的另一个特征是相关的,您也可以将其包括在内。如果您担心您感兴趣的主要预测变量与成功率之间的关系可能会有所不同,您还可以包括该预测变量与第一学期与返回等之间的相互作用。逻辑回归可以很好地解决这些问题,包括模型中的术语。

另一方面,只要您只对这些功能进行聚类,并且首先这样做(不查看响应),我看不出有任何问题出现。我怀疑这种方法效率低下,每个模型的功效都较低,因为它只适合数据的一个子集,但我认为它不会使参数产生偏差或使测试无效。所以我想如果你真的想的话,你可以试试这个。

更新:

我的猜测是,最好(即最有效)用所有数据拟合一个模型。您可以包括一些超出您主要兴趣的额外协变量(例如返回与不返回),以及您通过事先运行聚类分析发现的分组指标。但是,如果进入聚类分析的协变量也可用于逻辑回归模型,我不确定我是否可以看到在不包含 LR 模型中的所有协变量的情况下会获得什么集群指标。这可能有一个我不熟悉的优势,因为我不是聚类分析方面的专家,但我不知道它会是什么。在我看来,CA 不会生成协变量中不存在的其他信息,因此不会向 LR 模型添加任何内容。你可以试试;也许我错了。但我的猜测是,你只会消耗一些额外的自由度。

另一种方法是将集群指标输入到 LR 模型中,而不是输入它所基于的协变量。我怀疑这是否有益。CA 不会像任何其他分析一样完美,因此从原始协变量转移到派生的集群指标可能会导致一些信息丢失(同样,我不知道,但我强烈怀疑这是真的。)同样,你可以尝试两种方式并作为学术练习进行比较,尽管只是尝试了很多东西并确定看起来最好的结果是皱眉如果你想认真对待你的结果。

我不想仅仅在聚类分析上抱怨。总的来说,它们可能有很多好处,在这里它们可能会有很好的用途。但是,据我了解您的情况,我认为仅使用您认为可能相关的协变量构建 LR 模型是可行的方法。

如果你不依赖逻辑回归,我建议你使用随机森林分类器,因为它有一种内置的聚类。这个想法是使用邻近矩阵进行聚类。邻近矩阵是 N_Obs by N_Obs 矩阵,用于袋外树的一部分,其中观察值位于同一终端节点中。然后,您可以按特征级别矩阵将其聚合到特征级别,其中元素是邻近矩阵中分数的平均值。然后,当所有级别超过阈值时,您会将它们聚集在一起,看看这是否会改善您的预测。最好采用逐步迭代的方法来找到最佳聚类,但您可以通过其他方式选择阈值。完成此集群后,您可以使用集群标签替换该特征或将集群标签添加为新特征。我想此时你可以切换回逻辑回归,如果你真的想要的话。