【发布时间】:2020-07-11 00:50:03
【问题描述】:
我有一个包含 9000 行(文档)和 1810 个列(术语)的文档术语矩阵。 我已经应用 PCA 进行降维,输出,比如说 9000x200 矩阵。
我的目的是对这些数据进行聚类,对我来说下一步是应用一些距离指标,例如来自 sklearn 的cosine_similarity。
如果我直接在我的 DT 矩阵上运行 cosine_similarity(这显然是稀疏的),那么一切正常。
但是,如果我尝试在 PCA 生成的矩阵上运行cosine_similarity,我们称之为reducted_dtm,那么我会在 PyCharm 中遇到内存错误:
RecursionError: maximum recursion depth exceeded while calling a Python object
Process finished with exit code -1073741571 (0xC00000FD)
这是我的代码(dtm 是我的文档术语矩阵,我的代码实际上将转置的术语文档矩阵 tdm 作为输入):
dtm = tdm.T
# scale dtm in range [0:1] to better variance maximization
scl = MinMaxScaler(feature_range=[0, 1])
data_rescaled = scl.fit_transform(dtm)
# Fitting the PCA algorithm with our Data
pca = PCA(n_components=n).fit(data_rescaled)
data_reducted = pca.transform(data_rescaled)
# for continuity with my pipeline I need to
# return the TDM, so i transpose again
dtm_reducted = pd.DataFrame(data_reducted)
# Here apply cosine similarity
cs = cosine_similarity(dtm_reducted)
cs_pd = pd.DataFrame(cs)
【问题讨论】:
-
this link 有帮助吗?
标签: python scikit-learn sklearn-pandas cosine-similarity