2017-01-18 1 views
2

Я использую Spark 2.0.2. Я также использую библиотеку «мл» для машинного обучения с наборами данных. То, что я хочу сделать, это запустить алгоритмы с перекрестной проверкой и извлечь указанные показатели (точность, точность, отзыв, ROC, матрица замешательства). Мои метки данных двоичные.Как получить точность точности, вспомнить и ROC от перекрестной проверки в Spark ml lib?

Используя MulticlassClassificationEvaluator, я могу получить точность алгоритма, обратившись к «avgMetrics». Кроме того, используя BinaryClassificationEvaluator, я могу получить область под ROC. Но я не могу использовать их обоих. Итак, есть ли способ, чтобы я мог извлечь все нужные показатели?

ответ

0

Вы можете следующим образом Руководство по оценке оценки от Apache Spark. Документ предоставил все оценки показателей, включая

  • Precision (положительная прогностическая ценность), Recall (True Позитивное Rate), F-мера, Receiver Operating характеристика (ROC), площадь под ROC кривой, площадь под Прецизионная кривая.

Вот ссылка: https://spark.apache.org/docs/latest/mllib-evaluation-metrics.html

+2

спасибо, но это РДД-Based и он использует «mllib "библиотека. Я работаю с dataframes и наборами данных и "ml" lib. – user3309479

+0

О, извините за это. Проверьте это [link] (https://www.mapr.com/blog/predicting-breast-cancer-using-apache-spark-machine-learning-logistic-regression), может быть, вы что-то получите. Я не очень хорошо знаком с мл. – Darshan

0

Пытались использовать MLlib, чтобы оценить результат.

Я преобразовал набор данных для РДА, а затем использовал MulticlassMetrics в MLlib

Вы можете посмотреть демо здесь: Spark DecisionTreeExample.scala

private[ml] def evaluateClassificationModel(
     model: Transformer, 
     data: DataFrame, 
     labelColName: String): Unit = { 
    val fullPredictions = model.transform(data).cache() 
    val predictions = fullPredictions.select("prediction").rdd.map(_.getDouble(0)) 
    val labels = fullPredictions.select(labelColName).rdd.map(_.getDouble(0)) 
    // Print number of classes for reference. 
    val numClasses = MetadataUtils.getNumClasses(fullPredictions.schema(labelColName)) match { 
     case Some(n) => n 
     case None => throw new RuntimeException(
     "Unknown failure when indexing labels for classification.") 
    } 
    val accuracy = new MulticlassMetrics(predictions.zip(labels)).accuracy 
    println(s" Accuracy ($numClasses classes): $accuracy") 
    } 
+0

большое спасибо – user3309479

Смежные вопросы