【发布时间】:2017-12-31 14:37:36
【问题描述】:
下面有一部分代码;我想知道如何评估我的预测? 如果,我想知道我的功能的重要性,有没有使用 RandomForestRegressionModel 的 featureImportances 的技巧?我应该直接切换到 RandomForestRegressionModel 而不是使用 PipelineModel 吗?
我读到使用管道可以提供更好的结果,这就是我使用它的原因。 我尝试使用RegressionEvaluator,但我没有得到我想要的。
或者我应该简单地考虑并将我的 DataFrame 转换为 RDD 并使用 RegressionMetrics 来获得均方误差。
总而言之,我只需要知道评估我的预测的最佳方法是什么。
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)
【问题讨论】:
标签: apache scala apache-spark-mllib random-forest databricks