2016-04-13 11 views
2

Wenn PCA in spark.mllib.feature verwendet wird, ist die Spalte meiner Eingabedaten über 65535, aber die in PCA definierte RowMatrix ist < 65535, bedeutet dies, dass ich PCA nicht verwenden kann ?PCA-Eingaben Fehler Argument mit mehr als 65535

+0

@ eliasah, ist die Fehlerausnahme in thread "main" java.lang.IllegalArgumentException: Argument mit mehr als 65535 cols: 84619 bei org.apache.spark.mllib.linalg.distributed.RowMatrix.checkNumColumns (RowMatrix.scala: 135) –

+0

Wenn eine der angegebenen Antworten Ihre Probleme löst, akzeptieren Sie sie bitte, damit wir diese Frage schließen können! – eliasah

Antwort

2

Derzeit scheint die PCA-Implementierung eine Einschränkung der Anpassung von d^2 Kovarianz/Grammatik-Matrixeinträgen im Speicher zu haben (d ist die Anzahl der Spalten/Dimensionen der Matrix).

Es ist für jetzt auf 65535 festgelegt, weil die aktuelle Implementierung von PCA nicht sehr skalierbar ist. Sie können PCA in Ihrem Fall nicht verwenden.

Referenz: source code.

Es gibt eine JIRA issue Planung einen probabilistischen Hauptkomponentenanalyse-Algorithmus zu implementieren, die skalierbar sein.

+0

Vielen Dank ..... –

+0

@LiYu Könnten Sie entweder die Antwort akzeptieren oder erklären, warum es nicht für Sie funktioniert, damit es verbessert werden kann? Vielen Dank. – zero323