【发布时间】:2014-02-16 14:28:18
【问题描述】:
我有 18997 个文档(文档可以大于 100K)进行聚类并将其分成块(每个 5000 个文档)。 然后,我用 MBKmeans 对每个块进行parttail_fitted。我按簇选择文档,如 each_chunk[labels == e]。未选择任何文档。如何按集群选择文档?
[update #1] 我应该如何根据每个批次配置 MBKmeans? (总文档=100K,每批=5000 文档)
[更新 #2] 是否有使用 MBKmeans parital_fit 选择集群成员的示例?
提前致谢。
这是我的代码:
def selectDocsByCluster(self, chunks):
centroids = self.kmeans.cluster_centers_
labels = self.kmeans.labels_
if self.verbose:
print 'labels:', len(labels.tolist())
checker_docs_count = 0
collected_data = dict()
for e, centroid in enumerate(centroids):
members = labels == e
for each_chunk in chunks:
docs_by_cluster = each_chunk[members]
if e in collected_data.keys():
collected_data[e].extend(docs_by_cluster.tolist())
else:
collected_data.update({e:docs_by_cluster.tolist()})
if self.verbose:
print 'Members:', len(members.tolist()), type(members)
total_selected = len(collected_data.get(e) or [])
print 'clusterID:', e, "Total Docs:", total_selected
checker_docs_count += total_selected
print 'check docs count:', checker_docs_count
详细代码是here。
【问题讨论】:
标签: python machine-learning cluster-analysis scikit-learn k-means