Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Métricas | Escolhendo o Melhor Modelo
Regressão Linear com Python

bookMé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.

Note
Nota

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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 1

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Awesome!

Completion rate improved to 5.26

bookMé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.

Note
Nota

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.

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 1
some-alt