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, verificou-se que o primeiro modelo apresentou uma previsão muito melhor.

Isso ocorre porque o segundo modelo overfita o 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 outro 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 apresenta underfitting ou overfitting.

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

Divisão em Treino e Teste

É importante avaliar como o modelo irá se comportar 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 treino. Portanto, a abordagem adequada é dividir o conjunto de treino em dois subconjuntos: um conjunto de treino e um conjunto de teste.

Assim, é possível construir o modelo utilizando o conjunto de treino, calcular as métricas no conjunto de treino (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 treino de forma aleatória. Normalmente, recomenda-se utilizar cerca de 20-30% do conjunto de treino para o conjunto de teste, enquanto os outros 70-80% permanecem como conjunto de treino. 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 treinamento 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 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

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, verificou-se que o primeiro modelo apresentou uma previsão muito melhor.

Isso ocorre porque o segundo modelo overfita o 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 outro 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 apresenta underfitting ou overfitting.

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

Divisão em Treino e Teste

É importante avaliar como o modelo irá se comportar 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 treino. Portanto, a abordagem adequada é dividir o conjunto de treino em dois subconjuntos: um conjunto de treino e um conjunto de teste.

Assim, é possível construir o modelo utilizando o conjunto de treino, calcular as métricas no conjunto de treino (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 treino de forma aleatória. Normalmente, recomenda-se utilizar cerca de 20-30% do conjunto de treino para o conjunto de teste, enquanto os outros 70-80% permanecem como conjunto de treino. 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 treinamento 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 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