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?

Bem, as métricas indicam que a segunda é melhor. Então vamos usá-la para prever novos valores! Precisamos das previsões para X_new = [0.2,0.5,2.7]. Mas, quando obtivemos os valores reais do alvo para os X_new que acabamos de prever, descobrimos que o primeiro modelo teve uma previsão muito melhor.

Isso ocorre porque o segundo modelo apresenta overfitting no conjunto de treinamento. Overfitting é quando o modelo construído é muito complexo, de modo que se ajusta perfeitamente aos dados de treinamento, mas não prevê tão bem instâncias não vistas.

Underfitting

Existe também mais um conceito, underfitting. Isso ocorre quando o modelo construído é tão simples que não consegue nem mesmo se ajustar bem aos dados de treinamento. Nesses casos, as previsões para as instâncias não vistas também estão incorretas.

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

Já sabemos que não é possível visualizar a Regressão Linear Múltipla com muitas variáveis. Existe outra maneira de identificar se o modelo sofre de overfitting ou underfitting? Na verdade, existe.

Divisão Treino-Teste

É importante avaliar como o modelo se comporta em instâncias não vistas. Para isso, são necessárias instâncias não vistas com os valores reais do alvo. Esses valores reais só estão disponíveis no conjunto de treinamento. Portanto, a abordagem adequada é dividir o conjunto de treinamento em dois subconjuntos: um conjunto de treinamento e um conjunto de teste.

Com isso, é possível construir o modelo utilizando o conjunto de treinamento, calcular as métricas no conjunto de treinamento (instâncias vistas) e, em seguida, calcular as métricas no conjunto de teste (instâncias não vistas).

É fundamental realizar a divisão do conjunto de treinamento de forma aleatória. Normalmente, recomenda-se utilizar cerca de 20-30% do conjunto de treinamento para o conjunto de teste, enquanto os outros 70-80% permanecem como conjunto de treinamento. O Scikit-learn oferece uma função simples para realizar essa divisão aleatória:

Por exemplo, para dividir o conjunto de treinamento em 70% para treino e 30% para teste, utilize 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 ou 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:

What are some common signs of overfitting and underfitting in a model?

How does the train-test split help prevent overfitting?

Can you explain how to interpret the results after splitting the data into training and test sets?

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?

Bem, as métricas indicam que a segunda é melhor. Então vamos usá-la para prever novos valores! Precisamos das previsões para X_new = [0.2,0.5,2.7]. Mas, quando obtivemos os valores reais do alvo para os X_new que acabamos de prever, descobrimos que o primeiro modelo teve uma previsão muito melhor.

Isso ocorre porque o segundo modelo apresenta overfitting no conjunto de treinamento. Overfitting é quando o modelo construído é muito complexo, de modo que se ajusta perfeitamente aos dados de treinamento, mas não prevê tão bem instâncias não vistas.

Underfitting

Existe também mais um conceito, underfitting. Isso ocorre quando o modelo construído é tão simples que não consegue nem mesmo se ajustar bem aos dados de treinamento. Nesses casos, as previsões para as instâncias não vistas também estão incorretas.

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

Já sabemos que não é possível visualizar a Regressão Linear Múltipla com muitas variáveis. Existe outra maneira de identificar se o modelo sofre de overfitting ou underfitting? Na verdade, existe.

Divisão Treino-Teste

É importante avaliar como o modelo se comporta em instâncias não vistas. Para isso, são necessárias instâncias não vistas com os valores reais do alvo. Esses valores reais só estão disponíveis no conjunto de treinamento. Portanto, a abordagem adequada é dividir o conjunto de treinamento em dois subconjuntos: um conjunto de treinamento e um conjunto de teste.

Com isso, é possível construir o modelo utilizando o conjunto de treinamento, calcular as métricas no conjunto de treinamento (instâncias vistas) e, em seguida, calcular as métricas no conjunto de teste (instâncias não vistas).

É fundamental realizar a divisão do conjunto de treinamento de forma aleatória. Normalmente, recomenda-se utilizar cerca de 20-30% do conjunto de treinamento para o conjunto de teste, enquanto os outros 70-80% permanecem como conjunto de treinamento. O Scikit-learn oferece uma função simples para realizar essa divisão aleatória:

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