Aprenda a enfrentar uno de los mayores desafíos del aprendizaje automático con lo mejor de los selectores de funciones de Sklearn.
Hoy en día, es común que los conjuntos de datos tengan cientos, si no miles, de características. En la superficie, esto puede parecer algo bueno: más funciones brindan más información sobre cada muestra. Pero la mayoría de las veces, estas funciones adicionales no brindan mucho valor e introducen complejidad. El mayor desafío del aprendizaje automático es crear modelos que tengan un poder predictivo sólido mediante el uso de la menor cantidad de funciones posible. Pero dados los tamaños masivos de los conjuntos de datos actuales, es fácil perder la supervisión de qué características son importantes y cuáles no. Es por eso que hay toda una habilidad que aprender en el campo de ML: la selección de características. La selección de funciones es el proceso de elegir un subconjunto de las funciones más importantes mientras se intenta retener la mayor cantidad de información posible (un extracto del primer artículo de esta serie). Como la selección de funciones es un problema tan apremiante, hay una gran cantidad de soluciones. puedes seleccionar entre🤦♂️🤦♂️. Para ahorrarle un poco de dolor, le enseñaré 3 técnicas de selección de características que, cuando se usan juntas, pueden potenciar el rendimiento de cualquier modelo. Este artículo le brindará una descripción general de estas técnicas y cómo usarlas sin preguntarse demasiado sobre las partes internas. Para una comprensión más profunda, he escrito publicaciones separadas para cada uno con el meollo de la cuestión explicado. ¡Empecemos!
Trabajaremos con el conjunto de datos de Ansur Male, que contiene más de 100 medidas diferentes del cuerpo del personal del Ejército de EE. UU. He estado usando este conjunto de datos en exceso a lo largo de esta serie de selección de funciones porque contiene 98 funciones numéricas, un conjunto de datos perfecto para enseñar la selección de funciones.
La primera técnica estará dirigida a las propiedades individuales de cada característica. La idea detrás del Umbral de varianza es que las características con una varianza baja no contribuyen mucho a las predicciones generales. Estos tipos de características tienen distribuciones con muy pocos valores únicos o variaciones lo suficientemente bajas como para que no importe. VT nos ayuda a eliminarlos usando Sklearn. Una preocupación antes de aplicar VT es la escala de características. A medida que los valores de una característica aumentan, la varianza crece exponencialmente. Esto significa que las características con diferentes distribuciones tienen diferentes escalas, por lo que no podemos comparar sus varianzas con seguridad. Entonces, debemos aplicar alguna forma de normalización para llevar todas las características a la misma escala y luego aplicar VT. Aquí está el código: Después de la normalización (aquí, estamos dividiendo cada muestra por la media de la función), debe elegir un umbral entre 0 y 1. En lugar de usar el método .transform() del estimador VT, estamos usando get_support( ) que proporciona una máscara booleana (valores verdaderos para las funciones que deben conservarse). Luego, se puede usar para crear subconjuntos de datos mientras se conservan los nombres de las columnas. Esta puede ser una técnica simple, pero puede llevar mucho tiempo eliminando características inútiles. Para una visión más profunda y más explicaciones del código, puede dirigirse a este artículo:
Recortaremos aún más nuestro conjunto de datos centrándonos en las relaciones entre las características. Una de las mejores métricas que muestran una conexión lineal es el coeficiente de correlación de Pearson (denotado r). La lógica detrás del uso de r para la selección de características es simple. Si la correlación entre las características A y B es 0,9, significa que puede predecir los valores de B utilizando los valores de A el 90 % de las veces. En otras palabras, en un conjunto de datos donde A está presente, puede descartar B o viceversa.
Finalmente, elegiremos el conjunto final de características en función de cómo afectan el rendimiento del modelo. La mayoría de los modelos de Sklearn tienen atributos .coef_ (modelos lineales) o .feature_importances_ (modelos basados en árboles y conjuntos) que muestran la importancia de cada característica. Por ejemplo, ajustemos el modelo de regresión lineal al conjunto actual de características y veamos los coeficientes calculados:
La selección de características no debe tomarse a la ligera. Al tiempo que reducen la complejidad del modelo, algunos algoritmos pueden incluso ver un aumento en el rendimiento debido a la falta de características que distraigan en el conjunto de datos. Tampoco es aconsejable confiar en un solo método. En lugar de eso, aborde el problema desde diferentes ángulos y use varias técnicas. Hoy vimos cómo aplicar la selección de características a un conjunto de datos en tres etapas: En función de las propiedades de cada característica usando Umbral de varianza. En base a las relaciones entre características usando Correlación por pares. Basado en cómo las características afectan el rendimiento de un modelo. El uso de estas técnicas en procesión debería brindarle resultados confiables para cualquier problema supervisado que enfrente.
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…