【问题标题】:sklearn cosine_similarity memory error after PCAPCA后的sklearn cosine_similarity内存错误
【发布时间】: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)

【问题讨论】:

标签: python scikit-learn sklearn-pandas cosine-similarity


【解决方案1】:

omg,我已经意识到,实际上在我的代码中我正在从我称为'cosine_simillity'的函数中呼叫cosine_similarity(sklearn)。 这导致无限递归环。

【讨论】:

    猜你喜欢
    • 2017-09-07
    • 2020-10-11
    • 2016-02-02
    • 2017-08-15
    • 2018-12-20
    • 2020-02-01
    • 2021-03-24
    • 2017-07-19
    • 2018-12-20
    相关资源
    最近更新 更多