0Pricing
Learn AI with Python · Lección

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

  1. Métodos de selección de características
  2. Creación de características de interacción y polinómicas
  3. Target encoding y gestión avanzada de variables categóricas
  4. Ingeniería automatizada de características con Featuretools
← Volver a Learn AI with Python