Précision du train vs précision du test vs matrice de confusion


11

Après avoir développé mon modèle prédictif à l'aide de Random Forest, j'obtiens les mesures suivantes:

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

Voici les résultats de ce code:

  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)

Cependant, je deviens un peu confus pour interpréter et expliquer ces valeurs.

Que me disent exactement ces 3 mesures sur mon modèle?

Merci!


Juste pour être clair, ici votre matrice de confusion (et en général) lorsqu'elle est rapportée est basée sur des données de test. Parce que vous pouvez l'avoir même pour les données d'entraînement sur lesquelles vous avez construit le mode.
TwinPenguins

J'ai quelques doutes pour calculer ces mesures. Pourquoi pour Train Accuracy mettre: (training_target, formé_model.predict (training_features) et non (training_target, formé_model.predict (test_target)?
Pedro Alves

La précision juste pour la classe 1 est de 77/94?
Pravin

Réponses:


19

Définitions

  • Précision: le nombre de classifications correctes / le nombre total de classifications.
  • La précision du train: la précision d'un modèle sur des exemples sur lesquels il a été construit.
  • La précision du test est la précision d'un modèle sur des exemples qu'il n'a pas vus.
  • Matrice de confusion: tabulation de la classe prédite (généralement verticalement) par rapport à la classe réelle (donc horizontalement).

Sur-ajustement

Ce que je dirais de vos résultats, c'est que votre modèle est trop adapté . Vous pouvez le constater grâce à la grande différence de précision entre le test et la précision du train. Le sur-ajustement signifie qu'il a appris des règles spécifiques au train, ces règles ne se généralisent pas bien au-delà du train.

Votre matrice de confusion nous indique à quel point elle est trop adaptée, car votre classe la plus importante représente plus de 90% de la population. En supposant que votre test et votre ensemble de trains aient une distribution similaire, tout modèle utile devrait avoir une précision de plus de 90%: un simple modèle 0R le ferait. Votre modèle marque un peu moins de 80% sur l'ensemble de test.

Regard sur la matrice de confusion

Si vous regardiez la matrice de confusion relativement (en pourcentages), cela ressemblerait à ceci:

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

Vous pouvez déduire du total de la première ligne que votre modèle prédit la classe 1 81% du temps, tandis que l'occurrence réelle de la classe 1 est de 94%. Par conséquent, votre modèle sous-estime cette classe. Il se peut qu'il ait appris des règles spécifiques (complexes) sur le train, qui fonctionnent contre vous dans le jeu de test.

Il convient également de noter que même si les faux négatifs de la classe 1 (17% -point, ligne 2, colonne 1)) nuisent le plus à vos performances globales, les faux négatifs de la classe 2 (4% -point, ligne 1 colonne 2) sont en fait plus courants par rapport à la population totale des classes respectives (94%, 6%). Cela signifie que votre modèle est mauvais pour prédire la classe 1 , mais encore pire pour prédire la classe 2 . La précision juste pour la classe 1 est 77/99 tandis que la précision pour la classe 2 est 2/6.


1
A voté pour une bonne réponse. Peut-être qu'à des fins éducatives, ce serait mieux si vous pouviez élaborer sur "combien il est trop adapté" sur la base des éléments réels de la matrice de confusion. Je suis également curieux d'en savoir plus.
TwinPenguins

1
J'ai ajouté un regard plus approfondi, faites-moi savoir si c'est ce que vous recherchez.
S van Balen

Ainsi, par exemple lorsque je reçois ce matirx de confusion: Précision du train :: 0.8147735305312381 Précision du test :: 0.8086616099828725 Matrice de confusion [[9870 16] [2330 45]] Il est dit que mon modèle n'a qu'une précision de 73%
Pedro Alves

Cette matrice de confusion correspondrait à la précision de votre test. (9870 + 45) / (9870 + 2330 + 16 + 45) = 0,80866161
S van Balen
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.