sklearn余弦_相似性PCA后的内存错误



我有一个文档术语矩阵,包含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)

OMG,我已经意识到,实际上在我的代码中,我从一个我称为"cosine_smilarity"的函数中调用了cosine_silarity(sklearn(。这导致了一个无限递归循环。

最新更新