在集群中打印主要功能(python)



我有一个mxn矩阵,有m个特征和n个样本。该矩阵称为term_individual。聚类是使用scikitslearn:完成的

from sklearn.cluster import KMeans
kmeans = KMeans(n_clusters=n_clusters)
kmeans.fit(term_individual.T)
centroids = kmeans.cluster_centers_.squeeze()
labels = kmeans.labels_

每个样本都是一个用正整数填充的向量。如果样本的第i个分量是n,则意味着第i个特征在该样本中出现n次。

我想知道每个集群最具代表性的特征。例如,假设第i个特征在第一和第二样本中多次出现,导致这些样本与第i个特性也出现的许多其他样本在同一聚类中。我想打印该功能(或与之相关的索引,即打印I)。

我感谢你的帮助。

您要问的问题似乎是哪些功能对每个集群最重要。本质上,你可以开始估计每个集群中每个特征的zscore平均值:

def cluster_feature_importance(X, Y, feature_importances):
    N, M = X.shape
    X = scale(X)
    out = {}
    for c in set(Y):
        out[c] = dict(
            zip(range(N), np.mean(X[Y==c, :], axis=0))
        )
    return out

这里X是你的矩阵term_individualY,作为通知每个样本属于哪个集群的列表,例如:[0, 0, 1, 1, 0, 3, 2, 2, 3, 0, ...],其中Yn长。

相关内容

  • 没有找到相关文章

最新更新