Ich beginne gerade mit ML und Apache Spark, also habe ich die lineare Regression basierend auf den Spark-Beispielen getestet. Ich kann nicht scheinen, ein richtiges Modell für irgendwelche Daten außer dem Beispiel in dem Beispiel zu erzeugen, und der Schnittpunkt ist immer 0.0, unabhängig von den Eingabedaten.
Ich habe einen einfachen Trainingsdatensatz basierend auf der Funktion vorbereitet:
y = (2 · x1) + (3 · x2) + 4
d. Ich würde erwarten, dass der Schnittpunkt 4 ist und die Gewichte (2, 3).
Wenn ich LinearRegressionWithSGD.train (...) für die Rohdaten verwende, lautet das Modell:
%Vor%Und die Vorhersagen sind alle NaN:
%Vor%usw.
Wenn ich die Daten zuerst skaliere, bekomme ich:
%Vor%usw.
Entweder mache ich etwas falsch, oder ich verstehe nicht, was die Ausgabe von diesem Modell sein soll, also kann jemand vorschlagen, wo ich hier vielleicht falsch liege?
Mein Code ist unten:
%Vor%@Noah: Danke - Ihr Rat hat mich dazu veranlasst, mir das nochmal anzusehen, und ich fand hier ein Beispielcode , mit dem Sie den Schnittpunkt generieren und auch andere Parameter wie die Anzahl der Iterationen über den Optimierer festlegen können.
Hier ist mein überarbeiteter Code zur Modellgenerierung, der auf meinen Dummy-Daten OK zu sein scheint:
%Vor%Es scheint immer noch, skalierte Daten zu benötigen, anstatt die rohen Daten als Eingabe, aber das ist für meine Zwecke hier in Ordnung.
Tags und Links scala apache-spark apache-spark-mllib