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

Overajuste

Deslize para mostrar o menu

Overfitting

Considere as duas linhas de regressão abaixo. Qual delas é melhor?

ExemploDeOverfitting

As métricas sugerem que o segundo modelo é melhor, então ele é utilizado para prever X_new = [0.2, 0.5, 2.7]. Porém, após comparar as previsões com os valores reais, o primeiro modelo apresenta melhor desempenho.

OverfittingPrediction

Isso acontece porque o segundo modelo overfita — ele é muito complexo e se ajusta demais aos dados de treinamento, não conseguindo generalizar para novos casos.

Underfitting

Underfitting ocorre quando um modelo é simples demais para se ajustar até mesmo aos dados de treinamento, o que também resulta em previsões ruins para dados não vistos.

ExemploDeUnderfitting

Assim, é possível tentar identificar visualmente se o modelo está sofrendo de underfitting ou overfitting.

UnderGoodOver

Como não podemos visualizar modelos de alta dimensão, precisamos de outra forma para detectar overfitting ou underfitting.

Divisão em Treinamento e Teste

Para estimar o desempenho em dados não vistos, dividimos o conjunto de dados em um conjunto de treinamento e um conjunto de teste com alvos conhecidos.

casas treino teste

Treinamento no conjunto de treino e cálculo de métricas em ambos os conjuntos de treino e teste para comparação de desempenho.

traintestresults
TrainTestVideo

A divisão deve ser aleatória. Normalmente, 20–30% vai para o conjunto de teste e 70–80% é usado para treinamento. O Scikit-learn oferece uma maneira fácil de fazer isso.

TrainTestFunc

Por exemplo, para dividir o conjunto de treinamento em 70% para treino e 30% para teste, pode-se usar o seguinte código:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

Com base nos valores de MSE dos modelos, identifique se eles apresentam overfitting/underfitting no conjunto de treinamento (o conjunto de dados é o mesmo).

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

Click or drag`n`drop items and fill in the blanks

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 4. Capítulo 2

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

Overajuste

Overfitting

Considere as duas linhas de regressão abaixo. Qual delas é melhor?

ExemploDeOverfitting

As métricas sugerem que o segundo modelo é melhor, então ele é utilizado para prever X_new = [0.2, 0.5, 2.7]. Porém, após comparar as previsões com os valores reais, o primeiro modelo apresenta melhor desempenho.

OverfittingPrediction

Isso acontece porque o segundo modelo overfita — ele é muito complexo e se ajusta demais aos dados de treinamento, não conseguindo generalizar para novos casos.

Underfitting

Underfitting ocorre quando um modelo é simples demais para se ajustar até mesmo aos dados de treinamento, o que também resulta em previsões ruins para dados não vistos.

ExemploDeUnderfitting

Assim, é possível tentar identificar visualmente se o modelo está sofrendo de underfitting ou overfitting.

UnderGoodOver

Como não podemos visualizar modelos de alta dimensão, precisamos de outra forma para detectar overfitting ou underfitting.

Divisão em Treinamento e Teste

Para estimar o desempenho em dados não vistos, dividimos o conjunto de dados em um conjunto de treinamento e um conjunto de teste com alvos conhecidos.

casas treino teste

Treinamento no conjunto de treino e cálculo de métricas em ambos os conjuntos de treino e teste para comparação de desempenho.

traintestresults
TrainTestVideo

A divisão deve ser aleatória. Normalmente, 20–30% vai para o conjunto de teste e 70–80% é usado para treinamento. O Scikit-learn oferece uma maneira fácil de fazer isso.

TrainTestFunc

Por exemplo, para dividir o conjunto de treinamento em 70% para treino e 30% para teste, pode-se usar o seguinte código:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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