Wie anzeigen-Funktionen aus der Ausgabe eines VectorAssembler zurück zu den Spaltennamen in der Funke ML?
Ich versuche, führen Sie eine lineare regression in PySpark und ich möchte erstellen Sie eine Tabelle mit Zusammenfassung der Statistiken, wie die Koeffizienten, P-Werte und t-Werte für jede Spalte in meinem Datensatz. Jedoch, um zu trainieren Sie eine lineare regression Modell ich hatte zum erstellen einer feature-Vektor mit Spark VectorAssembler
, und jetzt für jede Zeile ich habe einen einzigen feature-Vektor und dem target-Spalte.
Wenn ich versuche, Zugriff Funke ist in-built regression Zusammenfassung der Statistiken, Sie geben mir einen sehr rohen Liste von zahlen für jede dieser Statistiken, und es gibt keine Möglichkeit zu wissen, welches Attribut entspricht dem Wert, der wirklich schwierig ist, herauszufinden, manuell mit einer großen Anzahl von Spalten.
Wie kann ich die Karte diese Werte wieder zu den Spaltennamen?
Ich habe zum Beispiel meine aktuelle Ausgabe als so etwas wie dieses:
Koeffizienten: [-187.807832407,-187.058926726,85.1716641376,10595.3352802,-127.258892837,-39.2827730493,-1206.47228704,33.7078197705,99.9956812528]
P-Wert: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.18589731365614548, 0.275173571416679, 0.0]
t-Statistik: [-23.348593508995318, -44.72813283953004, 19.836508234714472, 144.49248881747755, -16.547272230754242, -9.560681351483941, -19.563547400189073, 1.3228378389036228, 1.0912415361190977, 20.383256127350474]
Koeffizient Standard-Fehler: [8.043646497811427, 4.182131353367049, 4.293682291754585, 73.32793120907755, 7.690626652102948, 4.108783841348964, 61.669402913526625, 25.481445101737247, 91.63478289909655, 609.7007361468519]
Diese zahlen bedeuten nichts, es sei denn, ich weiß, welches Attribut Sie entsprechen. Aber in meinem DataFrame
ich habe nur eine Spalte namens "features", die die Zeilen enthält, von sparse-Vektoren.
Dies ist ein immer größeres problem, wenn ich die one-hot codierten Funktionen, weil wenn ich eine variable mit einer Codierung der Länge n, bekomme ich n entsprechenden Koeffizienten/p-Werte, t-Werte etc.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Heute Spark bietet keine Methode, kann es für Sie tun, also, wenn Sie haben, um Ihre eigenen erstellen. Lassen Sie uns sagen, dass Ihre Daten sieht wie folgt aus:
verarbeitet wird folgende pipeline:
Holen Sie sich die
LinearRegressionModel
:Transformieren der Daten:
Extrahieren und glätten ML Attribute:
und anzeigen für die Ausgabe:
Sehen Sie die aktuelle Reihenfolge der Spalten hier
wird es zwei Klassen, die in der Regel, ["binary] & ["numeric"]
Sollte die genaue Reihenfolge aller Spalten
Hier ist die eine Zeile Antwort:
Dank @pratiklodha für den Kern dieser.