将Python3.6升级到3.7和将scikitlearn 0.19升级到0.23时PCA的收敛变化

2024-06-01 01:53:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用scikit learn中的经典PCA对一个分类模型进行分类,使用LogisticRegression对一个具有22000行*45000列的数据帧进行分类,数据是按比例缩放的,但当我将python 3.6升级到3.7和scikit learn 0.19升级到0.23时,两者都存在收敛问题

raise LinAlgError("SVD did not converge") LinAlgError: SVD did not converge

我的数据帧中没有NaN,但这可能是内存问题

from sklearn.decomposition import PCA
   
n_components = int(X_main.shape[0] / 5)

pca = PCA(n_components=n_components)
principalComponents = pca.fit_transform(X_main)

principalDf = pd.DataFrame(data=principalComponents)

我没有改变其他任何东西,我通过改变一些超参数解决了这个问题,但我想知道为什么会出现这种情况,我已经测试过,当我回滚到旧版本时,收敛错误“消失”

我不知道为什么,现在是不是有一个关于收敛的警告,或者是另一种计算方式,或者其他原因

谢谢你的建议:)


Tags: 数据main分类notcomponentsscikitlearnsvd