K均值聚类 - 在每个聚类中绘制类比例

时间:2017-03-08 00:30:38

标签: python machine-learning scikit-learn cluster-analysis

我正在开发一个项目,我利用未标记数据集的聚类结构来提高监督学习聚类算法的性能。在预处理数据后 - 存储在矩阵中 - 我使用k-means来聚类数据,如下所示:

from sklearn.cluster import KMeans
k = KMeans(n_clusters=40).fit(X)

我在y中存储了所需的标签。我很想知道不同的类是如何聚集的,即。如果集群相对纯净或混合。

为此,我想查看每个群集中每个类的比例。这是一个二进制分类任务 - 正面(由y表示为1)实例和负面实例(由y表示为0)。

(y数组的第n个元素是X矩阵第n行的正确标签。)

1 个答案:

答案 0 :(得分:0)

我会用pandas:

import pandas as pd

将真实标签和群集标签合并到数据框中:

df = pd.DataFrame({'clusters' : k.labels_, 'labels' : y})

按群集分组,每个群集得到1的分数:

df.groupby('clusters').apply(lambda cluster: cluster.sum()/cluster.count())