编程语言
首页 > 编程语言> > 在python中获取sklearn中的簇大小

在python中获取sklearn中的簇大小

作者:互联网

我正在使用sklearn DBSCAN来集群我的数据,如下所示.

#Apply DBSCAN (sims == my data as list of lists)
db1 = DBSCAN(min_samples=1, metric='precomputed').fit(sims)

db1_labels = db1.labels_
db1n_clusters_ = len(set(db1_labels)) - (1 if -1 in db1_labels else 0)
#Returns the number of clusters (E.g., 10 clusters)
print('Estimated number of clusters: %d' % db1n_clusters_)

现在,我希望从大小(每个群集中的数据点数)中排序前3个群集.请告诉我如何获取sklearn中的簇大小?

解决方法:

另一种选择是使用numpy.unique:

db1_labels = db1.labels_
labels, counts = np.unique(db1_labels[db1_labels>=0], return_counts=True)
print labels[np.argsort(-counts)[:3]]

标签:python,machine-learning,cluster-analysis,scikit-learn,dbscan
来源: https://codeday.me/bug/20190522/1153706.html