Selección de características
La selección de características es el proceso de elegir las variables más relevantes para entrenar un modelo. Esto mejora el rendimiento, reduce el tiempo de entrenamiento y evita el sobreajuste. En esta guía aprenderás las técnicas más usadas en IA.
Tabla de contenidos
- Qué es la selección de características
- Por qué es importante
- Selección basada en correlación
- Selección basada en modelos
- RFE (Recursive Feature Elimination)
- Selección con Scikit‑Learn
- Ejercicios
- Mini‑proyecto
1. Qué es la selección de características
Es el proceso de elegir las columnas más importantes del dataset para entrenar el modelo.
# Ejemplo conceptual
100 columnas → seleccionas 20 → modelo más rápido y preciso
2. Por qué es importante
- Reduce el riesgo de overfitting
- Mejora la precisión
- Reduce el tiempo de entrenamiento
- Hace el modelo más interpretable
3. Selección basada en correlación
Se eliminan características que están altamente correlacionadas entre sí.
import seaborn as sns
import matplotlib.pyplot as plt
sns.heatmap(df.corr(), annot=False)
plt.show()
4. Selección basada en modelos
Algunos modelos permiten obtener la importancia de cada característica.
from sklearn.ensemble import RandomForestClassifier
model = RandomForestClassifier()
model.fit(X_train, y_train)
importancias = model.feature_importances_
5. RFE (Recursive Feature Elimination)
RFE elimina características de forma recursiva hasta quedarse con las más importantes.
from sklearn.feature_selection import RFE
from sklearn.linear_model import LogisticRegression
model = LogisticRegression()
selector = RFE(model, n_features_to_select=5)
selector.fit(X_train, y_train)
selector.support_ # características seleccionadas
6. Selección con Scikit‑Learn
from sklearn.feature_selection import SelectKBest
from sklearn.feature_selection import chi2
selector = SelectKBest(score_func=chi2, k=5)
X_new = selector.fit_transform(X, y)
SelectKBest elige las mejores características según una métrica estadística.
7. Ejercicios
- Genera un mapa de correlación.
- Obtén importancias con RandomForest.
- Aplica RFE con 5 características.
- Usa SelectKBest con chi2.
- Explica por qué eliminar características puede mejorar el modelo.
# pista correlación
df.corr()
# pista RFE
RFE(model, n_features_to_select=5)
8. Mini‑proyecto: Selección completa
Toma un dataset real y realiza:
- Mapa de correlación
- Importancia de características
- RFE
- SelectKBest
- Comparación de modelos con y sin selección