0Pricing
Learn AI with Python · Aula

Métodos de seleção de atributos

Métodos de filtro (variância, correlação), envoltório (RFE) e incorporados (regularização L1).

Métodos de seleção de atributos é uma aula grátis de Learn AI with Python no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Learn AI with Python, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Learn AI with Python inclui 4 aulas no total.

Por que selecionar atributos

A seleção de atributos mantém apenas as colunas mais úteis. Menos atributos significam treinamento mais rápido, menos sobreajuste e interpretação mais fácil. Remover ruído também costuma melhorar a acurácia.

Três famílias de métodos

Os métodos de seleção se dividem em três grupos:

  • Filtragem classifica os atributos por uma estatística (rápida e independente do modelo)
  • Busca por subconjuntos procura subconjuntos treinando modelos (lenta e precisa)
  • Incorporada a seleção acontece durante o ajuste do modelo

VarianceThreshold

O filtro mais simples: VarianceThreshold descarta atributos cuja variância esteja abaixo de um limite. Colunas quase constantes não carregam informação.

from sklearn.feature_selection import VarianceThreshold

sel = VarianceThreshold(threshold=0.01)
X_reduced = sel.fit_transform(X)
print("Kept:", X_reduced.shape[1], "of", X.shape[1])

SelectKBest com f_classif

O SelectKBest mantém os K atributos com as maiores pontuações. Com f_classif, ele usa um teste F de ANOVA que mede o quanto cada atributo se relaciona com o rótulo da classe.

from sklearn.feature_selection import SelectKBest, f_classif

sel = SelectKBest(score_func=f_classif, k=10)
X_best = sel.fit_transform(X, y)
print(sel.get_support(indices=True))

Informação mútua

mutual_info_classif mede qualquer dependência, inclusive não linear, entre um atributo e o alvo. Diferentemente do teste F, ele captura relações não lineares que a ANOVA não detecta.

from sklearn.feature_selection import SelectKBest, mutual_info_classif

sel = SelectKBest(score_func=mutual_info_classif, k=10)
X_mi = sel.fit_transform(X, y)

Comparação entre f_classif e mutual_info

f_classif é rápido e detecta relações lineares; mutual_info_classif é mais lento, mas identifica relações não lineares. Se você suspeitar de relações complexas, prefira a informação mútua.

import numpy as np
from sklearn.feature_selection import f_classif, mutual_info_classif

f_scores, _ = f_classif(X, y)
mi_scores = mutual_info_classif(X, y)
print("F-test top:", np.argsort(f_scores)[::-1][:5])
print("MI top:", np.argsort(mi_scores)[::-1][:5])

Eliminação recursiva de atributos

RFE é um método de busca por subconjuntos: ele treina um modelo, remove o atributo mais fraco e repete o processo. Ele usa o próprio sinal de importância do modelo para classificar os atributos.

from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression

rfe = RFE(estimator=LogisticRegression(max_iter=1000), n_features_to_select=10)
rfe.fit(X, y)
print(rfe.support_)

RFECV: escolhendo a quantidade automaticamente

O RFECV adiciona validação cruzada ao RFE para encontrar o número ideal de atributos pela pontuação de validação, em vez de usar uma estimativa fixa.

from sklearn.feature_selection import RFECV
from sklearn.ensemble import RandomForestClassifier

rfecv = RFECV(
    estimator=RandomForestClassifier(),
    cv=5,
    scoring="accuracy",
)
rfecv.fit(X, y)
print("Optimal features:", rfecv.n_features_)

SelectFromModel com Lasso

Seleção incorporada: o Lasso (L1) reduz os coeficientes pouco importantes exatamente a zero. O SelectFromModel então mantém apenas os coeficientes diferentes de zero.

from sklearn.feature_selection import SelectFromModel
from sklearn.linear_model import Lasso

sel = SelectFromModel(Lasso(alpha=0.01))
sel.fit(X, y)
X_lasso = sel.transform(X)
print("Kept:", X_lasso.shape[1])

SelectFromModel com importâncias de árvores

O SelectFromModel também funciona com qualquer estimador que exponha feature_importances_, como as florestas aleatórias. Defina um threshold como "mean" ou "median".

from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier

sel = SelectFromModel(
    RandomForestClassifier(n_estimators=200),
    threshold="median",
)
sel.fit(X, y)

Como escolher um método

Comece com filtros baratos (VarianceThreshold, SelectKBest) para remover o ruído evidente. Use o SelectFromModel incorporado para obter um bom equilíbrio. Reserve o RFECV para situações em que a acurácia seja mais importante e haja recursos computacionais disponíveis.

Verificação rápida

Teste seus conhecimentos sobre seleção de atributos.

Recapitulação

Recapitulação: a seleção de atributos tem métodos de filtragem (VarianceThreshold, SelectKBest com f_classif ou mutual_info_classif), de busca por subconjuntos (RFECV) e incorporados (SelectFromModel com Lasso ou importâncias de árvores). Os filtros são os mais rápidos; o RFECV é o mais preciso. Use informação mútua para relações não lineares.

Perguntas Frequentes

A aula “Métodos de seleção de atributos” é grátis?

Sim — o texto completo de “Métodos de seleção de atributos” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Learn AI with Python, atualize para CoddyKit PRO. O curso de Learn AI with Python inclui 4 aulas no total.

O que vou aprender em “Métodos de seleção de atributos”?

Métodos de filtro (variância, correlação), envoltório (RFE) e incorporados (regularização L1). Você pratica Learn AI with Python com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Learn AI with Python?

Nenhuma experiência prévia é necessária. Learn AI with Python no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Métodos de seleção de atributos”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Learn AI with Python?

Sim. Cada aula de Learn AI with Python inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Métodos de seleção de atributos
  2. Criando atributos de interação e polinomiais
  3. Codificação do alvo e tratamento avançado de dados categóricos
  4. Engenharia automatizada de atributos com Featuretools
← Voltar para Learn AI with Python