KMeans聚类报错‘kmeans_labels未定义’求助:统计各簇样本数
解决KMeans统计簇样本数时的未定义变量错误
错误原因很直接:你使用的kmeans_labels变量从未被定义过。在sklearn的KMeans模型中,训练完成后,每个样本的聚类标签会存储在模型的labels_属性中,而非你凭空使用的kmeans_labels。
修正后的完整代码如下:
from sklearn.cluster import KMeans import numpy as np # 训练KMeans模型 kmeans = KMeans(n_clusters=2, random_state=0).fit(X_train_norm) # 统计每个簇的样本数量 unique_labels, unique_counts = np.unique(kmeans.labels_, return_counts=True) cluster_count = dict(zip(unique_labels, unique_counts)) print(cluster_count)
补充说明:
kmeans.labels_会返回一个数组,每个元素对应训练集中对应样本的簇标签(从0开始的整数)np.unique(..., return_counts=True)会返回去重后的簇标签,以及每个标签对应的样本数量- 最后用
dict(zip(...))把标签和数量配对成字典,方便查看
内容的提问来源于stack exchange,提问作者Juliet
相关产品推荐
相关产品推荐

