使用sklearn的pca模块fit数据报错“ValueError: array must not contain infs or NaNs”:
Traceback (most recent call last): File "xxx.py", line 57, in <module> pca.fit(train_X) File "C:UsersxyjAppDataRoamingPythonPython37site-packagessklearndecomposition\_pca.py", line 351, in fit self._fit(X) File "C:UsersxyjAppDataRoamingPythonPython37site-packagessklearndecomposition\_pca.py", line 425, in _fit return self._fit_truncated(X, n_components, self._fit_svd_solver) File "C:UsersxyjAppDataRoamingPythonPython37site-packagessklearndecomposition\_pca.py", line 545, in _fit_truncated random_state=random_state) File "C:UsersxyjAppDataRoamingPythonPython37site-packagessklearnutilsvalidation.py", line 73, in inner_f return f(**kwargs) File "C:UsersxyjAppDataRoamingPythonPython37site-packagessklearnutilsextmath.py", line 358, in randomized_svd Uhat, s, V = linalg.svd(B, full_matrices=False) File "X:anacondalibsite-packagesscipylinalgdecomp_svd.py", line 109, in svd a1 = _asarray_validated(a, check_finite=check_finite) File "X:anacondalibsite-packagesscipy\_lib\_util.py", line 239, in _asarray_validated a = toarray(a) File "C:UsersxyjAppDataRoamingPythonPython37site-packages umpylibfunction_base.py", line 499, in asarray_chkfinite "array must not contain infs or NaNs") ValueError: array must not contain infs or NaNs
参考github对应库的issues进行解决,https://github.com/scikit-learn/scikit-learn/issues/18138,第一次fit在try里面运行,第二次就成功fit。:
try: pca.fit(train_X) except: pca.fit(train_X)
至于原因。。。没时间看了