Métricas
Deslize para mostrar o menu
Ao construir um modelo, é necessário um métrico que meça o quão bem ele se ajusta aos dados. Uma métrica fornece um valor numérico que descreve o desempenho do modelo. Neste capítulo, o foco está nas métricas mais comuns.
Será utilizada a seguinte notação:
Já estamos familiarizados com uma métrica, SSR (Soma dos Resíduos Quadrados), que minimizamos para identificar os parâmetros ideais.
Usando nossa notação, podemos expressar a fórmula do SSR da seguinte forma:
ou igualmente:
Essa métrica funciona apenas quando os modelos utilizam o mesmo número de pontos de dados. Ela não indica o quão bem um modelo realmente se desempenha. Imagine dois modelos treinados em conjuntos de dados de tamanhos diferentes.
O primeiro modelo se ajusta melhor visualmente, mas possui um SSR maior porque tem mais pontos, então a soma aumenta mesmo com resíduos médios menores. Utilizar a média dos resíduos ao quadrado resolve isso — o Erro Quadrático Médio (MSE).
MSE
ou igualmente:
Calcular o MSE usando NumPy:
mse = np.mean((y_true - y_pred)**2)
Ou Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
O MSE é elevado ao quadrado, o que dificulta a interpretação. Se o MSE for 49 dólares², queremos o erro em dólares. Tirando a raiz, obtemos 7 — o Erro Quadrático Médio da Raiz (RMSE).
RMSE
Calcule o RMSE usando:
rmse = np.sqrt(np.mean((y_true - y_pred)**2))
Ou Scikit-learn:
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Em vez de elevar os resíduos ao quadrado, podemos tomar seus valores absolutos — isso resulta no Erro Absoluto Médio (MAE).
ou igualmente
MAE se comporta de forma semelhante ao MSE, mas trata grandes erros de maneira mais suave. Por utilizar valores absolutos, é mais robusto a outliers, sendo útil quando valores extremos distorcem o conjunto de dados.
Calcular MAE:
mae = np.mean(np.fabs(y_true - y_pred))
Ou:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
SSR nos ajudou a derivar a Equação Normal, mas qualquer métrica pode ser usada ao comparar modelos.
SSR, MSE e RMSE sempre classificam os modelos da mesma forma, enquanto MAE pode preferir um diferente porque penaliza menos os grandes erros. É importante escolher uma métrica previamente e otimizar especificamente para ela.
Agora você certamente pode afirmar que o segundo modelo é melhor, já que todas as suas métricas são menores. No entanto, métricas mais baixas nem sempre significam que o modelo é melhor.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Métricas
Ao construir um modelo, é necessário um métrico que meça o quão bem ele se ajusta aos dados. Uma métrica fornece um valor numérico que descreve o desempenho do modelo. Neste capítulo, o foco está nas métricas mais comuns.
Será utilizada a seguinte notação:
Já estamos familiarizados com uma métrica, SSR (Soma dos Resíduos Quadrados), que minimizamos para identificar os parâmetros ideais.
Usando nossa notação, podemos expressar a fórmula do SSR da seguinte forma:
ou igualmente:
Essa métrica funciona apenas quando os modelos utilizam o mesmo número de pontos de dados. Ela não indica o quão bem um modelo realmente se desempenha. Imagine dois modelos treinados em conjuntos de dados de tamanhos diferentes.
O primeiro modelo se ajusta melhor visualmente, mas possui um SSR maior porque tem mais pontos, então a soma aumenta mesmo com resíduos médios menores. Utilizar a média dos resíduos ao quadrado resolve isso — o Erro Quadrático Médio (MSE).
MSE
ou igualmente:
Calcular o MSE usando NumPy:
mse = np.mean((y_true - y_pred)**2)
Ou Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
O MSE é elevado ao quadrado, o que dificulta a interpretação. Se o MSE for 49 dólares², queremos o erro em dólares. Tirando a raiz, obtemos 7 — o Erro Quadrático Médio da Raiz (RMSE).
RMSE
Calcule o RMSE usando:
rmse = np.sqrt(np.mean((y_true - y_pred)**2))
Ou Scikit-learn:
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Em vez de elevar os resíduos ao quadrado, podemos tomar seus valores absolutos — isso resulta no Erro Absoluto Médio (MAE).
ou igualmente
MAE se comporta de forma semelhante ao MSE, mas trata grandes erros de maneira mais suave. Por utilizar valores absolutos, é mais robusto a outliers, sendo útil quando valores extremos distorcem o conjunto de dados.
Calcular MAE:
mae = np.mean(np.fabs(y_true - y_pred))
Ou:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
SSR nos ajudou a derivar a Equação Normal, mas qualquer métrica pode ser usada ao comparar modelos.
SSR, MSE e RMSE sempre classificam os modelos da mesma forma, enquanto MAE pode preferir um diferente porque penaliza menos os grandes erros. É importante escolher uma métrica previamente e otimizar especificamente para ela.
Agora você certamente pode afirmar que o segundo modelo é melhor, já que todas as suas métricas são menores. No entanto, métricas mais baixas nem sempre significam que o modelo é melhor.
Obrigado pelo seu feedback!