Métricas
Ao construir um modelo, é importante medir seu desempenho.
Precisamos de uma pontuação associada ao modelo que descreva com precisão o quão bem ele se ajusta aos dados. Essa pontuação é conhecida como métrica, e existem diversas métricas disponíveis.
Neste capítulo, focaremos nas mais utilizadas.
Utilizaremos a seguinte notação:
Já estamos familiarizados com uma métrica, SSR (Sum of Squared Residuals), que minimizamos para identificar os parâmetros ideais.
Utilizando nossa notação, podemos expressar a fórmula do SSR da seguinte forma:
ou igualmente:
Essa métrica era adequada para comparar modelos com o mesmo número de instâncias. No entanto, ela não nos fornece uma compreensão de quão bem o modelo está performando. Veja o motivo:
Suponha que você tenha dois modelos em diferentes conjuntos de treinamento (mostrados na imagem abaixo).
É possível observar que o primeiro modelo se ajusta bem, mas ainda possui um SSR maior do que o segundo modelo, que visualmente se ajusta pior aos dados. Isso ocorreu apenas porque o primeiro modelo possui muito mais pontos de dados, então a soma é maior, mas, em média, os resíduos do primeiro modelo são menores. Portanto, utilizar a média dos resíduos ao quadrado como métrica descreveria melhor o modelo. É exatamente isso que o Erro Quadrático Médio (MSE) faz.
MSE
ou igualmente:
Para calcular a métrica MSE usando Python, é possível utilizar as funções do NumPy:
mse = np.mean((y_true-y_pred)**2)
Ou utilizar o método mean_squared_error()
do Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Onde y_true
é um array com os valores reais do alvo e y_pred
é um array com os valores previstos do alvo para as mesmas características.
O problema é que o erro apresentado está ao quadrado. Por exemplo, suponha que o MSE do modelo ao prever preços de casas seja 49 dollars². Estamos interessados no preço, não no preço ao quadrado, como fornecido pelo MSE, então gostaríamos de extrair a raiz do MSE e obter 7 dollars. Agora temos uma métrica com a mesma unidade do valor previsto. Essa métrica é chamada de Root Mean Squared Error (RMSE).
RMSE
Para calcular a métrica RMSE utilizando Python, é possível usar as funções do NumPy:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Ou utilizar o método mean_squared_error()
do Scikit-learn com squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Em SSR, os resíduos foram elevados ao quadrado para eliminar o sinal. A segunda abordagem consiste em considerar os valores absolutos dos resíduos em vez de elevá-los ao quadrado. Essa é a ideia por trás do Erro Médio Absoluto (MAE).
ou igualmente
É o mesmo que o MSE, mas em vez de elevar ao quadrado os resíduos, utilizamos seus valores absolutos.
Embora o MAE seja semelhante ao MSE, por utilizar os valores absolutos dos resíduos, ele é mais robusto a outliers, pois não amplifica tanto os grandes erros quanto o MSE. Como resultado, o MAE costuma ser uma escolha melhor quando o conjunto de dados contém outliers, já que seu valor não aumenta de forma desproporcional devido a alguns erros extremos.
Para calcular a métrica MAE usando Python, é possível utilizar as funções do NumPy:
mae = np.mean(np.fabs(y_true-y_pred))
Ou utilizar o método mean_absolute_error()
do Scikit-learn:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Para escolher os parâmetros, utilizamos a métrica SSR. Isso ocorre porque ela é adequada para cálculos matemáticos e nos permitiu obter a Equação Normal. No entanto, para comparar os modelos, é possível utilizar qualquer outra métrica.
Para comparar modelos, SSR, MSE e RMSE sempre indicarão de forma idêntica qual modelo é melhor e qual é pior. Já o MAE pode, em alguns casos, preferir um modelo diferente de SSR/MSE/RMSE, pois essas penalizam resíduos altos de forma mais intensa. Geralmente, recomenda-se escolher uma métrica a priori e focar em minimizá-la.
Agora é possível afirmar que o segundo modelo é melhor, pois todas as suas métricas são menores. Entretanto, métricas mais baixas nem sempre significam que o modelo é superior.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 5.26
Métricas
Deslize para mostrar o menu
Ao construir um modelo, é importante medir seu desempenho.
Precisamos de uma pontuação associada ao modelo que descreva com precisão o quão bem ele se ajusta aos dados. Essa pontuação é conhecida como métrica, e existem diversas métricas disponíveis.
Neste capítulo, focaremos nas mais utilizadas.
Utilizaremos a seguinte notação:
Já estamos familiarizados com uma métrica, SSR (Sum of Squared Residuals), que minimizamos para identificar os parâmetros ideais.
Utilizando nossa notação, podemos expressar a fórmula do SSR da seguinte forma:
ou igualmente:
Essa métrica era adequada para comparar modelos com o mesmo número de instâncias. No entanto, ela não nos fornece uma compreensão de quão bem o modelo está performando. Veja o motivo:
Suponha que você tenha dois modelos em diferentes conjuntos de treinamento (mostrados na imagem abaixo).
É possível observar que o primeiro modelo se ajusta bem, mas ainda possui um SSR maior do que o segundo modelo, que visualmente se ajusta pior aos dados. Isso ocorreu apenas porque o primeiro modelo possui muito mais pontos de dados, então a soma é maior, mas, em média, os resíduos do primeiro modelo são menores. Portanto, utilizar a média dos resíduos ao quadrado como métrica descreveria melhor o modelo. É exatamente isso que o Erro Quadrático Médio (MSE) faz.
MSE
ou igualmente:
Para calcular a métrica MSE usando Python, é possível utilizar as funções do NumPy:
mse = np.mean((y_true-y_pred)**2)
Ou utilizar o método mean_squared_error()
do Scikit-learn:
from sklearn.metrics import mean_squared_error
mse = mean_squared_error(y_true, y_pred)
Onde y_true
é um array com os valores reais do alvo e y_pred
é um array com os valores previstos do alvo para as mesmas características.
O problema é que o erro apresentado está ao quadrado. Por exemplo, suponha que o MSE do modelo ao prever preços de casas seja 49 dollars². Estamos interessados no preço, não no preço ao quadrado, como fornecido pelo MSE, então gostaríamos de extrair a raiz do MSE e obter 7 dollars. Agora temos uma métrica com a mesma unidade do valor previsto. Essa métrica é chamada de Root Mean Squared Error (RMSE).
RMSE
Para calcular a métrica RMSE utilizando Python, é possível usar as funções do NumPy:
rmse = np.sqrt(np.mean((y_true-y_pred)**2))
Ou utilizar o método mean_squared_error()
do Scikit-learn com squared=False
:
from sklearn.metrics import mean_squared_error
rmse = mean_squared_error(y_true, y_pred, squared=False)
MAE
Em SSR, os resíduos foram elevados ao quadrado para eliminar o sinal. A segunda abordagem consiste em considerar os valores absolutos dos resíduos em vez de elevá-los ao quadrado. Essa é a ideia por trás do Erro Médio Absoluto (MAE).
ou igualmente
É o mesmo que o MSE, mas em vez de elevar ao quadrado os resíduos, utilizamos seus valores absolutos.
Embora o MAE seja semelhante ao MSE, por utilizar os valores absolutos dos resíduos, ele é mais robusto a outliers, pois não amplifica tanto os grandes erros quanto o MSE. Como resultado, o MAE costuma ser uma escolha melhor quando o conjunto de dados contém outliers, já que seu valor não aumenta de forma desproporcional devido a alguns erros extremos.
Para calcular a métrica MAE usando Python, é possível utilizar as funções do NumPy:
mae = np.mean(np.fabs(y_true-y_pred))
Ou utilizar o método mean_absolute_error()
do Scikit-learn:
from sklearn.metrics import mean_absolute_error
mae = mean_absolute_error(y_true, y_pred)
Para escolher os parâmetros, utilizamos a métrica SSR. Isso ocorre porque ela é adequada para cálculos matemáticos e nos permitiu obter a Equação Normal. No entanto, para comparar os modelos, é possível utilizar qualquer outra métrica.
Para comparar modelos, SSR, MSE e RMSE sempre indicarão de forma idêntica qual modelo é melhor e qual é pior. Já o MAE pode, em alguns casos, preferir um modelo diferente de SSR/MSE/RMSE, pois essas penalizam resíduos altos de forma mais intensa. Geralmente, recomenda-se escolher uma métrica a priori e focar em minimizá-la.
Agora é possível afirmar que o segundo modelo é melhor, pois todas as suas métricas são menores. Entretanto, métricas mais baixas nem sempre significam que o modelo é superior.
Obrigado pelo seu feedback!