Ich habe zwei Modelle trainiert (binäre Klassifikatoren mit h2o AutoML) und möchte eines zur Verwendung auswählen. Ich habe folgende Ergebnisse:
model_id auc logloss logloss_train logloss_valid gini_train gini_valid
DL_grid_1 0.542694 0.287469 0.092717 0.211956 0.872932 0.312975
DL_grid_2 0.543685 0.251431 0.082616 0.186196 0.900955 0.312662
Die Spalten auc
und logloss
sind die Kreuzvalidierungsmetriken (bei der Kreuzvalidierung werden nur die Trainingsdaten verwendet). Die Metriken ..._train
und ..._valid
werden ermittelt, indem die Trainings- und Validierungsmetriken durch die Modelle ausgeführt werden. Ich möchte entweder das logloss_valid
oder das verwenden gini_valid
, um das beste Modell auszuwählen.
Modell 1 hat einen besseren Gini (dh eine bessere AUC), aber Modell zwei hat einen besseren Logloss. Meine Frage ist, welche ich wählen soll, was meiner Meinung nach die Frage aufwirft, welche Vor- und Nachteile es hat, entweder Gini (AUC) oder Logloss als Entscheidungsmetrik zu verwenden.
Antworten:
Während die AUC in Bezug auf die binäre Klassifizierung mit einer variierenden Entscheidungsschwelle berechnet wird, berücksichtigt der Protokollverlust tatsächlich die "Sicherheit" der Klassifizierung.
Nach meinem Verständnis geht logloss konzeptionell über die AUC hinaus und ist insbesondere in Fällen mit unausgeglichenen Daten oder bei ungleich verteilten Fehlerkosten (z. B. Erkennung einer tödlichen Krankheit) relevant.
Zusätzlich zu dieser sehr einfachen Antwort möchten Sie vielleicht einen Blick auf die Optimierung von auc vs logloss bei Problemen mit der binären Klassifizierung werfen
Ein einfaches Beispiel für die Berechnung des Protokollverlusts und das zugrunde liegende Konzept wird in dieser aktuellen Frage erläutert. Die Funktion "Protokollverlust" in scikit-learn gibt unterschiedliche Werte zurück
Darüber hinaus wurde beim Stackoverflow ein sehr guter Punkt hervorgehoben
quelle