¿Qué es la ingeniería de funciones?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

¿Qué es la ingeniería de características?

La ingeniería de funciones procesa previamente los datos sin procesar en un formato legible para la máquina. Optimiza el rendimiento del modelo de ML transformando y seleccionando funciones relevantes.

La ingeniería de características es el proceso de transformar datos sin procesar en información relevante para su uso en modelos de machine learning. En otras palabras, la ingeniería de características es el proceso de creación de características de modelos predictivos. Una característica, también llamada dimensión, es una variable de entrada que se utiliza para generar predicciones del modelo. Dado que el rendimiento del modelo depende en gran medida de la calidad de los datos utilizados durante el entrenamiento, la ingeniería de características es una técnica de preprocesamiento crucial que requiere seleccionar los aspectos más relevantes de los datos de entrenamiento sin procesar tanto para la tarea predictiva como para el tipo de modelo en cuestión1.

Antes de continuar, una breve nota sobre terminología. Muchas fuentes utilizan indistintamente ingeniería de características y extracción de características para referirse al proceso de creación de variables del modelo2. A veces, las fuentes también utilizan la extracción de características para referirse a la reasignación de un espacio de características original en un espacio de características de dimensión inferior3. La selección de características, por el contrario, es una forma de reducción de la dimensionalidad. En concreto, se trata del proceso de selección de un subconjunto de variables para crear un nuevo modelo con el fin de reducir la multicolinealidad y así maximizar la generalizabilidad y optimización del modelo.

Las últimas tendencias en IA, presentadas por expertos

Obtenga conocimientos organizados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM.

¡Gracias! Está suscrito.

Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Proceso de la ingeniería de funciones

Dado que un modelo es tan bueno como los datos en los que se basa, los científicos de datos dedican gran parte de su tiempo a la data preparation y a la creación de funciones para crear modelos de alta calidad. Según la complejidad de los datos sin procesar y del modelo predictivo deseado, la ingeniería de funciones puede requerir mucho ensayo y error.

Un puñado de fuentes y tutoriales en línea desglosan la ingeniería de características en pasos diferenciados, cuyo número y nombres suelen variar. Estos pasos pueden incluir la comprensión, estructuración o construcción de características, la transformación, la evaluación, la optimización y un largo etcétera4. Aunque esta estratificación puede ser útil para ofrecer una visión general de las tareas que implica la ingeniería de características, sugiere que esta es un proceso lineal. De hecho, se trata de un proceso iterativo.

La ingeniería de características depende del contexto. Requiere un análisis de datos sustancial y conocimiento del dominio. Esto se debe a que la codificación eficaz de las características puede determinarse por el tipo de modelo utilizado, la relación entre los predictores y el resultado, así como por el problema que se pretende abordar con un modelo5. A esto se suma el hecho de que diferentes tipos de conjuntos de datos (por ejemplo, texto versus imágenes) pueden ser más adecuados para diferentes técnicas de ingeniería de características6. Por lo tanto, puede ser difícil hacer observaciones específicas sobre la mejor manera de implementar la ingeniería de características dentro de un algoritmo de machine learning determinado.

Mixture of Experts | 12 de diciembre, episodio 85

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Técnicas de ingeniería de funciones

Aunque no existe un método o canalización de ingeniería de funciones preferido universalmente, hay un puñado de tareas comunes que se utilizan para crear funciones a partir de diferentes tipos de datos para diferentes modelos. Sin embargo, antes de implementar cualquiera de estas técnicas, hay que recordar realizar un análisis exhaustivo de los datos para determinar tanto las funciones relevantes como el número adecuado de funciones para abordar un problema determinado. Además, es mejor implementar diversas técnicas de limpieza y preprocesamiento de datos, como la imputación de datos o missing values, al tiempo que se abordan los valores atípicos que pueden afectar negativamente a las predicciones del modelo.

Transformación de funciones

La transformación de funciones es el proceso de convertir un tipo de función en otra forma más legible para un modelo en particular. Consiste en transformar datos continuos en categóricos, o viceversa.

