使用决策树比较 scikit 学习聚类

Posted

技术标签:

【中文标题】使用决策树比较 scikit 学习聚类【英文标题】:Comparing scikit learn clusterings using a decision tree 【发布时间】:2015-06-15 08:04:09 【问题描述】:

我正在为一个类做一个项目,我从 LIBSVM 获取一些数据并通过 2 种不同的聚类算法运行它。我的 kmeans 生成了 8 个集群,而我的聚合器将它们分组为 3 个集群。

现在,我试图判断我的 kmeans 生成的集群标签是否可用于预测我的凝聚聚类生成的集群标签,例如将集群 #6 中的所有实例从 agg 集群映射到集群 #1。

我的教授建议使用决策树分类器,但我不太确定如何执行此操作。我知道我会将 agg 聚类标签作为类标签,然后将我的数据输入其中并查看它是如何分类的。这就是我的问题所在,我有几个问题:

1) scikit learn 决策树分类器输出什么?它是每个实例可能被分类为的概率列表吗?还是明确分类每个实例?

2) 在我输入我的数据并且每个实例都被分类到 Agg 生成的 3 个集群中的一个之后,我如何进入并从 kmeans 中找出它属于哪个集群?

3) 有没有更好的方法来做到这一点?我们需要做的就是“以定量的方式比较不同方法产生的集群”,所以我们不一定需要使用决策树分类器,但我不确定还有什么好的方法。我已经考虑了兰特和调整后的兰特指数,但这些似乎不是我要找的

非常感谢任何帮助!提前致谢!

【问题讨论】:

【参考方案1】:

让我先回答 3)。 是的! sklearn.metrics.cluster See the documentation。这是以“真实参考”的观点编写的,但这并不是真正必要的,调整后的兰德指数和归一化互信息非常适合比较两个聚类的相似程度,并且每个聚类都会产生一个有意义的数字。

1) 要么。 predict 给出类,predict_proba 给出概率。

2) 我不明白这个问题。

【讨论】:

谢谢!我是否必须让我的凝聚聚类产生 8 个聚类?我觉得从 8 个集群映射到 3 个集群会影响评估 ARI 等可以处理不同数量的集群。

以上是关于使用决策树比较 scikit 学习聚类的主要内容,如果未能解决你的问题,请参考以下文章

scikit学习决策树模型评估

决策树系列决策树基础

[机器学习与scikit-learn-15]:算法-决策树-分类问题代码详解

[机器学习与scikit-learn-14]:算法-决策树-工作原理图解

郑捷《机器学习算法原理与编程实践》学习笔记(第三章 决策树的发展)_Scikit-learn与回归树

scikit-learn决策树算法类库使用小结