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

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 características preprocesa los datos sin procesar en un formato legible por máquina. Optimiza el rendimiento del modelo de ML mediante la transformación y selección de características relevantes.

La ingeniería de características es el proceso de transformar datos sin procesar en información relevante para utilizarla en modelos de aprendizaje automático. En otras palabras, la ingeniería de características es el proceso de crear 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 fundamental 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 consideración1.

Antes de continuar, un breve comentario sobre la terminología. Muchas fuentes emplean ingeniería de características y extracción de características indistintamente para denotar el proceso de creación de variables del modelo2. A veces, las fuentes también emplean 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 menor dimensionalidad3. La selección de características, por el contrario, es una forma de reducción de la dimensionalidad. Específicamente, es el proceso de seleccionar un subconjunto de variables para crear un nuevo modelo con el propósito de reducir la multicolinealidad y así maximizar la posibilidad de generalizar y optimizar el modelo.

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados 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! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 ingeniería de características

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

Un puñado de fuentes y tutoriales en línea desglosan la ingeniería de características en distintos pasos, que suelen variar en cuanto a su cantidad y denominación. Estos pasos pueden incluir comprensión, estructuración o construcción, transformación, evaluación y optimización de características, y la lista continúa4. Si bien dicha estratificación puede ser útil para proporcionar una visión general de las tareas involucradas en la ingeniería de características, indica que se trata de un proceso lineal. De hecho, la ingeniería de características es 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 los diferentes tipos de conjuntos de datos, por ejemplo, texto frente a 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 comentarios específicos sobre cómo implementar mejor la ingeniería de características dentro de un algoritmo de aprendizaje aprendizaje automático.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de 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 revuelo de la IA para ofrecerle las últimas noticias e insights al respecto.

Técnicas de ingeniería de características

Aunque no existe un método o canalización de ingeniería de características preferido universalmente, hay un puñado de tareas comunes que se utilizan para crear características a partir de diferentes tipos de datos para distintos modelos. Sin embargo, antes de implementar cualquiera de estas técnicas, se debe recordar realizar un análisis exhaustivo de los datos para determinar tanto las características relevantes como la cantidad adecuada de características 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 faltantes o missing values, al tiempo que se abordan los valores atípicos que pueden afectar negativamente las predicciones del modelo.

Transformación de características

La transformación de características es el proceso de convertir un tipo de característica en otra forma más legible para un modelo en particular. Esto consiste en transformar datos continuos en datos categóricos, o viceversa.

Discretización. Esta técnica esencialmente transforma los valores numéricos continuos en características categóricas. Específicamente, la discretización (binning) compara cada valor con los valores vecinos que lo rodean y luego ordena los puntos de datos en varios segmentos o intervalos (bins) Un ejemplo rudimentario de discretización es la demografía por edad, en la que las edades continuas se dividen en grupos de edad, por ejemplo, de 18 a 25 años, de 25 a 30 años, etc. Una vez que los valores se han colocado en segmentos, estos se pueden suavizar aún más a través de medias, medianas y límites. Al suavizar los segmentos se reemplazan los valores incluidos en un segmento con valores derivados del mismo. Por ejemplo, si se suaviza un segmento que contiene valores de edad entre 18-25 por la media, reemplazamos cada valor en ese segmento con la media de los valores de ese segmento. La discretización crea valores categóricos a partir de valores continuos. Suavizar los segmentos es una forma local de suavizado destinada a reducir el ruido en los datos de entrada7.

Codificación one-hot. Es lo contrario de la discretización; 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. La literatura a menudo se refiere a esta representación binaria como una variable ficticia. Dado que la codificación one-hot ignora el orden, es ideal 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 de 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.

Cuadro ilustrativo de la codificación one-hot para la clasificación del 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 sustitutas o para 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 y, por lo tanto, adecuadas para problemas de regresión con una gran cantidad de características y muestras de datos de disponibilidad limitada.

Análisis de componentes principales. El análisis de componentes principales (PCA, sigla en inglés de principal component analysis) 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, denominadas componentes principales. El PCA selecciona un subconjunto de variables de un modelo que en conjunto comprenden la mayoría o la totalidad de la varianza presente en el conjunto original de variables del modelo. A continuación, el PCA proyecta los datos en un nuevo espacio definido por este subconjunto de variables10.

