error de dominio matemático al usar PCA

Estoy usando el paquete scikit-learn de python para implementar PCA. Estoy obteniendo matemáticas

domain error :
C:\Users\Akshenndra\Anaconda2\lib\site-packages\sklearn\decomposition\pca.pyc in _assess_dimension_(spectrum, rank, n_samples, n_features)
     78         for j in range(i + 1, len(spectrum)):
     79             pa += log((spectrum[i] - spectrum[j]) *
---> 80                       (1. / spectrum_[j] - 1. / spectrum_[i])) + log(n_samples)
     81 
     82     ll = pu + pl + pv + pp - pa / 2. - rank * log(n_samples) / 2.

ValueError: math domain error

Ya sé que el error del dominio matemático se produce cuando tomamos el logaritmo de un número negativo, pero no entiendo aquí, ¿cómo puede haber un número negativo dentro del logaritmo? porque este código funciona bien para otros conjuntos de datos. tal vez esto esté relacionado con lo que está escrito en el sitio web de sci-kitlearn: "Esta implementación utiliza la implementación scipy.linalg de la descomposición de valores singulares. Solo funciona para matrices densas y no es escalable a datos dimensionales grandes". número de 0 valores)

Respuestas a la pregunta(2)

Su respuesta a la pregunta