Ich habe den folgenden Code:Wie Vorhersage-Score bei der Schaffung von ROC-Kurve mit verwenden Scikit-Learn
from sklearn.metrics import roc_curve, auc
actual = [1,1,1,0,0,1]
prediction_scores = [0.9,0.9,0.9,0.1,0.1,0.1]
false_positive_rate, true_positive_rate, thresholds = roc_curve(actual, prediction_scores, pos_label=1)
roc_auc = auc(false_positive_rate, true_positive_rate)
roc_auc
# 0.875
die Interpretation von prediction_scores
In diesem Beispiel nämlich einfach ist, die höher die Punktzahl desto sicherer die Vorhersage ist.
Jetzt habe ich eine andere Reihe von Vorhersage Vorhersage Punktzahlen. Es ist nicht gebrochen, und die Interpretation ist umgekehrt. Das heißt, die unteren der Score ist sicherer die Vorhersage ist.
prediction_scores_v2 = [10.3,10.3,10.2,10.5,2000.34,2000.34]
# so this is equivalent
Meine Frage ist: wie kann ich skalieren, dass in prediction_scores_v2
so dass es Ähnliche AUC-Score wie die ersten gibt?
Um es anders auszudrücken, Scikit's ROC_CURVE die y_score
erfordertWahrscheinlichkeitsschätzungen der positiven Klasse. Wie kann ich den Wert behandeln, wenn die y_score
Ich habe Wahrscheinlichkeitsschätzungen der falschen Klasse?
Ich bin mir nicht sicher, was Sie fragen. Was repräsentieren Ihre neuen Vorhersagewerte? – BrenBarn
@BrenBarn: Sie können es als die "Umkehrung" des Vertrauens sehen. – neversaint
In welchem Sinne? Sie generieren die AUC aus bestimmten Informationen, nämlich der Falsch-Positiv-Rate und der echten Positivrate für verschiedene Diskriminierungsschwellen. Sie können nicht einfach willkürliche Zahlen nehmen und daraus eine AUC berechnen. Sie müssen erklären, was diese Zahlen darstellen, statistisch/mathematisch gesprochen. – BrenBarn