【发布时间】:2018-07-02 09:02:48
【问题描述】:
是否可以在 Apache Spark 的多类分类问题中找到错误指标(精度和召回率)。我正在使用 Spark 的 MlLib 中的逻辑回归来构建我的模型,并希望使用错误指标来评估我的模型。
【问题讨论】:
标签: apache-spark apache-spark-mllib logistic-regression multiclass-classification
是否可以在 Apache Spark 的多类分类问题中找到错误指标(精度和召回率)。我正在使用 Spark 的 MlLib 中的逻辑回归来构建我的模型,并希望使用错误指标来评估我的模型。
【问题讨论】:
标签: apache-spark apache-spark-mllib logistic-regression multiclass-classification
假设你的测试数据在test
import org.apache.spark.mllib.classification.LogisticRegressionWithLBFGS import org.apache.spark.mllib.evaluation.MulticlassMetrics import org.apache.spark.mllib.regression.LabeledPoint import org.apache.spark.mllib.util.MLUtils val predictionAndLabels = test.map { case LabeledPoint(label, features) => val prediction = model.predict(features) (prediction, label) } val metrics = new MulticlassMetrics(predictionAndLabels)混淆矩阵
println("Confusion matrix:") println(metrics.confusionMatrix)总体统计
val accuracy = metrics.accuracy println("Summary Statistics") println(s"Accuracy = $accuracy")标签精度
val labels = metrics.labels labels.foreach { l => println(s"Precision($l) = " + metrics.precision(l)) }按标签召回
labels.foreach { l => println(s"Recall($l) = " + metrics.recall(l)) }标签的误报率
labels.foreach { l => println(s"FPR($l) = " + metrics.falsePositiveRate(l)) }F-按标签测量
labels.foreach { l => println(s"F1-Score($l) = " + metrics.fMeasure(l)) }加权统计
println(s"Weighted precision: ${metrics.weightedPrecision}") println(s"Weighted recall: ${metrics.weightedRecall}") println(s"Weighted F1 score: ${metrics.weightedFMeasure}") println(s"Weighted false positive rate: ${metrics.weightedFalsePositiveRate}")
【讨论】:
MulticlassClassificationEvaluator 提供加权精度和召回率;还要检查docs for tuning