Es gibt einen Teil des Codes unten; Ich würde gerne wissen, wie ich meine Prognose bewerten kann? Wenn ich die Wichtigkeit meiner Funktion wissen möchte gibt es einen Trick, um die featureImportances von RandomForestRegressionModel zu verwenden? Sollte ich direkt zu einem RandomForestRegressionModel wechseln und keinen PipelineModel verwenden?Meine Prognose mit einem Pipeline-Modell auswerten
Ich habe gelesen, dass die Verwendung einer Pipeline bessere Ergebnisse liefern könnte, deshalb verwende ich es. Ich versuchte mit einer RegressionEvaluator, aber ich bekomme nicht, was ich will.
Oder sollte ich einfach denken und meinen DataFrame zu einem RDD konvertieren und den RegressionMetrics verwenden, um den mittleren quadratischen Fehler zu erhalten.
Zusammenfassend muss ich nur wissen, was die beste Methode ist, um meine Prognose zu bewerten.
val assembler = new VectorAssembler()
.setInputCols(Array("customers", "year", "month", "dayOfMonth", "dayOfWeek", "weekOfYear", "dayOfYear"))
.setOutputCol("features")
val limitDate = "2017-04-01"
val trainingData = DF_2.filter(DF_2("time").lt(lit(limitDate)))
//trainingData.printSchema()
val rf = new RandomForestRegressor()
.setNumTrees(60)
.setMaxDepth(25)
.setMaxBins(100)
.setLabelCol("amount")
.setFeaturesCol("features")
val pipeline = new Pipeline().setStages(Array(assembler, rf))
//Train the model
val model = pipeline.fit(trainingData)
//Make predictions
val predictions = model.transform(DF_2)