Zuggenauigkeit vs Testgenauigkeit vs Verwirrungsmatrix

11

Nachdem ich mein Vorhersagemodell mit Random Forest entwickelt habe, erhalte ich die folgenden Metriken:

        Train Accuracy ::  0.9764634601043997
        Test Accuracy  ::  0.7933284397683713
         Confusion matrix  [[28292  1474]
                            [ 6128   889]]

Dies ist das Ergebnis dieses Codes:

  training_features, test_features, training_target, test_target, = train_test_split(df.drop(['bad_loans'], axis=1),
                                                  df['target'],
                                                  test_size = .3,
                                                  random_state=12)
clf = RandomForestClassifier()
trained_model = clf.fit(training_features, training_target)
trained_model.fit(training_features, training_target)
predictions = trained_model.predict(test_features)      

Train Accuracy: accuracy_score(training_target, trained_model.predict(training_features))
Test Accuracy: accuracy_score(test_target, predictions)
Confusion Matrix: confusion_matrix(test_target, predictions)

Ich bin jedoch etwas verwirrt, diese Werte zu interpretieren und zu erklären.

Was genau sagen mir diese 3 Maßnahmen über mein Modell?

Vielen Dank!

Pedro Alves
quelle
Um ganz klar zu sein, hier basiert Ihre Verwirrungsmatrix (und im Allgemeinen), wenn sie gemeldet wird, auf Testdaten. Weil Sie es sogar für Trainingsdaten haben könnten, auf denen Sie den Modus aufgebaut haben.
TwinPenguins
Ich habe einige Zweifel, um diese Maßnahmen zu berechnen. Warum für Zuggenauigkeit setzen: (training_target, trainiertes_model.predict (training_features) und nicht (training_target, trainiertes_model.predict (test_target)?
Pedro Alves
Die Genauigkeit nur für Klasse 1 beträgt 77/94?
Pravin

Antworten:

19

Definitionen

  • Genauigkeit: Die Anzahl der korrekten Klassifizierungen / die Gesamtanzahl der Klassifizierungen.
  • Die Zuggenauigkeit: Die Genauigkeit eines Modells anhand von Beispielen, auf denen es aufgebaut wurde.
  • Die Testgenauigkeit ist die Genauigkeit eines Modells anhand von Beispielen, die es nicht gesehen hat.
  • Verwirrungsmatrix: Eine Tabelle der vorhergesagten Klasse (normalerweise vertikal) gegen die tatsächliche Klasse (also horizontal).

Überanpassung

Was ich aus Ihren Ergebnissen machen würde, ist, dass Ihr Modell überpasst . Das können Sie an dem großen Unterschied in der Genauigkeit zwischen Test- und Zuggenauigkeit erkennen. Überanpassung bedeutet, dass Regeln speziell für den Zugsatz gelernt wurden. Diese Regeln verallgemeinern sich nicht weit über den Zugsatz hinaus.

Ihre Verwirrungsmatrix sagt uns, wie viel Überanpassung es ist, weil Ihre größte Klasse über 90% der Bevölkerung ausmacht. Unter der Annahme, dass Ihr Test- und Zugsatz eine ähnliche Verteilung aufweist, müsste jedes nützliche Modell eine Genauigkeit von mehr als 90% erreichen: Ein einfaches 0R-Modell würde dies tun. Ihr Modell erreicht im Testsatz knapp 80%.

Schauen Sie sich die Verwirrungsmatrix genauer an

Wenn Sie die Verwirrungsmatrix relativ (in Prozent) betrachten würden, würde dies folgendermaßen aussehen:

               Actual    TOT
               1    2
Predicted 1 | 77% | 4% | 81%  
Predicted 2 | 17% | 2% | 19%
TOT         | 94% | 6% |

Sie können aus der Summe in der ersten Zeile schließen, dass Ihr Modell in 81% der Fälle Klasse 1 vorhersagt , während das tatsächliche Auftreten von Klasse 1 94% beträgt. Daher unterschätzt Ihr Modell diese Klasse. Es kann sein, dass es bestimmte (komplexe) Regeln am Zugsatz gelernt hat, die im Testsatz gegen Sie arbeiten.

Es könnte auch erwähnenswert sein, dass die falschen Negative der Klasse 2 (4% -Punkt, Spalte 1 , obwohl die falschen Negative der Klasse 1 (17% -Punkt, Zeile 2, Spalte 1)) Ihre Gesamtleistung am meisten beeinträchtigen 2) sind tatsächlich häufiger in Bezug auf die Gesamtbevölkerung der jeweiligen Klassen (94%, 6%). Dies bedeutet, dass Ihr Modell Klasse 1 schlecht vorhersagen kann , aber noch schlechter Klasse 2 vorhersagen kann . Die Genauigkeit nur für Klasse 1 beträgt 77/99, während die Genauigkeit für Klasse 2 beträgt 2/6 beträgt.

S van Balen
quelle
1
Für eine gute Antwort gestimmt. Vielleicht wäre es für Bildungszwecke besser, wenn Sie anhand der tatsächlichen Elemente der Verwirrungsmatrix erläutern könnten, wie viel Überanpassung erforderlich ist. Ich bin auch neugierig, mehr zu erfahren.
TwinPenguins
1
Ich habe einen tieferen Blick hinzugefügt. Lassen Sie mich wissen, ob dies das ist, wonach Sie suchen.
S van Balen
Wenn ich zum Beispiel diese Verwirrungsmatirx bekomme: Zuggenauigkeit :: 0.8147735305312381 Testgenauigkeit :: 0.8086616099828725 Verwirrungsmatrix [[9870 16] [2330 45]] Es heißt, dass mein Modell nur eine Genauigkeit von 73% hat
Pedro Alves
Diese Verwirrungsmatrix würde Ihrer Testgenauigkeit entsprechen. (9870 + 45) / (9870 + 2330 + 16 + 45) = 0,80866161
S van Balen