Scikit-Learn (Sklearn) PCA wirft Typ Error auf spärliche Matrix

Aus der Dokumentation von sklearn RandomizedPCA werden spärliche Matrizen als Eingabe akzeptiert. Doch als ich es mit einer spärlichen Matrix TypeError , bekam ich einen TypeError :

 > sklearn.__version__ '0.16.1' > pca = RandomizedPCA(n_components=2) > pca.fit(my_sparce_mat) TypeError: A sparse matrix was passed, but dense data is required. Use X.toarray() to convert to a dense numpy array. 

Ich habe den gleichen Fehler mit fit_transform .

Irgendein Vorschlag, wie man es funktioniert?

One Solution collect form web for “Scikit-Learn (Sklearn) PCA wirft Typ Error auf spärliche Matrix”

Die Antwort ist, dass es nicht möglich ist, RandomizedPCA mit einer spärlichen Matrix mit Version 0.16.1 von Scikit-Learn (aktuelle stabile Version) zu arbeiten. Die Dokumentation, auf die ich mich bezog, war für eine vorherige Version von Scikit-Learn und so sollten alternative Funktionen für die aktuelle stabile Version verwendet werden.

Eine mögliche Alternative ist TruncatedSVD

  • Wie füge ich eine spärliche Zeile zu einer spärlichen Matrix in Python hinzu?
  • Füge kategorische Variable (Geschlecht) zu Sparse Matrix für Multiclass Klassifizierung mit Sklearn hinzu
  • Effiziente Möglichkeit, Elemente auf Null zu setzen, wo Maske True auf scipy sparse Matrix ist
  • Einen Vektor von Wörterbuchwerten in einem Array erhalten, python
  • Python Vergleichen Sie Tokenized Lists
  • Teilmenge einer Matrixmultiplikation, schnell und spärlich
  • Die effizienteste Art des Zugriffs auf Werte ungleich Null in Zeile / Spalte in scipy.sparse Matrix
  • Numpy / Scipy Broadcast Berechnung Skalar Produkt für ein bestimmtes Element
  • Erstellen einer scipy.lil_matrix mit einem Python-Generator effizient
  • Bestimmen der Bytegröße einer scipy.sparmatrix?
  • Überprüfen Sie, ob ein spätester Matrixeintrag vorhanden ist
  • Python ist die beste Programmiersprache der Welt.