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!
python
predictive-modeling
accuracy
confusion-matrix
classifier
Pedro Alves
quelle
quelle
Antworten:
Definitionen
Ü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:
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.
quelle