2016-11-08 70 views
1

我使用dbscan scikit-learn算法进行集群。 db = DBSCAN()。fit(X)例如返回8。我的目标是通过群集组件恢复群集。我说X是矢量矢量,当我谈到集群成员时,我期望的是X的子矢量。有没有人可以帮助我?使用scikit-learn获取集群成员/元素集群DBSCAN

+0

请澄清你的问题。但我想你会看看你的观点的标签。 – MMF

回答

3

我相信你所要求的每个项目的数据集中的集群分配,X.

可以使用labels_属性。 db.labels_这里的每个索引对应于X中的相同索引,因此您可以看到分配。

+0

更清楚。 我们以x1 = [0,0,0,1,0,1],x2 = [0,0,0,0,1,0]等为例说明X(x1,x2,x3,x4)当我写db = DBSCAN()。fit(X)时,我想为每个集群恢复它的子向量xi。另外,当我在xrange(n_clusters_)]中为集群= [X [db.labels_ == i]]时,我得到了一种错误,“只有一个元素的整数数组可以转换为索引。”如果dbscan算法不允许我获取簇元素,那么我可以使用什么算法进行聚簇? –

+0

@PascalOuedraogo X [db.labels_ == i]返回一个包含多个元素的数组。相反,你可以遍历你的n_clusters_并为每个数组创建一个不同的数组。就我个人而言,我会创建一个字典映射群集号到列表:cluster_dict = {i:X [db.lables == i] for xrange(n_clusters_)} – aberger