Python 由于聚类的自动索引不';不符合真实的标签?

Python 由于聚类的自动索引不';不符合真实的标签?,python,scikit-learn,cluster-analysis,k-means,multilabel-classification,Python,Scikit Learn,Cluster Analysis,K Means,Multilabel Classification,由于聚类的自动索引可能是原始标签的排列,我们如何衡量K-Means聚类算法的准确性(例如,生成混淆矩阵)?K-Means是一种聚类算法(分组算法,不用于分类),因此,检查和分析准确性是不可行的。k-means的主要概念是找到一组最大化“簇间”距离的数据点(并且没有标签的概念,因此无法得到精度矩阵)。更多见解: 必须使用sklearn.cluster.KMeans中的predict方法手动分析精度(假设您希望可视化由哪些数据点组成的集群)。它基本上是“预测X中每个样本所属的最接近的聚类。”()我也

由于聚类的自动索引可能是原始标签的排列,我们如何衡量K-Means聚类算法的准确性(例如,生成混淆矩阵)?

K-Means是一种聚类算法(分组算法,不用于分类),因此,检查和分析准确性是不可行的。k-means的主要概念是找到一组最大化“簇间”距离的数据点(并且没有标签的概念,因此无法得到精度矩阵)。更多见解:


必须使用
sklearn.cluster.KMeans
中的
predict
方法手动分析精度(假设您希望可视化由哪些数据点组成的集群)。它基本上是“预测X中每个样本所属的最接近的聚类。”()

我也不太清楚你的意思。你最初的标签可能是地面真相标签。k-means提供的聚类结果通常是一个整数,其范围与您希望k-means算法提供的k个聚类的范围相同

我通常使用
pandas.crosstab
函数,用kmeans标记和交叉制表来可视化地面真相标记的定位

为获得更好的可视化效果,您可能需要使用以下选项:

import seaborn as sns
import matplotlib.pyplot as plt

plt.figure(figsize=(30,10))

# plot the heatmap for correlation matrix
ax = sns.heatmap(crosstab_groundtruth_kmeans.T, 
                square=True, annot=True, fmt='.2f')

ax.set_yticklabels(
    ax.get_yticklabels(),
    rotation=0);
out:


祝你好运~

您能添加示例代码吗?sklearn专门为以下情况提供了一个示例代码this@SergeyBushmanov哦,这是完美的答案!非常感谢。