Я пытаюсь оценить модель регрессии с градиентным деревом, используя RegressionEvaluator (). Я хотел бы сравнить четыре возможных показателя для этого оценщика :
Вот как я сейчас подхожу к задаче.
//PREDICTION AND METRICS FOR GBT
val predictions = cvGBTModel.transform(test)
//Root Mean Squared Error
val evaluatorRMSE = new RegressionEvaluator()
.setLabelCol("label")
.setPredictionCol("prediction")
.setMetricName("rmse");
val rmse = evaluatorRMSE.evaluate(predictions);
//Mean Squared Error
val evaluatorMSE = new RegressionEvaluator()
.setLabelCol("label")
.setPredictionCol("prediction")
.setMetricName("mse");
val mse = evaluatorMSE.evaluate(predictions);
//Regression through the origin
val evaluatorR2 = new RegressionEvaluator()
.setLabelCol("label")
.setPredictionCol("prediction")
.setMetricName("r2");
val r2 = evaluatorR2.evaluate(predictions);
//Mean absolute error
val evaluatorMAE = new RegressionEvaluator()
.setLabelCol("label")
.setPredictionCol("prediction")
.setMetricName("mae");
val mae = evaluatorMAE.evaluate(predictions);
print("Root Mean Squared Error (RMSE) on test data = " + rmse);
print("Mean squared error (MSE) on test data = " + mse);
print("Regression through the origin(R2) on test data = " + r2);
print("Mean absolute error (MAE) on test data = " + mae);
Можно ли получить четыре показателя одновременно без запуска 4 разных оценщиков?
Кроме того, я нашел похожий вопрос , где пользователь обнаружил, что RegressionEvaluator реализован с помощью RegressionMetrics, который уже должен содержать четыре метрики, которые я ищу. Но неясно, как получить доступ к этим метрикам из оценщика.