星火管道评估
Spark pipeline evaluation
如何在 spark pipeline 中获取 evaluator 的结果?
val evaluator = new BinaryClassificationEvaluator()
val cv = new CrossValidator()
.setEstimator(pipeline)
.setEvaluator(evaluator)
.setEstimatorParamMaps(paramGrid)
.setNumFolds(10)
转换操作的结果只包含标签、概率和预测。
有可能获得 "best model",但我更想获得评估指标。
这里 https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-mllib/spark-mllib-evaluators.html 他们展示了如何在没有管道的情况下使用求值器。
None的链接好像很有意思,用的是evaluator
。 https://benfradet.github.io/blog/2015/12/16/Exploring-spark.ml-with-the-Titanic-Kaggle-competition, here https://developer.ibm.com/spark/blog/2016/02/22/predictive-model-for-online-advertising-using-spark-machine-learning-pipelines/ or in the official examples https://github.com/apache/spark/blob/39e2bad6a866d27c3ca594d15e574a1da3ee84cc/examples/src/main/scala/org/apache/spark/examples/ml/ModelSelectionViaCrossValidationExample.scala是Evaluator最后显示的结果。
事实上,其中一个链接是手动计算指标的:
cvAccuracy = cvPrediction.filter(cvPrediction['label'] == cvPrediction['prediction']).count() / float(cvPrediction.count
我本希望获得性能倍数水平或可能是均值/方差的指标。
CrossValidatorModel
不仅包含跨折叠平均交叉验证指标最高的最佳模型 - 又名 bestModel
- 而且还包含评估的每个参数图的指标。
要获取这些,可以使用getEstimatorParamMaps
方法结合avgMetrics
,例如:
val cvModel = cv.fit(training)
cvModel.getEstimatorParamMaps.zip(cvModel.avgMetrics)
如何在 spark pipeline 中获取 evaluator 的结果?
val evaluator = new BinaryClassificationEvaluator()
val cv = new CrossValidator()
.setEstimator(pipeline)
.setEvaluator(evaluator)
.setEstimatorParamMaps(paramGrid)
.setNumFolds(10)
转换操作的结果只包含标签、概率和预测。
有可能获得 "best model",但我更想获得评估指标。
这里 https://jaceklaskowski.gitbooks.io/mastering-apache-spark/content/spark-mllib/spark-mllib-evaluators.html 他们展示了如何在没有管道的情况下使用求值器。
None的链接好像很有意思,用的是evaluator
。 https://benfradet.github.io/blog/2015/12/16/Exploring-spark.ml-with-the-Titanic-Kaggle-competition, here https://developer.ibm.com/spark/blog/2016/02/22/predictive-model-for-online-advertising-using-spark-machine-learning-pipelines/ or in the official examples https://github.com/apache/spark/blob/39e2bad6a866d27c3ca594d15e574a1da3ee84cc/examples/src/main/scala/org/apache/spark/examples/ml/ModelSelectionViaCrossValidationExample.scala是Evaluator最后显示的结果。
事实上,其中一个链接是手动计算指标的:
cvAccuracy = cvPrediction.filter(cvPrediction['label'] == cvPrediction['prediction']).count() / float(cvPrediction.count
我本希望获得性能倍数水平或可能是均值/方差的指标。
CrossValidatorModel
不仅包含跨折叠平均交叉验证指标最高的最佳模型 - 又名 bestModel
- 而且还包含评估的每个参数图的指标。
要获取这些,可以使用getEstimatorParamMaps
方法结合avgMetrics
,例如:
val cvModel = cv.fit(training)
cvModel.getEstimatorParamMaps.zip(cvModel.avgMetrics)