Fundamentos de la Selección de Características
La selección de características mejora el rendimiento del modelo al conservar solo las características más relevantes, reducir la complejidad y ayudar a prevenir el sobreajuste causado por datos irrelevantes o redundantes.
Selección de características es el proceso de elegir un subconjunto de variables de entrada (features) de tus datos que sean más relevantes para el problema de modelado predictivo.
Los métodos de selección de características incluyen la revisión manual y técnicas automatizadas. En tareas de clasificación, se utilizan pruebas estadísticas para puntuar las características y seleccionar aquellas más fuertemente relacionadas con la variable objetivo.
Los métodos de selección de características más populares se agrupan en tres categorías:
- Métodos de filtro: Seleccionan características basándose en medidas estadísticas, como coeficientes de correlación o pruebas univariadas, independientemente de cualquier modelo de aprendizaje automático;
- Métodos wrapper: Utilizan un modelo predictivo para evaluar diferentes combinaciones de características, como con la eliminación recursiva de características (RFE), y seleccionan el subconjunto que proporciona el mejor rendimiento del modelo;
- Métodos embebidos: Realizan la selección de características como parte del proceso de entrenamiento del modelo, como la regularización Lasso, que elimina automáticamente las características menos importantes al reducir sus coeficientes a cero.
Cada método equilibra compensaciones entre costo computacional, interpretabilidad y poder predictivo.
1234567891011121314151617181920212223242526import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
En este ejemplo, se utiliza SelectKBest de scikit-learn con la función de puntuación f_classif para seleccionar las cinco características más relevantes—pclass, sex, parch, fare y embarked—del conjunto de datos Titanic. Este método evalúa cada característica de forma individual utilizando los valores F de ANOVA y selecciona aquellas con las puntuaciones más altas. Es eficaz para tareas de clasificación porque se centra en las características que mejor separan las clases objetivo.
Seleccionar demasiadas características, especialmente las irrelevantes, puede llevar a un sobreajuste, donde el modelo tiene un buen desempeño en los datos de entrenamiento pero un rendimiento deficiente en datos nuevos o no vistos. Una selección cuidadosa de características ayuda a reducir este riesgo y conduce a modelos más robustos.
La selección de características no solo mejora la precisión—también hace que tus modelos sean más rápidos y más fáciles de interpretar. Al enfocarse únicamente en las características más importantes, se simplifican los modelos y se reduce la probabilidad de aprender ruido de los datos.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain why only 'sex' and 'fare' were selected as features in the output?
What are some other feature selection methods I could try?
How does SelectKBest with f_classif work in more detail?
Awesome!
Completion rate improved to 8.33
Fundamentos de la Selección de Características
Desliza para mostrar el menú
La selección de características mejora el rendimiento del modelo al conservar solo las características más relevantes, reducir la complejidad y ayudar a prevenir el sobreajuste causado por datos irrelevantes o redundantes.
Selección de características es el proceso de elegir un subconjunto de variables de entrada (features) de tus datos que sean más relevantes para el problema de modelado predictivo.
Los métodos de selección de características incluyen la revisión manual y técnicas automatizadas. En tareas de clasificación, se utilizan pruebas estadísticas para puntuar las características y seleccionar aquellas más fuertemente relacionadas con la variable objetivo.
Los métodos de selección de características más populares se agrupan en tres categorías:
- Métodos de filtro: Seleccionan características basándose en medidas estadísticas, como coeficientes de correlación o pruebas univariadas, independientemente de cualquier modelo de aprendizaje automático;
- Métodos wrapper: Utilizan un modelo predictivo para evaluar diferentes combinaciones de características, como con la eliminación recursiva de características (RFE), y seleccionan el subconjunto que proporciona el mejor rendimiento del modelo;
- Métodos embebidos: Realizan la selección de características como parte del proceso de entrenamiento del modelo, como la regularización Lasso, que elimina automáticamente las características menos importantes al reducir sus coeficientes a cero.
Cada método equilibra compensaciones entre costo computacional, interpretabilidad y poder predictivo.
1234567891011121314151617181920212223242526import pandas as pd import seaborn as sns from sklearn.feature_selection import SelectKBest, f_classif from sklearn.preprocessing import LabelEncoder # Load Titanic dataset train = sns.load_dataset('titanic') # Select numeric and categorical columns (excluding target) features = ['pclass', 'sex', 'age', 'sibsp', 'parch', 'fare', 'embarked'] X = train[features].copy() y = train['survived'] # Encode categorical features X['sex'] = LabelEncoder().fit_transform(X['sex'].astype(str)) X['embarked'] = LabelEncoder().fit_transform(X['embarked'].astype(str)) # Handle missing values by filling with median (for simplicity) X = X.fillna(X.median(numeric_only=True)) # Select top 5 features based on ANOVA F-value selector = SelectKBest(score_func=f_classif, k=5) X_new = selector.fit_transform(X, y) selected_features = X.columns[selector.get_support()] print("Selected features:", list(selected_features))
En este ejemplo, se utiliza SelectKBest de scikit-learn con la función de puntuación f_classif para seleccionar las cinco características más relevantes—pclass, sex, parch, fare y embarked—del conjunto de datos Titanic. Este método evalúa cada característica de forma individual utilizando los valores F de ANOVA y selecciona aquellas con las puntuaciones más altas. Es eficaz para tareas de clasificación porque se centra en las características que mejor separan las clases objetivo.
Seleccionar demasiadas características, especialmente las irrelevantes, puede llevar a un sobreajuste, donde el modelo tiene un buen desempeño en los datos de entrenamiento pero un rendimiento deficiente en datos nuevos o no vistos. Una selección cuidadosa de características ayuda a reducir este riesgo y conduce a modelos más robustos.
La selección de características no solo mejora la precisión—también hace que tus modelos sean más rápidos y más fáciles de interpretar. Al enfocarse únicamente en las características más importantes, se simplifican los modelos y se reduce la probabilidad de aprender ruido de los datos.
¡Gracias por tus comentarios!