Binning. Esta técnica transforma esencialmente valores numéricos continuos en características categóricas. En concreto, el binning compara cada valor con el entorno de valores que lo rodean y, a continuación, clasifica los puntos de datos en una serie de intervalos. Un ejemplo rudimentario de binning son los datos demográficos por edad, en los que las edades continuas se dividen en grupos de edad, por ejemplo, 18-25, 25-30, etc. Una vez que los valores se han colocado en intervalos, estos últimos pueden suavizarse aún más mediante medias, medianas o límites. El suavizado de intervalos reemplaza los valores contenidos en uno de ellos por valores derivados del mismo. Por ejemplo, si suavizamos un intervalo que contiene valores de edad entre 18 y 25 años mediante la media, reemplazamos cada valor de ese intervalo por la media de los valores del mismo. El binning crea valores categóricos a partir de valores continuos. El suavizado de intervalos es una forma de suavizado local destinado a reducir el ruido en los datos de entrada7.

Codificación one-hot. Es lo contrario del binning; crea características numéricas a partir de variables categóricas. La codificación one-hot asigna características categóricas a representaciones binarias, que se utilizan para asignar la característica en una matriz o espacio vectorial. En los estudios se suele hacer referencia a esta representación binaria como variable ficticia. Dado que la codificación one-hot ignora el orden, es mejor utilizarla para categorías nominales. Los modelos bag of words son un ejemplo de codificación one-hot que se utiliza con frecuencia en tareas de procesamiento del lenguaje natural . Otro ejemplo de codificación one-hot es la clasificación de filtrado de spam, en la que las categories spam y no spam se convierten en 1 y 0 respectivamente8.

Tabla que ilustra la codificación one-hot para la clasificación de spam

Extracción y selección de características

La extracción de características es una técnica para crear un nuevo espacio dimensional para un modelo mediante la combinación de variables en nuevas variables sustitutivas o con el fin de reducir las dimensiones del espacio de características del modelo9. En comparación, la selección de características denota técnicas para seleccionar un subconjunto de las características más relevantes para representar un modelo. Tanto la extracción como la selección de características son formas de reducción de la dimensionalidad, por lo que son adecuadas para problemas de regresión con un gran número de características y muestras de datos disponibles limitadas.

Análisis de componentes principales. El análisis de componentes principales (ACP) es un método común de extracción de características que combina y transforma las características originales de un conjunto de datos para producir nuevas características, llamadas componentes principales. El ACP selecciona un subconjunto de variables de un modelo que, en conjunto, comprenden la mayor parte o la totalidad de la varianza presente en el conjunto original de variables del modelo. A continuación, el ACP proyecta los datos en un nuevo espacio definido por este subconjunto de variables10.

Análisis discriminante lineal. El análisis discriminante lineal (ADL) es aparentemente similar al ACP porque proyecta los datos del modelo en un espacio nuevo, de menor dimensión. Al igual que en el ACP, las dimensiones (o características) de este espacio de modelos se derivan de las características del modelo inicial. Sin embargo, el ADL se diferencia del ACP en que se preocupa por conservar las etiquetas de clasificación en el conjunto de datos original. Mientras que el ACP produce nuevas variables componentes destinadas a maximizar la varianza de los datos, el ADL produce variables componentes destinadas principalmente a maximizar la diferencia de clases en los datos11.

Escalado de características

Ciertas características tienen límites superiores e inferiores intrínsecos a los datos que limitan los posibles valores de las características, como los datos de series temporales o la edad. Pero en muchos casos, las características del modelo pueden no tener una limitación en los valores posibles, y escalas de características tan grandes (que son la diferencia entre los valores más bajos y más altos de las características) pueden afectar de forma negativa a ciertos modelos. El escalado de características (a veces llamado normalización de características) es una técnica de estandarización para reescalar características y limitar el impacto de grandes escalas en los modelos12. Mientras que la transformación de características transforma los datos de un tipo a otro, el escalado de características transforma los datos en términos de rango y distribución, manteniendo su tipo de datos original13.

Escalado mín.-máx. El escalado mínimo-máximo reescala todos los valores de una característica determinada para que se encuentren entre los valores mínimo y máximo especificados, a menudo 0 y 1. El valor de cada punto de datos para la característica seleccionada (representado por x) se calcula en función de los valores mínimo y máximo de la característica, mín.(x) y máx.(x) respectivamente, lo que produce el nuevo valor de característica para ese punto de datos (representado por ) . El escalado mín.-máx. se calcula mediante la fórmula14:

