1

Ich benutze Spark 2 + Scala, um LogisticRegression basiertes binäres Klassifikationsmodell zu trainieren, und ich verwende import org.apache.spark.ml.classification.LogisticRegression, das ist die neue ml API in Spark 2. Wenn ich das Modell jedoch von AUROC evaluierte, Ich habe keine Möglichkeit gefunden, die Wahrscheinlichkeit (doppelt in 0-1) anstelle der binären Klassifizierung (0/1) zu verwenden. Dies wurde zuvor durch removeThreshold() erreicht, aber in ml.LogisticRegression fand ich kein ähnliches Verfahren. Also, gibt es einen Weg, das zu tun?Spark 2 logisticregression Entfernungsschwelle

Der Evaluator ich benutze ist

val evaluator = new BinaryClassificationEvaluator() 
    .setLabelCol("label") 
    .setRawPredictionCol("rawPrediction") 
    .setMetricName("areaUnderROC") 
val auroc = evaluator.evaluate(predictions)` 
+0

Eigentlich sieht es so aus, wenn setRawPredictionCol auf Wahrscheinlichkeit, Es sollte Wahrscheinlichkeit anstelle von Vorhersage verwenden. Kann das jemand bestätigen? –

Antwort

0

wenn u andere Wahrscheinlichkeit Ausgabe erhalten möchten als 0/1 Ausgang dieses versuchen:

import org.apache.spark.ml.classification.{BinaryLogisticRegressionSummary, LogisticRegression} 
val lr = new LogisticRegression() 
    .setMaxIter(100) 
    .setRegParam(0.3) 
val lrModel = lr.fit(trainData) 
val summary = lrModel.summary 
summary.predictions.select("probability").show() 
+0

Auf diese Weise, wo sind die Testdaten? –

Verwandte Themen