K 均值聚类 - 在每个聚类中绘制 class 比例
K-means cluster - Plot class proportions in each cluster
我正在从事一个项目,我利用未标记数据集的聚类结构来提高监督学习聚类算法的性能。预处理数据后 - 存储在矩阵中 - 我使用 k-means 对数据进行聚类,如下所示:
from sklearn.cluster import KMeans
k = KMeans(n_clusters=40).fit(X)
我在 y
中存储了所需的标签。我很想知道不同的 classes 是如何聚集在一起的。如果集群比较纯净或混合。
为此,我想查看每个 class 在每个集群中的比例。这是一个二进制 classification 任务 - 正例(由 y 中的 1 表示)实例和负例(由 y 中的 0 表示)。
(y数组的第n个元素是X矩阵第n行的正确标签。)
我会用 pandas:
import pandas as pd
将真实标签和聚类标签组合成一个数据框:
df = pd.DataFrame({'clusters' : k.labels_, 'labels' : y})
按集群分组并为每个集群获取 1 的分数:
df.groupby('clusters').apply(lambda cluster: cluster.sum()/cluster.count())
我正在从事一个项目,我利用未标记数据集的聚类结构来提高监督学习聚类算法的性能。预处理数据后 - 存储在矩阵中 - 我使用 k-means 对数据进行聚类,如下所示:
from sklearn.cluster import KMeans
k = KMeans(n_clusters=40).fit(X)
我在 y
中存储了所需的标签。我很想知道不同的 classes 是如何聚集在一起的。如果集群比较纯净或混合。
为此,我想查看每个 class 在每个集群中的比例。这是一个二进制 classification 任务 - 正例(由 y 中的 1 表示)实例和负例(由 y 中的 0 表示)。
(y数组的第n个元素是X矩阵第n行的正确标签。)
我会用 pandas:
import pandas as pd
将真实标签和聚类标签组合成一个数据框:
df = pd.DataFrame({'clusters' : k.labels_, 'labels' : y})
按集群分组并为每个集群获取 1 的分数:
df.groupby('clusters').apply(lambda cluster: cluster.sum()/cluster.count())