Os parâmetros de um modelo são estimados considerando a diferença entre o valor de treinamento e o valor previsto. Esse cálculo é realizado por uma função de perda (loss function) e o objetivo do estimador é minimizar essa função de perda.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# ============================================ # 6. AVALIAÇÃO DOS MODELOS # ============================================ def avaliar_modelo(y_true, y_pred, nome_modelo, conjunto): """Função para avaliar métricas do modelo""" r2 = r2_score(y_true, y_pred) rmse = np.sqrt(mean_squared_error(y_true, y_pred)) mae = mean_absolute_error(y_true, y_pred) mape = np.mean(np.abs((y_true - y_pred) / y_true)) * 100 print(f"\n{conjunto} - {nome_modelo}:") print(f" R² Score: {r2:.4f}") print(f" RMSE: R$ {rmse:,.2f}") print(f" MAE: R$ {mae:,.2f}") print(f" MAPE: {mape:.2f}%") return r2, rmse, mae, mape print("\n" + "=" * 60) print("AVALIAÇÃO DOS MODELOS") print("=" * 60) # Avaliando modelos print("\n📊 MODELO SEM NORMALIZAÇÃO:") r2_train_sem, rmse_train_sem, mae_train_sem, mape_train_sem = avaliar_modelo( y_train, y_pred_train_sem, "Linear Regression", "TREINO" ) r2_test_sem, rmse_test_sem, mae_test_sem, mape_test_sem = avaliar_modelo( y_test, y_pred_test_sem, "Linear Regression", "TESTE" ) print("\n📊 MODELO COM NORMALIZAÇÃO:") r2_train_com, rmse_train_com, mae_train_com, mape_train_com = avaliar_modelo( y_train, y_pred_train_com, "Linear Regression (com scaler)", "TREINO" ) r2_test_com, rmse_test_com, mae_test_com, mape_test_com = avaliar_modelo( y_test, y_pred_test_com, "Linear Regression (com scaler)", "TESTE" ) |
A Bússola do Aprendizado: O Papel das Métricas de Avaliação
Ensinar uma máquina a realizar tarefas envolve um processo de tentativa e erro. O modelo começa fazendo previsões aleatórias, mas precisa de um mecanismo para avaliar a qualidade desses palpites. As funções de perda e as métricas de avaliação oferecem exatamente essa ferramenta. Elas calculam a discrepância entre a saída prevista pelo modelo e o valor real esperado. Durante o treinamento, buscamos minimizar esse valor de perda, ajustando os parâmetros internos do modelo. Portanto, a função de perda funciona como uma bússola, indicando a direção que o algoritmo deve seguir para melhorar. A escolha da métrica correta, porém, representa um passo determinante para interpretar o desempenho final. Diferentes problemas exigem diferentes formas de medir o erro. Consequentemente, utilizar a métrica inadequada pode mascarar problemas e comprometer a confiabilidade do modelo.
MSE e MAE: Para Medir Erros em Regressões
Em problemas de regressão, onde prever um valor numérico contínuo é o objetivo, duas métricas se destacam. O mean_squared_error (MSE) calcula a média dos quadrados das diferenças entre os valores previstos e os reais. Por elevar os erros ao quadrado, essa métrica penaliza fortemente erros grandes, tornando-a mais sensível a outliers. Os desenvolvedores frequentemente a utilizam como função de perda durante o treinamento. Por outro lado, o mean_absolute_error (MAE) calcula a média dos valores absolutos das diferenças. Ele trata todos os erros de forma linear, sendo mais robusto a outliers. Para a avaliação final do modelo, muitos preferem o MAE quando os dados contêm valores discrepantes que não devem receber peso excessivo. A decisão entre um e outro depende, portanto, da presença e do tratamento desejado para esses pontos atípicos.
MAPE: Compreendendo o Erro Percentual
O mape (Mean Absolute Percentage Error) oferece outra perspectiva valiosa para regressão. Diferente do MSE e do MAE, que fornecem o erro na mesma unidade da variável alvo, o MAPE expressa o erro como uma porcentagem. Para calculá-lo, tiramos a média da diferença absoluta entre o valor real e o previsto, dividindo pelo valor real. Essa métrica se mostra extremamente útil para comunicar resultados a um público não técnico. “O modelo erra, em média, 5% para mais ou para menos” — essa frase exemplifica sua fácil interpretação. No entanto, precisamos ter cautela. O MAPE pode se tornar instável quando os valores reais são muito próximos de zero, pois ocorre uma divisão por um número muito pequeno. Ele se adequa melhor a conjuntos de dados onde a variável alvo mantém uma escala positiva e consistente.
R2 Score: Medindo a Qualidade do Ajuste
O r2_score, ou Coeficiente de Determinação, oferece uma perspectiva diferente sobre a qualidade do modelo de regressão. Em vez de medir a magnitude do erro, ele indica a proporção da variância dos dados que o modelo explica. O valor do R² geralmente varia entre 0 e 1. Um score de 1 significa que o modelo prevê perfeitamente todos os dados. Um score de 0 indica que o modelo não melhora a simples previsão pela média dos valores. Valores negativos também podem aparecer, sugerindo um modelo muito ruim. Essa métrica se mostra particularmente útil para comparar diferentes modelos e entender seu poder de capturar relações entre variáveis. Porém, adicionar variáveis irrelevantes ao modelo pode artificialmente elevar o R². Por essa razão, os profissionais frequentemente o utilizam em conjunto com outras métricas e técnicas de validação.
Será que é possível melhorar?
Uma tentativa é colocar mais dados de treinamento para aumentar a acurácia do modelo.