我正在开发一个项目,我利用未标记数据集的聚类结构来提高监督学习聚类算法的性能。在预处理数据后 - 存储在矩阵中 - 我使用k-means来聚类数据,如下所示:
from sklearn.cluster import KMeans
k = KMeans(n_clusters=40).fit(X)
我在y
中存储了所需的标签。我很想知道不同的类是如何聚集的,即。如果集群相对纯净或混合。
为此,我想查看每个群集中每个类的比例。这是一个二进制分类任务 - 正面(由y表示为1)实例和负面实例(由y表示为0)。
(y数组的第n个元素是X矩阵第n行的正确标签。)
答案 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())