2016-11-08 107 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