9

Wie kann ich die Pearson-Kreuzkorrelationsmatrix großer (> 10 TB) Datensätze möglicherweise in verteilter Weise berechnen? Jeder effiziente verteilte Algorithmusvorschlag wird geschätzt.Verteilte Kreuzkorrelationsmatrixberechnung

Update: las ich die Implementierung von Apache Funke mlib Korrelation

Pearson Computaation: 
/home/d066537/codespark/spark/mllib/src/main/scala/org/apache/spark/mllib/stat/correlation/Correlation.scala 
Covariance Computation: 
/home/d066537/codespark/spark/mllib/src/main/scala/org/apache/spark/mllib/linalg/distributed/RowMatrix.scala 

aber für mich sieht es aus wie die alle Berechnung an einem Knoten geschieht, und es wird in eigentlichen Sinne nicht verteilt.

Bitte etwas Licht hier reinstecken. Ich habe auch versucht es auf einem 3 Knoten Funken Cluster ausgeführt wird und unten sind die Screenshot:

Entire Computation timeline One the task details

Wie Sie vom 2. Bild sehen können, dass die Daten an einem Knoten hochgezogen und dann erfolgt die Berechnung wird. Bin ich hier drin?

Antwort

5

Um zu beginnen, werfen Sie einen Blick auf this, um zu sehen, ob die Dinge richtig laufen. Sie können sich dann auf eine dieser Implementierungen beziehen: MPI/OpenMP: Agomezl oder Meismyles, MapReduce: Vangjee oder Seawolf42. Es wäre auch interessant, this zu lesen, bevor Sie fortfahren. Eine andere Anmerkung: James's thesis enthält einige Hinweise, wenn Sie die für Ausreißer robusten Korrelationen berechnen möchten.

+0

Danke, dass Sie mich auf die James Thesis hingewiesen haben. Es wäre großartig, wenn Sie dies auch beantworten können: http://StackOverflow.com/Questions/42428424/How-to-Calculate-Mean-of-Distributed-Data –

+0

James These spricht über Maronna und Quadrant Kovarianz Berechnung, aber ich konnte nicht in der Lage, diese 2 Algorithmen zu verstehen, kennen Sie einen Link, wo diese 2 Algorithmen erklärt werden. –