Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Escolhendo as Variáveis | Seção
Practice
Projects
Quizzes & Challenges
Questionários
Challenges
/
Fundamentos do Aprendizado Supervisionado

bookEscolhendo as Variáveis

Ao trabalhar com muitos atributos, muitas vezes 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?

Para avaliar se os atributos afetam significativamente o alvo, é possível calcular os valores de p para cada atributo. Um valor de p baixo sugere que o atributo é estatisticamente significativo.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

Resumidamente, quanto menor o valor de p, maior a confiança de que a característica é impactante. Normalmente, um valor de p menor que 0,05 é considerado estatisticamente significativo.

No exemplo acima:

  • Father: (extremamente pequeno, altamente significativo)
  • Mother: (muito pequeno, altamente significativo)

Ambas as características são bons preditores para o alvo.

Em estatística, define-se um nível de significância, geralmente 0,05. Se o valor de p de uma característica exceder esse limite, ela é considerada não impactante.

Na prática, valores de p um pouco mais altos (logo acima de 0,05) ainda podem ser úteis para o modelo. É mais seguro testar o modelo com e sem essa característica. Mas se o valor de p for muito alto (>0,4), você pode removê-lo com confiança.

Note
Nota

O valor de p varia de 0 a 1, então 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 Mother's height e constant de 0,087 e 0,051. Se removermos características com valor de p > 0,05, teremos o resultado abaixo (à esquerda).

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

Note
Nota

Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para características relevantes. Os valores de p refletem confiança: com mais dados, torna-se mais fácil distinguir características realmente impactantes de ruídos.

Como Remover Características Ruins?

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 all correct answers

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 8

Pergunte à IA

expand

Pergunte à IA

ChatGPT

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

bookEscolhendo as Variáveis

Deslize para mostrar o menu

Ao trabalhar com muitos atributos, muitas vezes 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?

Para avaliar se os atributos afetam significativamente o alvo, é possível calcular os valores de p para cada atributo. Um valor de p baixo sugere que o atributo é estatisticamente significativo.

1234567891011121314151617
import pandas as pd from sklearn.feature_selection import f_regression 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) X, y = df[['Father', 'Mother']], df['Height'] # f_regression returns F-statistic and p-values f_stat, p_values = f_regression(X, y) # Create a DataFrame to view results nicely results = pd.DataFrame({ 'Feature': X.columns, 'p_value': p_values }) print(results)
copy

Resumidamente, quanto menor o valor de p, maior a confiança de que a característica é impactante. Normalmente, um valor de p menor que 0,05 é considerado estatisticamente significativo.

No exemplo acima:

  • Father: (extremamente pequeno, altamente significativo)
  • Mother: (muito pequeno, altamente significativo)

Ambas as características são bons preditores para o alvo.

Em estatística, define-se um nível de significância, geralmente 0,05. Se o valor de p de uma característica exceder esse limite, ela é considerada não impactante.

Na prática, valores de p um pouco mais altos (logo acima de 0,05) ainda podem ser úteis para o modelo. É mais seguro testar o modelo com e sem essa característica. Mas se o valor de p for muito alto (>0,4), você pode removê-lo com confiança.

Note
Nota

O valor de p varia de 0 a 1, então 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 Mother's height e constant de 0,087 e 0,051. Se removermos características com valor de p > 0,05, teremos o resultado abaixo (à esquerda).

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

Note
Nota

Conjuntos de dados pequenos frequentemente produzem valores de p mais altos (0,05–0,2) mesmo para características relevantes. Os valores de p refletem confiança: com mais dados, torna-se mais fácil distinguir características realmente impactantes de ruídos.

Como Remover Características Ruins?

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 all correct answers

question mark

Escolha a afirmação INCORRETA.

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 8
some-alt