Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Scikit-learn desde cero, Unidad 10 — Feature engineering con scikit-learn, 10.2 — Selección automática de features ·

Interpretación

Interpretación de los métodos de selección automática de features con scikit-learn

Introducción

La selección automática de características (o feature selection) es un paso crucial en el flujo de desarrollo de modelos de machine learning. Permite reducir la dimensionalidad del conjunto de datos, mejorar la interpretabilidad y aumentar la eficiencia del modelo. En este artículo, exploraremos cómo interpretar los resultados proporcionados por dos métodos populares de selección automática de features: SelectKBest y Recursive Feature Elimination (RFE). Ambos son parte del módulo feature_selection de scikit-learn.

Explicación principal con ejemplos

10.2.1 — SelectKBest

El método SelectKBest realiza una evaluación estadística para seleccionar las características más relevantes basándose en un score. Este score se calcula utilizando diferentes funciones, como la correlación de Pearson (chi2), el ANOVA F-value o la mutuinfo.

from sklearn.feature_selection import SelectKBest, chi2

# Ejemplo:
X = [[0, 3], [1, 4], [2, 5]]
y = [0, 1, 0]

# Usando el score de Chi-Square (chi2)
selector = SelectKBest(chi2, k=1)
X_new = selector.fit_transform(X, y)

print("Features después de SelectKBest:", X_new)

En este ejemplo, SelectKBest selecciona la mejor característica basándose en el score de Chi-Square. Si el valor devuelto por selector.scores_ es mayor para una característica que para las otras, esta se considera más relevante.

10.2.2 — Recursive Feature Elimination (RFE)

El método RFE, en cambio, selecciona características recursivamente eliminando la característica con puntuación más baja y re-evaluando el conjunto de datos reducido hasta que solo queden las k mejores características.

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

# Ejemplo:
X = [[0, 3], [1, 4], [2, 5]]
y = [0, 1, 0]

estimator = RandomForestClassifier()
selector = RFECV(estimator, step=1, cv=5)
selector.fit(X, y)

print("Features después de RFE:", selector.transform(X))

En este ejemplo, RFECV ajusta un modelo con diferentes conjuntos reducidos de características y selecciona las que mejoran el rendimiento del modelo. Los resultados se pueden visualizar utilizando selector.support_ o selector.ranking_.

Errores típicos / trampas

  1. Escogencia inapropiada del score: La elección del score incorrecto puede llevar a malas decisiones de selección de características. Es crucial elegir un score que sea relevante para el problema específico.
  1. No evaluar la importancia en conjunto: Las características pueden ser más relevantes cuando se consideran juntas. Ignorar esta interacción puede resultar en una mala elección de features.
  1. Olvidar la validación cruzada: Los métodos como RFECV deben usarse con validación cruzada para evitar sobreajuste y obtener una evaluación precisa del rendimiento del modelo.

Checklist accionable

  1. Elija el score adecuado basándose en su problema: Asegúrese de que el score seleccionado es relevante para su tarea específica.
  2. Reconozca la importancia de las interacciones entre características: Verifique si considerar las interacciones entre características puede mejorar su selección.
  3. Use validación cruzada para evaluar el rendimiento del modelo: Esto ayudará a evitar el sobreajuste y dará una evaluación precisa del rendimiento del modelo.
  4. Ajuste los parámetros de los métodos: Experimente con diferentes valores de k en SelectKBest o step en RFECV para encontrar la configuración óptima.
  5. Interprete correctamente las salidas: Comprenda qué significan los scores y rankings devueltos por los métodos.

Siguientes pasos

  1. Practicar con diferentes conjuntos de datos: Asegúrese de que sus habilidades en la selección automática de características se han desarrollado aplicándolos a diversos conjuntos de datos.
  2. Explorar otras técnicas de feature selection: Familiarícese con otros métodos como SelectFromModel, mrmr, etc., para tener una gama más amplia de opciones al seleccionar características.
  3. Incorporar la selección automática en su flujo de trabajo diario: Introduzca la selección automática de características en sus proyectos para mejorar la calidad y el rendimiento de los modelos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).