Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escolhendo as Variáveis | Regressão Linear Múltipla
Regressão Linear com Python
course content

Conteúdo do Curso

Regressão Linear com Python

Regressão Linear com Python

1. Regressão Linear Simples
2. Regressão Linear Múltipla
3. Regressão Polinomial
4. Escolhendo o Melhor Modelo

book
Escolhendo as Variáveis

Em muitas tarefas, pode haver diversos atributos cuja utilidade é desconhecida. Felizmente, é possível treinar um modelo com todos eles, analisar quais não têm impacto significativo e, em seguida, re-treinar o modelo utilizando apenas os atributos relevantes.

Por que remover atributos do modelo?

Ao adicionar um atributo ao modelo que não possui relação com o alvo, ruído é introduzido, prejudicando a previsão. Quando há muitos atributos inúteis, o ruído se acumula, reduzindo ainda mais o desempenho do modelo.

Como saber se os atributos são bons ou ruins?

Como já mencionado, durante o treinamento, a classe OLS também calcula informações estatísticas. Entre outras análises, é realizado um teste t para determinar se cada atributo tem impacto significativo sobre o alvo. Os resultados do teste podem ser encontrados na tabela summary() conforme mostrado abaixo:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

O que nos interessa é o valor-p para cada variável.

Em resumo, quanto menor o valor-p, maior a confiança de que a variável é relevante.

Em estatística, é necessário definir o limite do valor de p, chamado de nível de significância. Geralmente, este valor é definido como 0,05 e, uma vez que o valor de p seja maior que esse nível de significância, considera-se que a variável não é impactante.

No entanto, na prática, variáveis com valor de p um pouco acima de 0,05 geralmente também melhoram o modelo. Portanto, é melhor testar o modelo com e sem essa variável, em vez de removê-la imediatamente, a menos que ela tenha um valor de p realmente alto (>0,4). Nesse caso, a variável pode ser removida com segurança.

Note
Nota

O valor de p varia de 0 a 1, portanto, quando falamos de valor de p baixo, significa menor que 0,05, e valor de p alto geralmente significa maior que 0,3-0,5.

No nosso exemplo, obtivemos valores de p para a altura da mãe e para a constante de 0,087 e 0,051. Se removermos as variáveis com valor de p > 0,05, teremos o resultado abaixo (à esquerda).

Mesmo visualmente, podemos perceber que o modelo com a constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.

Note
Nota

É comum obter valores de p relativamente altos (0,05 a 0,2) para variáveis relevantes quando o conjunto de dados é pequeno. O valor de p indica o grau de confiança de que a variável é relevante, e é natural que, quanto mais instâncias tivermos, mais fácil será distinguir variáveis relevantes de irrelevantes. Suponha que você tenha dados mostrando que 9/10 das pessoas altas que você conhece comeram maçãs diariamente. Você pode ter certeza de que isso está relacionado? Mas e se fossem 9000/10000? Isso aumentaria sua confiança.

Como remover características indesejadas?

Basta remover a coluna relacionada à característica de X_tilde. Isso pode ser feito com o seguinte código:

X_tilde = X_tilde.drop(___, axis=1)

Por exemplo, para remover as colunas 'const' e 'Mother', utilize:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Em seguida, crie um novo objeto OLS utilizando o X_tilde atualizado:

regression_model=sm.OLS(y, X_tilde)

1. Quais das variáveis você deve MANTER?

2. Escolha a afirmação INCORRETA.

question mark

Quais das variáveis você deve MANTER?

Select the correct answer

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 4

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

course content

Conteúdo do Curso

Regressão Linear com Python

Regressão Linear com Python

1. Regressão Linear Simples
2. Regressão Linear Múltipla
3. Regressão Polinomial
4. Escolhendo o Melhor Modelo

book
Escolhendo as Variáveis

Em muitas tarefas, pode haver diversos atributos cuja utilidade é desconhecida. Felizmente, é possível treinar um modelo com todos eles, analisar quais não têm impacto significativo e, em seguida, re-treinar o modelo utilizando apenas os atributos relevantes.

Por que remover atributos do modelo?

Ao adicionar um atributo ao modelo que não possui relação com o alvo, ruído é introduzido, prejudicando a previsão. Quando há muitos atributos inúteis, o ruído se acumula, reduzindo ainda mais o desempenho do modelo.

Como saber se os atributos são bons ou ruins?

Como já mencionado, durante o treinamento, a classe OLS também calcula informações estatísticas. Entre outras análises, é realizado um teste t para determinar se cada atributo tem impacto significativo sobre o alvo. Os resultados do teste podem ser encontrados na tabela summary() conforme mostrado abaixo:

123456789
import pandas as pd import statsmodels.api as sm file_link='https://codefinity-content-media.s3.eu-west-1.amazonaws.com/b22d1166-efda-45e8-979e-6c3ecfc566fc/heights_two_feature.csv' df = pd.read_csv(file_link) # Open the file X,y = df[['Father', 'Mother']], df['Height'] # Assign the variables X_tilde = sm.add_constant(X) # Create X_tilde regression_model = sm.OLS(y, X_tilde).fit() # Initialize and train an OLS object print(regression_model.summary()) #Get the summary
copy

O que nos interessa é o valor-p para cada variável.

Em resumo, quanto menor o valor-p, maior a confiança de que a variável é relevante.

Em estatística, é necessário definir o limite do valor de p, chamado de nível de significância. Geralmente, este valor é definido como 0,05 e, uma vez que o valor de p seja maior que esse nível de significância, considera-se que a variável não é impactante.

No entanto, na prática, variáveis com valor de p um pouco acima de 0,05 geralmente também melhoram o modelo. Portanto, é melhor testar o modelo com e sem essa variável, em vez de removê-la imediatamente, a menos que ela tenha um valor de p realmente alto (>0,4). Nesse caso, a variável pode ser removida com segurança.

Note
Nota

O valor de p varia de 0 a 1, portanto, quando falamos de valor de p baixo, significa menor que 0,05, e valor de p alto geralmente significa maior que 0,3-0,5.

No nosso exemplo, obtivemos valores de p para a altura da mãe e para a constante de 0,087 e 0,051. Se removermos as variáveis com valor de p > 0,05, teremos o resultado abaixo (à esquerda).

Mesmo visualmente, podemos perceber que o modelo com a constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.

Note
Nota

É comum obter valores de p relativamente altos (0,05 a 0,2) para variáveis relevantes quando o conjunto de dados é pequeno. O valor de p indica o grau de confiança de que a variável é relevante, e é natural que, quanto mais instâncias tivermos, mais fácil será distinguir variáveis relevantes de irrelevantes. Suponha que você tenha dados mostrando que 9/10 das pessoas altas que você conhece comeram maçãs diariamente. Você pode ter certeza de que isso está relacionado? Mas e se fossem 9000/10000? Isso aumentaria sua confiança.

Como remover características indesejadas?

Basta remover a coluna relacionada à característica de X_tilde. Isso pode ser feito com o seguinte código:

X_tilde = X_tilde.drop(___, axis=1)

Por exemplo, para remover as colunas 'const' e 'Mother', utilize:

X_tilde = X_tilde.drop(['Mother', 'const'], axis=1)

Em seguida, crie um novo objeto OLS utilizando o X_tilde atualizado:

regression_model=sm.OLS(y, X_tilde)

1. Quais das variáveis você deve MANTER?

2. Escolha a afirmação INCORRETA.

question mark

Quais das variáveis você deve MANTER?

Select the correct answer

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

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