При выполнении PCA для семплов с n_samples
Следующие коды приведут к ошибке.n_samples равен 5, ошибки можно избежать, установив n_components <5. </p>
from sklearn.decomposition import PCA
import numpy as np
pca = PCA()
train = np.random.rand(5,100)
pca.fit(train)
pca.score(np.random.rand(5,100))
Ожидаемые результаты:
Функция оценки показывает работу для настроек n_components по умолчанию при n_samples
Журнал ошибок:
Traceback (most recent call last):
File "", line 7, in
pca.score(np.random.rand(5,100))
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\sklearn\decomposition\pca.py", line 594, in score
return np.mean(self.score_samples(X))
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\sklearn\decomposition\pca.py", line 569, in score_samples
precision = self.get_precision()
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\sklearn\decomposition\base.py", line 76, in get_precision
np.dot(linalg.inv(precision), components_))
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\scipy\linalg\basic.py", line 946, in inv
a1 = _asarray_validated(a, check_finite=check_finite)
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\scipy_lib_util.py", line 238, in _asarray_validated
a = toarray(a)
File "C:\ProgramData\Anaconda3\envs\python2\lib\site-packages\numpy\lib\function_base.py", line 1215, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs