如何将 ids 映射到各自的集群?
How to get a mapping of ids to their respective cluster?
我暂时使用 DBSCAN 对随机数据进行了聚类分析。但是,最后我想要这样的映射:
[Cluster, Total_users]
[A,10]
[B,6]
[C,60]
起点是我的这段代码,但最后,输出缺少这个列表。有人知道我该怎么做吗?
from sklearn.cluster import DBSCAN
data = np.array([[-37.530, 3.109, -16.452],
[40.247, 5.483, -15.209],
[-31.920, 12.584, -12.916],
[-32.760, 14.072, -13.749],
[-37.100, 1.953, -15.720],
[-32.143, 12.990, -13.488],
[-41.077, 4.651, -15.651],
[-34.219, 13.611, -13.090],
[-33.117, 15.875, -13.738]])
model = DBSCAN(eps=2.5, min_samples=2)
model.fit_predict(data)
pred = model.fit_predict(data)
print("number of cluster found: {}".format(len(set(model.labels_))))
你可以使用
from collections import Counter, defaultdict
print(Counter(model.labels_))
输出会像
Counter({1: 5, 0: 2, -1: 2})
其中,
标签 0 有 2 个元素
标签 1 有 5 个元素
and -1 在 dbscan 中有两个均值离群值。
或者,
您可以使用
import pandas as pd
pd.Series(pred).value_counts()
1 5
-1 2
0 2
dtype: int64
如@Quang Hoang 所建议,输出相同。
我暂时使用 DBSCAN 对随机数据进行了聚类分析。但是,最后我想要这样的映射:
[Cluster, Total_users]
[A,10]
[B,6]
[C,60]
起点是我的这段代码,但最后,输出缺少这个列表。有人知道我该怎么做吗?
from sklearn.cluster import DBSCAN
data = np.array([[-37.530, 3.109, -16.452],
[40.247, 5.483, -15.209],
[-31.920, 12.584, -12.916],
[-32.760, 14.072, -13.749],
[-37.100, 1.953, -15.720],
[-32.143, 12.990, -13.488],
[-41.077, 4.651, -15.651],
[-34.219, 13.611, -13.090],
[-33.117, 15.875, -13.738]])
model = DBSCAN(eps=2.5, min_samples=2)
model.fit_predict(data)
pred = model.fit_predict(data)
print("number of cluster found: {}".format(len(set(model.labels_))))
你可以使用
from collections import Counter, defaultdict
print(Counter(model.labels_))
输出会像
Counter({1: 5, 0: 2, -1: 2})
其中,
标签 0 有 2 个元素
标签 1 有 5 个元素
and -1 在 dbscan 中有两个均值离群值。
或者, 您可以使用
import pandas as pd
pd.Series(pred).value_counts()
1 5
-1 2
0 2
dtype: int64
如@Quang Hoang 所建议,输出相同。