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!
python
predictive-modeling
accuracy
confusion-matrix
classifier
Pedro Alves
la source
la source
Réponses:
Définitions
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:
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.
la source