Overajuste
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)
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 5.26
Overajuste
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)
Obrigado pelo seu feedback!