Análisis discriminatorio lineal. El análisis discriminatorio lineal (LDA, sigla en inglés de linear discriminant analysis) es en apariencia similar al PCA en el sentido de que proyecta los datos del modelo en un nuevo espacio de menor dimensionalidad. Al igual que en el PCA, las dimensiones (o características) de este espacio modelo se derivan de las características del modelo inicial. Sin embargo, el LDA se diferencia del PCA en su preocupación por conservar las etiquetas de clasificación en el conjunto de datos original. Mientras que PCA produce nuevas variables de componentes destinadas a maximizar la varianza de los datos, LDA produce variables de componentes principalmente destinadas a maximizar la diferencia de clase en los datos.11

Escalado de características

Algunas 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 antigüedad. Pero en muchos casos, es posible que las características del modelo no tengan una limitación en los valores posibles, y esas grandes escalas de características (que son la diferencia entre los valores más bajos y más altos de una característica) pueden afectar negativamente a ciertos modelos. El escalado de características (a veces denominado normalización de características) es una técnica de estandarización para cambiar la escala de características y limitar el impacto de las escalas grandes 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ínimo-máximo. El escalado mínimo-máximo reescala todos los valores de una característica determinada para que se sitúen 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 de característica mínimos y máximos decididos, min(x) y max(x) respectivamente, lo que produce el nuevo valor de característica para ese punto de datos (representado por ) . El escalado mínimo-máximo se calcula mediante la fórmula14.

Ecuación de mínimo-máximo

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

Ecuación de la puntuación Z

Aquí, un valor de característica dado (x) se calcula en relación con la media de la característica reescalada y se divide entre la desviación estándar estandarizada (representada como sqrt(var(x))). El escalado de puntuación Z puede ser útil cuando se implementan métodos de extracción de características como PCA y LDA, ya que estos dos métodos requieren que las características compartan la misma escala.15

Investigación reciente

Automatización. La ingeniería de características automatizada ha sido, efectivamente, 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 de características automatizada ha figurado como una parte de esfuerzos más grandes para crear sistemas automatizados de aprendizaje automático (AutoML), cuyo objetivo es hacer que el aprendizaje automático sea más accesible para quienes no son expertos18.

Aprendizaje profundo. La ingeniería de características puede ser un proceso laborioso y lento, que implica una cantidad significativa de ensayo y error. El aprendizaje profundo 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 denominadas representaciones19. Un ejemplo de ello es el procesamiento de imágenes de visión artificial y el reconocimiento de patrones, en el que un modelo aprende a identificar objetos semánticamente significativos (por ejemplo, autos, personas, etc.) en términos de conceptos simples (por ejemplo, bordes, contornos, etc.) concatenando mapas de características20. Sin embargo, en estudios recientes se han combinado la ingeniería de características con redes neuronales y otras tareas de técnicas de clasificación del aprendizaje profundo, como la detección de fraude, con resultados prometedores21.

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe 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 en IA líder en la industria y la cartera de soluciones de IBM a su lado.

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

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

Conozca los servicios de IA
Dé el siguiente paso

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

Explore watsonx.ai Reserve una demostración en vivo
Notas de pie de página

1 Alice Zheng and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018. Sinan Ozdemir and 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, and 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 and Divya Susarla. Feature Engineering Made Easy [Feature engineering made easy]. Packt. 2018.

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

6 Alice Zheng and 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]. 3rd edition. 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]. 2nd edition. Packt. 2022.

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

10 TI 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 and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

13 Zahraa Abdallah, Lan Du, and 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 and Amanda Casari. Feature Engineering for Machine Learning [Feature engineering for machine learning]. O'Reilly. 2018.

16 James Kanter and 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, and 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, and 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, and 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, and 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, and Kalyan Veeramachaneni. “AutoML to Date and Beyond: Challenges and Opportunities” [AutoML to date and beyond: challenges and opportunities]. ACM Computing Surveys. Vol. 54. No. 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, and Aaron Courville. Deep Learning. MIT Press. 2016. https://www.deeplearningbook.org/.

21 Xinwei Zhang, Yaoci Han, Wei Xu, and 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, and 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, and 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.