Escolhendo as Variáveis
Ao trabalhar com muitos atributos, frequentemente não se sabe quais são relevantes. É possível treinar um modelo com todos eles, verificar quais atributos são pouco úteis e, em seguida, treinar novamente utilizando apenas os mais impactantes.
Por que remover atributos do modelo?
Adicionar um atributo não relacionado ao alvo introduz ruído e piora as previsões. Muitos atributos inúteis acumulam ruído e reduzem ainda mais a qualidade do modelo.
Como saber se os atributos são bons ou ruins?
OLS fornece testes estatísticos durante o treinamento. Cada atributo recebe um resultado de teste t, exibido na tabela summary(), indicando se ele afeta significativamente o alvo.
123456789import 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
O que nos interessa é o valor-p para cada característica.
Em resumo, quanto menor o valor-p, maior a confiança de que a característica é impactante.
Em estatística, define-se um nível de significância, geralmente 0,05. Se o p-valor de uma variável exceder esse limite, ela é considerada sem impacto relevante.
Na prática, p-valores um pouco acima de 0,05 ainda podem contribuir para o modelo. É mais seguro testar o modelo com e sem essa variável. Porém, se o p-valor for muito alto (>0,4), pode-se removê-la com confiança.
O p-valor varia de 0 a 1, portanto, quando falamos de p-valor baixo, significa menor que 0,05, e p-valor alto geralmente significa maior que 0,3-0,5.
No nosso exemplo, obtivemos valores de p para a altura da mãe e 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, é possível perceber que o modelo com constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.
Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para variáveis relevantes. Os valores de p refletem o grau de confiança: com mais dados, torna-se mais fácil distinguir variáveis realmente impactantes de ruídos.
Como remover características inadequadas?
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.
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
Escolhendo as Variáveis
Deslize para mostrar o menu
Ao trabalhar com muitos atributos, frequentemente não se sabe quais são relevantes. É possível treinar um modelo com todos eles, verificar quais atributos são pouco úteis e, em seguida, treinar novamente utilizando apenas os mais impactantes.
Por que remover atributos do modelo?
Adicionar um atributo não relacionado ao alvo introduz ruído e piora as previsões. Muitos atributos inúteis acumulam ruído e reduzem ainda mais a qualidade do modelo.
Como saber se os atributos são bons ou ruins?
OLS fornece testes estatísticos durante o treinamento. Cada atributo recebe um resultado de teste t, exibido na tabela summary(), indicando se ele afeta significativamente o alvo.
123456789import 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
O que nos interessa é o valor-p para cada característica.
Em resumo, quanto menor o valor-p, maior a confiança de que a característica é impactante.
Em estatística, define-se um nível de significância, geralmente 0,05. Se o p-valor de uma variável exceder esse limite, ela é considerada sem impacto relevante.
Na prática, p-valores um pouco acima de 0,05 ainda podem contribuir para o modelo. É mais seguro testar o modelo com e sem essa variável. Porém, se o p-valor for muito alto (>0,4), pode-se removê-la com confiança.
O p-valor varia de 0 a 1, portanto, quando falamos de p-valor baixo, significa menor que 0,05, e p-valor alto geralmente significa maior que 0,3-0,5.
No nosso exemplo, obtivemos valores de p para a altura da mãe e 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, é possível perceber que o modelo com constante (à direita) é melhor, portanto, é preferível não removê-la do modelo.
Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para variáveis relevantes. Os valores de p refletem o grau de confiança: com mais dados, torna-se mais fácil distinguir variáveis realmente impactantes de ruídos.
Como remover características inadequadas?
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.
Obrigado pelo seu feedback!