SparkML - Получение нескольких показателей одновременно с RegressionEvaluator () - PullRequest
0 голосов
/ 17 сентября 2018

Я пытаюсь оценить модель регрессии с градиентным деревом, используя RegressionEvaluator (). Я хотел бы сравнить четыре возможных показателя для этого оценщика :

  • RMSE
  • мсье
  • r2
  • 1012 * Мэ *

Вот как я сейчас подхожу к задаче.

//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, который уже должен содержать четыре метрики, которые я ищу. Но неясно, как получить доступ к этим метрикам из оценщика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...