Métodos de selección de características
Métodos filter (varianza y correlación), wrapper (RFE) y embedded (regularización L1).
Métodos de selección de características es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 4 lecciones en total.
Por qué seleccionar características
La selección de características conserva únicamente las columnas más útiles. Un menor número de características implica un entrenamiento más rápido, menos sobreajuste y una interpretación más sencilla. Eliminar el ruido también suele mejorar la precisión.
Tres familias de métodos
Los métodos de selección se dividen en tres grupos:
- Filtro: clasifica las características mediante una estadística (rápido e independiente del modelo)
- Wrapper: busca subconjuntos entrenando modelos (lento, pero preciso)
- Integrado: la selección ocurre durante el ajuste del modelo
VarianceThreshold
Es el filtro más sencillo: VarianceThreshold elimina las características cuya varianza está por debajo de un umbral. Las columnas casi constantes no aportan información.
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 con f_classif
SelectKBest conserva las K características con mayor puntuación. Con f_classif, utiliza una prueba F de ANOVA que mide hasta qué punto se relaciona cada característica con la etiqueta de clase.
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))Información mutua
mutual_info_classif mide cualquier dependencia, incluida la no lineal, entre una característica y el objetivo. A diferencia de la prueba F, detecta relaciones no lineales que el ANOVA no identifica.
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)Comparación entre f_classif y mutual_info
f_classif es rápido y detecta relaciones lineales; mutual_info_classif es más lento, pero identifica relaciones no lineales. Si sospecha que existen relaciones complejas, prefiera la información mutua.
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])Eliminación recursiva de características
RFE es un método wrapper: entrena un modelo, elimina la característica más débil y repite el proceso. Utiliza la propia señal de importancia del modelo para clasificar las características.
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: elección automática de la cantidad
RFECV añade validación cruzada a RFE para encontrar el número óptimo de características según la puntuación de validación, en lugar de basarse en una cantidad fija elegida de antemano.
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 con Lasso
En la selección integrada, Lasso (L1) reduce los coeficientes poco importantes exactamente a cero. A continuación, SelectFromModel conserva únicamente los que no son cero.
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 con importancias de árboles
SelectFromModel también funciona con cualquier estimador que exponga feature_importances_, como los bosques aleatorios. Establezca un threshold como "mean" o "median".
from sklearn.feature_selection import SelectFromModel
from sklearn.ensemble import RandomForestClassifier
sel = SelectFromModel(
RandomForestClassifier(n_estimators=200),
threshold="median",
)
sel.fit(X, y)Cómo elegir un método
Empiece con filtros económicos (VarianceThreshold, SelectKBest) para eliminar la información claramente inútil. Use SelectFromModel integrado para obtener un buen equilibrio. Reserve RFECV para los casos en los que la precisión sea lo más importante y disponga de recursos de cómputo suficientes.
Comprobación rápida
Compruebe sus conocimientos sobre la selección de características.
Resumen
Resumen: La selección de características incluye métodos de filtrado (VarianceThreshold, SelectKBest con f_classif o mutual_info_classif), wrapper (RFECV) e integrados (SelectFromModel con Lasso o importancias de árboles). Los filtros son los más rápidos; RFECV es el más preciso. Use la información mutua para las relaciones no lineales.
Preguntas frecuentes
¿La lección «Métodos de selección de características» es gratis?
Sí — el texto completo de «Métodos de selección de características» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 4 lecciones en total.
¿Qué aprenderé en «Métodos de selección de características»?
Métodos filter (varianza y correlación), wrapper (RFE) y embedded (regularización L1). Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.
¿Cuánto tiempo toma la lección «Métodos de selección de características»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Métodos de selección de características
- Creación de características de interacción y polinómicas
- Target encoding y gestión avanzada de variables categóricas
- Ingeniería automatizada de características con Featuretools