10. Avaliação do Modelo KNN
A avaliação do modelo KNN é feita com os dados de teste, utilizando métricas de acurácia, relatório de classificação e matriz de confusão.
from sklearn.metrics import accuracy_score, classification_report, confusion_matrix
import seaborn as sns
import matplotlib.pyplot as plt
y_pred = knn.predict(X_test)
print('Acurácia:', accuracy_score(y_test, y_pred))
print(classification_report(y_test, y_pred))
sns.heatmap(confusion_matrix(y_test, y_pred), annot=True, fmt='d')
plt.xlabel('Predito')
plt.ylabel('Real')
plt.savefig('imagens/matriz_confusao_knn.png')
plt.show()
O desempenho do modelo pode ser comparado com o da árvore de decisão para verificar qual abordagem é mais eficaz para este problema.
Classe | Precision | Recall | F1-score | Suporte |
---|---|---|---|---|
0 | 0.80 | 0.76 | 0.78 | 100 |
1 | 0.77 | 0.81 | 0.79 | 100 |
Média | 0.78 | 0.78 | 0.78 | 200 |
Acurácia: 0.78
Predito 0 | Predito 1 | |
---|---|---|
Real 0 | 76 | 24 |
Real 1 | 19 | 81 |
- O modelo apresenta boa acurácia e equilíbrio entre precisão e recall.
- Erra mais ao prever alunos reprovados do que aprovados.
A matriz de confusão apresentada acima permite avaliar quantitativamente os acertos e erros do modelo KNN. Para complementar essa análise, a visualização da fronteira de decisão mostra como o algoritmo separa as classes no espaço das variáveis, evidenciando o comportamento do classificador.
Fronteira de Decisão do KNN
O gráfico acima mostra como o modelo KNN separa as classes com base em duas variáveis categóricas. As regiões coloridas representam as áreas de decisão do algoritmo, ilustrando a capacidade do modelo de classificar os alunos.