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
- Métodos de seleção de atributos
- Criando atributos de interação e polinomiais
- Codificação do alvo e tratamento avançado de dados categóricos
- Engenharia automatizada de atributos com Featuretools