Функция pca Score / Score_samples генерирует ValueError, если n_samples меньше, чем n_features. - PullRequest
0 голосов
/ 21 декабря 2018

При выполнении 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
...