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

bookOverajuste

Overfitting

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

As métricas indicam 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.

Isso ocorre porque o segundo modelo apresenta overfitting — ele é muito complexo e se ajusta excessivamente aos dados de treinamento, falhando em 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.

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

Como não é possível visualizar modelos de alta dimensionalidade, é necessário outro método para detectar overfitting ou underfitting.

Divisão Treino-Teste

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

O treinamento é realizado no conjunto de treinamento e as métricas são calculadas em ambos os conjuntos, de treinamento e de teste, para comparar o desempenho.

A divisão deve ser aleatória. Normalmente, 20–30% é destinado ao conjunto de teste e 70–80% é utilizado para treinamento. O Scikit-learn oferece uma maneira fácil de realizar essa divisão.

Por exemplo, para dividir o conjunto de treinamento em 70% para treino e 30% para teste, você pode 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
.

Clique ou arraste solte itens e preencha os espaços

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

Suggested prompts:

Can you explain more about how overfitting and underfitting affect model performance?

What are some ways to prevent overfitting in machine learning models?

How do I choose the right train-test split ratio for my dataset?

Awesome!

Completion rate improved to 5.26

bookOverajuste

Deslize para mostrar o menu

Overfitting

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

As métricas indicam 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.

Isso ocorre porque o segundo modelo apresenta overfitting — ele é muito complexo e se ajusta excessivamente aos dados de treinamento, falhando em 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.

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

Como não é possível visualizar modelos de alta dimensionalidade, é necessário outro método para detectar overfitting ou underfitting.

Divisão Treino-Teste

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

O treinamento é realizado no conjunto de treinamento e as métricas são calculadas em ambos os conjuntos, de treinamento e de teste, para comparar o desempenho.

A divisão deve ser aleatória. Normalmente, 20–30% é destinado ao conjunto de teste e 70–80% é utilizado para treinamento. O Scikit-learn oferece uma maneira fácil de realizar essa divisão.

Por exemplo, para dividir o conjunto de treinamento em 70% para treino e 30% para teste, você pode 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
.

Clique ou arraste solte itens e preencha os espaços

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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