Comment puis-je obtenir le résultat de l'évaluateur dans un pipeline d'étincelles?Évaluation du pipeline Spark
val evaluator = new BinaryClassificationEvaluator()
val cv = new CrossValidator()
.setEstimator(pipeline)
.setEvaluator(evaluator)
.setEstimatorParamMaps(paramGrid)
.setNumFolds(10)
Le résultat de l'opération de transformation ne contiennent que les étiquettes, des probabilités et des prévisions.
Il est possible d'obtenir un "meilleur modèle" mais je serais plutôt intéressé à obtenir les mesures d'évaluation.
Ici, ils montrent comment utiliser un évaluateur sans pipeline. Aucun des liens très intéressants semblent utiliser le evaluator
. https://benfradet.github.io/blog/2015/12/16/Exploring-spark.ml-with-the-Titanic-Kaggle-competition, ici https://developer.ibm.com/spark/blog/2016/02/22/predictive-model-for-online-advertising-using-spark-machine-learning-pipelines/ ou dans les exemples officiels https://github.com/apache/spark/blob/39e2bad6a866d27c3ca594d15e574a1da3ee84cc/examples/src/main/scala/org/apache/spark/examples/ml/ModelSelectionViaCrossValidationExample.scala est le résultat de l'évaluateur affiché enfin.
En fait l'un des liens calcule la métrique à la main:
cvAccuracy = cvPrediction.filter(cvPrediction['label'] == cvPrediction['prediction']).count()/float(cvPrediction.count
Je me serais attendu à obtenir les mesures sur un niveau de repli de perf ou peut-être une moyenne/variance.
vous êtes intéressé par la mesure de la performance par 'valeur paramGrid'? – mtoto
Sorte de. Je veux vérifier si le paramétrage A ou l'algorithme B est meilleur qu'un autre paramètre/algorithme. –