Depois de desenvolver meu modelo preditivo usando a Floresta Aleatória, recebo as seguintes métricas:
Train Accuracy :: 0.9764634601043997
Test Accuracy :: 0.7933284397683713
Confusion matrix [[28292 1474]
[ 6128 889]]
Estes são os resultados deste código:
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)
No entanto, estou ficando um pouco confuso para interpretar e explicar esses valores.
O que exatamente essas três medidas me dizem sobre o meu modelo?
Obrigado!
python
predictive-modeling
accuracy
confusion-matrix
classifier
Pedro Alves
fonte
fonte
Respostas:
Definições
Sobreajuste
O que eu comporia dos seus resultados é que seu modelo está se ajustando demais . Você pode perceber isso pela grande diferença de precisão entre o teste e a precisão do trem. Sobreajustar significa que aprendeu regras especificamente para o conjunto de trens, essas regras não generalizam muito além do conjunto de trens.
Sua matriz de confusão nos diz o quanto ela é super ajustada, porque sua maior classe representa mais de 90% da população. Supondo que você teste e treine conjunto tenha uma distribuição semelhante, qualquer modelo útil teria que ter mais de 90% de precisão: um modelo 0R simples. Seu modelo obtém pouco menos de 80% no conjunto de testes.
Olhe em profundidade a matriz de confusão
Se você olhar para a matriz de confusão relativamente (em porcentagens), ficaria assim:
Você pode deduzir do total na primeira linha que seu modelo prediz a Classe 1 81% das vezes, enquanto a ocorrência real da Classe 1 é 94%. Portanto, seu modelo está subestimando essa classe. Pode ser que tenha aprendido regras específicas (complexas) no conjunto de trens, que funcionam contra você no conjunto de testes.
Também vale a pena notar que, embora os falsos negativos da Classe 1 (ponto de 17%, linha 2, coluna 1)) estejam prejudicando mais o seu desempenho geral, os falsos negativos da Classe 2 (coluna de 4%, linha 1) 2) são realmente mais comuns em relação à população total das respectivas classes (94%, 6%). Isso significa que seu modelo é ruim em prever a Classe 1 , mas ainda pior em prever a Classe 2 . A precisão apenas para a Classe 1 é 77/99 enquanto a precisão para a Classe 2 é 2/6.
fonte