es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Múltiples Evaluadores en CrossValidator – Spark ML

¿Es posible tener más de un evaluador en un CrossValidator para obtener R2 y RMSE al mismo tiempo?

En lugar de tener dos CrossValidator diferentes:

val lr_evaluator_rmse = new RegressionEvaluator()
                       .setLabelCol("ArrDelay")
                       .setPredictionCol("predictionLR")
                       .setMetricName("rmse")

val lr_evaluator_r2 = new RegressionEvaluator()
                     .setLabelCol("ArrDelay")
                     .setPredictionCol("predictionLR")
                     .setMetricName("r2")

val lr_cv_rmse = new CrossValidator()
                  .setEstimator(lr_pipeline)
                  .setEvaluator(lr_evaluator_rmse)
                  .setEstimatorParamMaps(lr_paramGrid)
                  .setNumFolds(3)
                  .setParallelism(3)

val lr_cv_r2 = new CrossValidator()
              .setEstimator(lr_pipeline)
              .setEvaluator(lr_evaluator_rmse)
              .setEstimatorParamMaps(lr_paramGrid)
              .setNumFolds(3)
              .setParallelism(3)

Algo como esto:

val lr_cv = new CrossValidator()
.setEstimator(lr_pipeline)
.setEvaluator(lr_evaluator_rmse)
.setEvaluator(lr_evaluator_r2)
.setEstimatorParamMaps(lr_paramGrid)
.setNumFolds(3)
.setParallelism(3)

Gracias de antemano.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, es posible tener más de un evaluador en un CrossValidator para obtener R2 y RMSE al mismo tiempo. Puede utilizar el siguiente código:

    val lr_cv = new CrossValidator()
        .setEstimator(lr_pipeline)
        .setEvaluator(lr_evaluator_rmse)
        .setEvaluator(lr_evaluator_r2)
        .setEstimatorParamMaps(lr_paramGrid)
        .setNumFolds(3)
        .setParallelism(3)
    

Comments are closed.