Ecuación mín-máx

Escalado de puntuación Z. La literatura también se refiere a esto como estandarización y escalado de varianza. Mientras que el escalado mínimo-máximo escala los valores de las entidades para que se ajusten a los valores mínimos y máximos designados, el escalado de puntuación z vuelve a escalar las entidades para que tengan una desviación estándar compartida de 1 con una media de 0. El escalado de puntuación Z se representa mediante la fórmula:

Ecuación de puntuación Z

Aquí, un valor de característica dado (x) se calcula con respecto a la media de la característica reescalada y se divide por la desviación estándar estandarizada (representada como sqrt(var(x))). El escalado Z-score puede ser útil al implementar métodos de extracción de características como ACP y ADL, ya que estos dos métodos requieren que las características compartan la misma escala15.

Investigación reciente

Automatización. La ingeniería automatizada de características ha sido, sin duda, un área de investigación continua durante algunas décadas16. Las bibliotecas de Python como "tsflex" y "featuretools" ayudan a automatizar la extracción y transformación de características para datos de series temporales. Los desarrolladores continúan proporcionando nuevos paquetes y algoritmos para automatizar la ingeniería de características para modelos de regresión lineal y otros tipos de datos que aumentan la precisión del modelo17. Más recientemente, la ingeniería automatizada de características ha figurado como parte de esfuerzos más amplios para crear sistemas automatizados de machine learning (AutoML), que tienen como objetivo hacer que el machine learning sea más accesible para los no expertos18.

Deep learning. La ingeniería de características puede ser un proceso laborioso y lento, que implica una cantidad significativa de prueba y error. El deep learning permite al usuario especificar un pequeño conjunto de características básicas que la arquitectura de la red neuronal agrega en características de nivel superior, también llamadas representaciones19. Un ejemplo de ello es el procesamiento de imágenes por visión artificial y el reconocimiento de patrones, en los que un modelo aprende a identificar objetos semánticamente significativos (por ejemplo, coches, personas, etc.) en términos de conceptos simples (por ejemplo, bordes, contornos, etc.) concatenando mapas de características20. Sin embargo, estudios recientes han combinado la ingeniería de características con redes neuronales y otras técnicas de deep learning para tareas de clasificación, como la detección del fraude, con resultados prometedores21.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste e implemente IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de nueva generación para desarrolladores de IA. Cree aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia líder en IA del sector de IBM y junto a su cartera de soluciones.

Explore las soluciones de IA
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida de desarrollo de la IA. Produzca potentes soluciones de IA con interfaces intuitivas, flujos de trabajo y acceso a API y SDK estándar del sector.

Explore watsonx.ai Solicite una demostración en directo
Notas a pie de página

1 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018. Sinan Ozdemir y Divya Susarla. Feature Engineering Made Easy [Feature engineering made easy]. Packt. 2018.

2 Yoav Goldberg. Neural Network Methods for Natural Language Processing [Neural network methods for natural language processing]. Springer. 2022.

3 Suhang Wang, Jiliang Tang y Huan Liu. “Feature Selection” [Feature selection]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017.

4 Sinan Ozdemir. Feature Engineering Bookcamp [Feature engineering bootcamp]. Manning Publications. 2022. Sinan Ozdemir y Divya Susarla. Feature Engineering Made Easy [Feature engineering made easy]. Packt. 2018.

5 Max Kuhn y Kjell Johnson. Applied Predictive Modeling [Applied predictive modeling]. Springer. 2016.

6 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

7 Jiawei Han. Data Mining: Concepts and Techniques [Data mining: concepts and techniques]. 3ª edición. 2012.

8 Kevin Murphy. Machine Learning: A Probabilistic Perspective [Machine learning: a probabilistic perspective]. MIT Press. 2012. Soledad Galli. Python Feature Engineering Cookbook [Python feature engineering cookbook]. 2ª edición. Packt. 2022.

9 Max Kuhn y Kjell Johnson. Applied Predictive Modeling [Applied predictive modeling]. Springer. 2016.

10 I.T. Jolliffe. Principal Component Analysis [Principal component analysis]. Springer. 2002.

