Spark ML 2.0 - оценочные метрики доступны с использованием библиотек spark.ml, аналогичных spark.ml lib
Мы используем модель RandomForest, которая создает 3 классификатора, и мы хотим рассчитать AUC для использования для оценки нашей модели, помимо использования точности
Будет ли подход, если мы используем spark.ml? В настоящее время мы вызываем MulticlassClassificationEvaluator и используем метрическую точность. В списках он не имеет auc как часть этого, но только следующее: metrics:
* param for metric name in evaluation (supports `"f1"` (default), `"weightedPrecision"`,* `"weightedRecall"`, `"accuracy"`)
Интересно, есть ли примеры, как вычислить AUC для искры?
Мы работаем с Spark 2.0, и вот текущая настройка, которую мы выполняем, используя показатель точности
max_depth = model_params['max_depth']
num_trees = model_params['num_trees']
# Train a RandomForest model.
rf = RandomForestClassifier(labelCol="label", featuresCol="features", impurity = "gini",
featureSubsetStrategy="all", numTrees = num_trees, maxDepth = max_depth)
# Train model. This model fit is used for scoring future packages later.
model_fit = rf.fit(training_data)
# Make predictions.
transformed = model_fit.transform(test_data)
# Calculate and show the confusion matrix on test data if indicated
if model_params['calc_matrix'] is True:
# Select (prediction, true label) and compute test error
evaluator = MulticlassClassificationEvaluator(labelCol="label",
predictionCol="prediction", metricName="accuracy")
accuracy = evaluator.evaluate(transformed)
print("RF Overall Accuracy = {}, numTrees = {}, maxDepth = {}".
format(accuracy, num_trees, max_depth))
1 ответ
Площадь под кривой (AUC) имеет смысл только для двоичных классификаторов, но вы используете MulticlassClassificationEvaluator (что подразумевает количество выходных классов> 2)
проверьте BinaryClassificationEvaluator
Если вы, однако, хотите построить мультиклассовый классификатор, вам нужна точность мультикласса