K- 表示为 tf-idf 矩阵定义初始中心

Posted

技术标签:

【中文标题】K- 表示为 tf-idf 矩阵定义初始中心【英文标题】:K- means defining Initial Centers for tf-idf matrix 【发布时间】:2017-05-19 14:33:31 【问题描述】:

我正在使用 k-means 对文章进行聚类,它运行良好。现在我想定义初始中心以获得更合理的结果。

我的 Python 代码:

tfidf_matrix = tfidf_vectorizer.fit_transform(articles)
X = np.array([[-19.67480000,  -8.546],
            [22.010807000,-10.9737],
            [11.959700000,19.2701],
            [12.254700000, 11.2381],
            [16.649700000,-15.2251],
            [19.859700000, 13.2601]] , np.float64)
km = KMeans(n_clusters=6,init=X, n_init=1).fit(tfidf_matrix)

当我尝试定义初始质心时,出现以下错误:

ValueError: The number of features of the initial centers 2 does not match the number of features of the data 4602.

从错误中我得到尺寸不相等的想法。如何转换我的初始中心以满足稀疏矩阵的维度?

【问题讨论】:

tfidf_matrix 的形状是什么? 每次运行都会改变。但是你可以根据最后一个来帮助我:(1111, 8262) 【参考方案1】:

质心中的特征数应与数据中的特征数相同。

您的输入数据 (tfidf_matrix) 是 (1111, 8262),即 1111 个样本和 8262 个特征。 那么,你的 6 个质心也应该有 8262 个特征。 X 的形状应该是 (6,8262)。

【讨论】:

好的,但我的问题是如何转换 X?

以上是关于K- 表示为 tf-idf 矩阵定义初始中心的主要内容,如果未能解决你的问题,请参考以下文章

知识详解+Python实现|文本挖掘中的预处理方法

K-means整理

BZOJ4547Hdu5171 小奇的集合 矩阵乘法

opencv中机器学习常用算法简述

如何使 TF-IDF 矩阵密集?

matlab怎么取出矩阵的某行