11 Chris Albon. Machine Learning with Python Cookbook [Machine learning with Python cookbook]. O'Reilly. 2018.

12 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

13 Zahraa Abdallah, Lan Du y Geoffrey Webb. “Data preparation” [Data preparation]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017.

14 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

15 Zahraa Abdallah, Lan Du y Geoffrey Webb. “Data preparation” [Data preparation]. Encyclopedia of Machine Learning and Data Mining. Springer. 2017. Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

16 James Kanter y Kalyan Veeramachaneni. “Deep feature synthesis: Towards automating data science endeavors” [Deep feature synthesis: toward automating data-science work]. IEEE International Conference on Data Science and Advanced Analytics. 2015. https://ieeexplore.ieee.org/document/7344858.

17 Udayan Khurana, Deepak Turaga, Horst Samulowitz y Srinivasan Parthasrathy. “Cognito: Automated Feature Engineering for Supervised Learning” [Cognito: automated feature engineering for supervised learning]. IEEE 16th International Conference on Data Mining Workshops. 2016. pp. 1304–130. https://ieeexplore.ieee.org/abstract/document/7836821. Franziska Horn, Robert Pack y Michael Rieger. “The autofeat Python Library for Automated Feature Engineering and Selection” [The autofeat Python library for automated feature engineering and selection]. Joint European Conference on Machine Learning and Knowledge Discovery in Databases. 2019. pp. 111–120. https://link.springer.com/chapter/10.1007/978-3-030-43823-4_10.

18 Ahmad Alsharef, Karan Aggarwal, Sonia, Manoj Kumar y Ashutosh Mishra. “Review of ML and AutoML Solutions to Forecast Time-Series Data” [Review of ML and AutoML solutions for forecasting time-series data]. Archives of Computational Methods in Engineering. Vol. 29. 2022. pp. 5297–5311. https://link.springer.com/article/10.1007/s11831-022-09765-0. Sjoerd Boeschoten, Cagatay Catal, Bedir Tekinerdogan, Arjen Lommen y Marco Blokland. “The automation of the development of classification models and improvement of model quality using feature engineering techniques” [Automation of classification-model development and quality improvement using feature-engineering techniques]. Expert Systems with Applications. Vol. 213. 2023. https://www.sciencedirect.com/science/article/pii/S0957417422019303. Shubhra Kanti Karmaker, Mahadi Hassan, Micah Smith, Lei Xu, Chengxiang Zhai y Kalyan Veeramachaneni. “AutoML to Date and Beyond: Challenges and Opportunities” [AutoML to date and beyond: challenges and opportunities]. Encuestas de ACM Computing. Vol. 54. N.º 8. 2022. pp. 1-36. https://dl.acm.org/doi/abs/10.1145/3470918.

19 Yoav Goldberg. Neural Network Methods for Natural Language Processing [Neural network methods for natural language processing]. Springer. 2022.

20 Ian Goodfellow, Yoshua Bengio y Aaron Courville. Deep Learning. MIT Press. 2016. https://www.deeplearningbook.org/.

21 Xinwei Zhang, Yaoci Han, Wei Xu y Qili Wang. “HOBA: A novel feature engineering methodology for credit card fraud detection with a deep learning architecture” [HOBA: a novel feature-engineering methodology for credit-card fraud detection using a deep-learning architecture]. Information Sciences. Vol. 557. 2021. pp. 302–316. https://www.sciencedirect.com/science/article/abs/pii/S002002551930427X. Daniel Gibert, Jordi Planes, Carles Mateu y Quan Le. “Fusing feature engineering and deep learning: A case study for malware classification” [Fusing feature engineering and deep learning: a case study for malware classification]. Expert Systems with Applications. Vol. 207. 2022. https://www.sciencedirect.com/science/article/pii/S0957417422011927. Ebenezerm Esenogho, Ibomoiye Domor Mienye, Theo Swart, Kehinde Aruleba y George Obaido. “A Neural Network Ensemble With Feature Engineering for Improved Credit Card Fraud Detection” [A neural-network ensemble with feature engineering for improved credit-card fraud detection]. IEEE Access. Vol. 10. 2020. pp. 16400–16407. https://ieeexplore.ieee.org/abstract/document/9698195.