math Domänenfehler bei Verwendung von PCA

Ich verwende Pythons Scikit-Lernpaket, um PCA zu implementieren. Ich bekomme Mathe

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

Ich weiß bereits, dass ein mathematischer Domänenfehler verursacht wird, wenn wir den Logarithmus einer negativen Zahl verwenden, aber ich verstehe hier nicht, wie es möglich ist, dass eine negative Zahl im Logarithmus enthalten ist. weil dieser Code für andere Datasets gut funktioniert. Vielleicht hängt dies damit zusammen, was auf der Website von sci-kitlearn geschrieben steht: "Diese Implementierung verwendet die scipy.linalg-Implementierung der Singularwertzerlegung. Sie funktioniert nur für dichte Arrays und ist nicht für große dimensionale Daten skalierbar." Anzahl von 0 Werten)

Antworten auf die Frage(4)

Ihre Antwort auf die Frage