Aprenda ingeniería de funciones para ciencia de datos y aprendizaje automático en 5 minutos

¿Estás listo para aprender ingeniería de funciones para el aprendizaje automático y la ciencia de datos? ¡Estás en el lugar correcto!

La ingeniería de funciones es una habilidad fundamental para extraer información valiosa de los datos y, en esta guía rápida, la dividiré en partes simples y digeribles. Entonces, ¡profundicemos y comencemos su viaje para dominar la extracción de funciones!

Tabla de contenido

¿Qué es la ingeniería de funciones?

Cuando crea un modelo de aprendizaje automático relacionado con un problema empresarial o experimental, proporciona datos de aprendizaje en columnas y filas. En el dominio de la ciencia de datos y el desarrollo de ML, las columnas se conocen como atributos o variables.

Los datos granulares o las filas debajo de estas columnas se conocen como observaciones o instancias. Las columnas o atributos son las características de un conjunto de datos sin procesar.

Estas características sin procesar no son suficientes ni óptimas para entrenar un modelo de aprendizaje automático. Para reducir el ruido de los metadatos recopilados y maximizar las señales únicas de las funciones, es necesario transformar o convertir columnas de metadatos en funciones funcionales mediante ingeniería de funciones.

Ejemplo 1: modelado financiero

Datos sin procesar para el entrenamiento de modelos ML

Por ejemplo, en la imagen de arriba de un conjunto de datos de ejemplo, las columnas de la A a la G son características. Los valores o cadenas de texto en cada columna a lo largo de las filas, como nombres, monto del depósito, años de depósito, tasas de interés, etc., son observaciones.

En el modelado de ML, debe eliminar, agregar, combinar o transformar datos para crear características significativas y reducir el tamaño de la base de datos de entrenamiento del modelo general. Esta es la ingeniería de características.

Ejemplo de ingeniería de características

En el mismo conjunto de datos mencionado anteriormente, características como Tenure Total y Interest Amount son entradas innecesarias. Estos simplemente ocuparán más espacio y confundirán el modelo ML. Por lo tanto, puede reducir dos funciones de un total de siete funciones.

Dado que las bases de datos en los modelos ML contienen miles de columnas y millones de filas, la reducción de dos funciones tiene un gran impacto en el proyecto.

Ejemplo 2: Creador de listas de reproducción de música con IA

A veces, puedes crear una función completamente nueva a partir de varias funciones existentes. Suponga que está creando un modelo de IA que creará automáticamente una lista de reproducción de música y canciones según el evento, el gusto, el modo, etc.

Ahora, recopiló datos sobre canciones y música de varias fuentes y creó la siguiente base de datos:

Hay siete características en la base de datos anterior. Sin embargo, dado que su objetivo es entrenar el modelo ML para decidir qué canción o música es adecuada para cada evento, puede agrupar funciones como Género, Clasificación, Ritmos, Tempo y Velocidad en una nueva función llamada Aplicabilidad.

Ahora, ya sea mediante experiencia o identificación de patrones, puedes combinar ciertas instancias de características para determinar qué canción es adecuada para cada evento. Por ejemplo, observaciones como Jazz, 4.9, X3, Y3 y Z1 le dicen al modelo ML que la canción Cras maximus justo et debería estar en la lista de reproducción del usuario si está buscando una canción para dormir.

Tipos de funciones en el aprendizaje automático

Características categóricas

Estos son atributos de datos que representan categorías o etiquetas distintas. Debe utilizar este tipo para etiquetar conjuntos de datos cualitativos.

#1. Características categóricas ordinales

Las características ordinales tienen categorías con un orden significativo. Por ejemplo, los niveles educativos como Bachillerato, Licenciatura, Maestría, etc., tienen una clara distinción en los estándares, pero no existen diferencias cuantitativas.

#2. Características categóricas nominales

Los rasgos nominales son categorías sin ningún orden inherente. Algunos ejemplos podrían ser colores, países o tipos de animales. Además, sólo existen diferencias cualitativas.

Características de la matriz

Este tipo de característica representa datos organizados en matrices o listas. Los científicos de datos y los desarrolladores de ML suelen utilizar funciones de matriz para manejar secuencias o incrustar datos categóricos.

#1. Incorporación de características de matriz

Las matrices integradas convierten datos categóricos en vectores densos. Se utiliza comúnmente en sistemas de recomendación y procesamiento de lenguaje natural.

#2. Características de la matriz de lista

Las matrices de listas almacenan secuencias de datos, como listas de elementos en un pedido o el historial de acciones.

Características numéricas

Estas funciones de entrenamiento de ML se utilizan para realizar operaciones matemáticas, ya que estas funciones representan datos cuantitativos.

#1. Características numéricas de intervalo

Las funciones de intervalo tienen intervalos consistentes entre valores pero no tienen un punto cero verdadero (por ejemplo, datos de monitoreo de temperatura). Aquí, cero significa temperatura bajo cero, pero el atributo sigue ahí.

#2. Características numéricas de relación

Las características de relación tienen intervalos consistentes entre valores y un punto cero verdadero. Los ejemplos incluyen edad, altura e ingresos.

Importancia de la ingeniería de funciones en ML y ciencia de datos

  • La extracción eficaz de características mejora la precisión del modelo, lo que hace que las predicciones sean más confiables y valiosas para la toma de decisiones.
  • La selección cuidadosa de características elimina atributos irrelevantes o redundantes, simplificando los modelos y ahorrando recursos computacionales.
  • Las funciones bien diseñadas revelan patrones de datos, lo que ayuda a los científicos de datos a comprender relaciones complejas dentro del conjunto de datos.
  • Adaptar funciones a algoritmos específicos puede optimizar el rendimiento del modelo a través de varios métodos de aprendizaje automático.
  • Las funciones bien diseñadas conducen a un entrenamiento de modelos más rápido y costos computacionales reducidos, lo que optimiza el flujo de trabajo de ML.
  • A continuación, exploraremos el proceso paso a paso de ingeniería de funciones.

    Proceso de ingeniería de funciones paso a paso

  • Recopilación de datos: el paso inicial implica recopilar datos sin procesar de varias fuentes, como bases de datos, archivos o API.
  • Limpieza de datos: una vez que tenga sus datos, debe limpiarlos identificando y rectificando cualquier error, inconsistencia o valor atípico.
  • Manejo de valores faltantes: los valores faltantes pueden confundir el almacén de características del modelo ML. Si los ignora, su modelo estará sesgado. Por lo tanto, debe investigar más para ingresar los valores faltantes u omitirlos cuidadosamente sin afectar el modelo con sesgo.
  • Codificación de variables categóricas: debe convertir variables categóricas a formato numérico para algoritmos de aprendizaje automático.
  • Escalado y normalización: el escalado garantiza que las características numéricas estén en una escala consistente. Evita que características con valores grandes dominen el modelo de aprendizaje automático.
  • Selección de características: este paso ayuda a identificar y retener las características más relevantes, reduciendo la dimensionalidad y mejorando la eficiencia del modelo.
  • Creación de funciones: a veces, se pueden diseñar nuevas funciones a partir de las existentes para capturar información valiosa.
  • Transformación de características: las técnicas de transformación como logaritmos o transformaciones de potencia pueden hacer que sus datos sean más adecuados para el modelado.
  • A continuación, analizaremos los métodos de ingeniería de características.

    Métodos de ingeniería de características

    #1. Análisis de Componentes Principales (PCA)

    PCA simplifica datos complejos al encontrar nuevas características no correlacionadas. Estos se llaman componentes principales. Puede usarlo para reducir la dimensionalidad y mejorar el rendimiento del modelo.

    #2. Características polinómicas

    Crear entidades polinómicas significa agregar potencias de características existentes para capturar relaciones complejas en sus datos. Ayuda a su modelo a comprender patrones no lineales.

    #3. Manejo de valores atípicos

    Los valores atípicos son puntos de datos inusuales que pueden afectar el rendimiento de sus modelos. Debe identificar y gestionar los valores atípicos para evitar resultados sesgados.

    #4. Transformación de registro

    La transformación logarítmica puede ayudarle a normalizar datos con una distribución sesgada. Reduce el impacto de los valores extremos para que los datos sean más adecuados para el modelado.

    #5. Incrustación de vecinos estocásticos distribuidos en t (t-SNE)

    t-SNE es útil para visualizar datos de alta dimensión. Reduce la dimensionalidad y hace que los clústeres sean más evidentes al tiempo que preserva la estructura de los datos.

    En este método de extracción de características, los puntos de datos se representan como puntos en un espacio de dimensiones inferiores. Luego, se colocan los puntos de datos similares en el espacio original de alta dimensión y se modelan para que estén cerca unos de otros en la representación de menor dimensión.

    Se diferencia de otros métodos de reducción de dimensionalidad al preservar la estructura y las distancias entre los puntos de datos.

    #6. Codificación en caliente

    La codificación one-hot transforma variables categóricas en formato binario (0 o 1). Entonces, obtienes nuevas columnas binarias para cada categoría. La codificación one-hot hace que los datos categóricos sean adecuados para los algoritmos de aprendizaje automático.

    #7. Codificación de recuento

    La codificación de recuento reemplaza los valores categóricos con la cantidad de veces que aparecen en el conjunto de datos. Puede capturar información valiosa de variables categóricas.

    En este método de ingeniería de características, se utiliza la frecuencia o el recuento de cada categoría como una nueva característica numérica en lugar de utilizar las etiquetas de categoría originales.

    #8. Estandarización de funciones

    Las características de valores más grandes a menudo dominan las características de valores pequeños. Por lo tanto, el modelo ML puede volverse sesgado fácilmente. La estandarización previene tales causas de sesgos en un modelo de aprendizaje automático.

    El proceso de estandarización normalmente implica las dos técnicas comunes siguientes:

    • Estandarización de puntuación Z: este método transforma cada característica para que tenga una media (promedio) de 0 y una desviación estándar de 1. Aquí, se resta la media de la característica de cada punto de datos y se divide el resultado por la desviación estándar.
    • Escala mín-máx: la escala mín-máx transforma los datos en un rango específico, generalmente entre 0 y 1. Puede lograr esto restando el valor mínimo de la característica de cada punto de datos y dividiéndolo por el rango.

    #9. Normalización

    A través de la normalización, las características numéricas se escalan a un rango común, generalmente entre 0 y 1. Mantiene las diferencias relativas entre valores y garantiza que todas las características estén en igualdad de condiciones.

    #1. Herramientas de funciones

    Herramientas de funciones es un marco Python de código abierto que crea automáticamente características a partir de conjuntos de datos temporales y relacionales. Se puede utilizar con herramientas que ya utiliza para desarrollar canales de aprendizaje automático.

    La solución utiliza Deep Feature Synthesis para automatizar la ingeniería de funciones. Tiene una biblioteca de funciones de bajo nivel para crear funciones. Featuretools también tiene una API, que también es ideal para un manejo preciso del tiempo.

    #2. gatoboost

    Si está buscando una biblioteca de código abierto que combine múltiples árboles de decisión para crear un modelo predictivo potente, opte por gatoboost. Esta solución ofrece resultados precisos con parámetros predeterminados, por lo que no tiene que pasar horas ajustando los parámetros.

    CatBoost también te permite utilizar factores no numéricos para mejorar los resultados de tu entrenamiento. Con él, también puede esperar obtener resultados más precisos y predicciones rápidas.

    #3. Motor de funciones

    Motor de funciones es una biblioteca de Python con múltiples transformadores y características seleccionadas que puede usar para modelos ML. Los transformadores que incluye se pueden utilizar para transformación de variables, creación de variables, funciones de fecha y hora, preprocesamiento, codificación categórica, limitación o eliminación de valores atípicos e imputación de datos faltantes. Es capaz de reconocer automáticamente variables numéricas, categóricas y de fecha y hora.

    Recursos de aprendizaje de ingeniería destacados

    Cursos en línea y clases virtuales

    #1. Ingeniería de funciones para el aprendizaje automático en Python: Datacamp

    Este campo de datos curso de Ingeniería de Funciones para Aprendizaje Automático en Python le permite crear nuevas funciones que mejoran el rendimiento de su modelo de aprendizaje automático. Le enseñará a realizar ingeniería de funciones y combinación de datos para desarrollar aplicaciones de aprendizaje automático sofisticadas.

    #2. Ingeniería de funciones para el aprendizaje automático: Udemy

    Desde el Curso de ingeniería de funciones para aprendizaje automáticoaprenderá temas que incluyen imputación, codificación de variables, extracción de características, discretización, funcionalidad de fecha y hora, valores atípicos, etc. Los participantes también aprenderán a trabajar con variables sesgadas y a lidiar con categorías poco frecuentes, invisibles y raras.

    #3. Ingeniería de funciones: visión plural

    Este Pluralvista La ruta de aprendizaje tiene un total de seis cursos. Estos cursos lo ayudarán a aprender la importancia de la ingeniería de funciones en el flujo de trabajo de ML, las formas de aplicar sus técnicas y la extracción de funciones de texto e imágenes.

    #4. Selección de funciones para el aprendizaje automático: Udemy

    Con la ayuda de este Udemy Por supuesto, los participantes pueden aprender a barajar funciones, filtrar, envolver y métodos integrados, eliminación recursiva de funciones y búsqueda exhaustiva. También analiza técnicas de selección de características, incluidas las de Python, Lasso y árboles de decisión. Este curso contiene 5,5 horas de vídeo bajo demanda y 22 artículos.

    #5. Ingeniería de funciones para el aprendizaje automático: gran aprendizaje

    Este curso de Gran aprendizaje Le presentará la ingeniería de funciones mientras le enseñará sobre sobremuestreo y submuestreo. Además, le permitirá realizar ejercicios prácticos sobre el ajuste de modelos.

    #6. Ingeniería de funciones: Coursera

    Disfruta el Coursera curso para usar BigQuery ML, Keras y TensorFlow para realizar ingeniería de funciones. Este curso de nivel intermedio también cubre prácticas avanzadas de ingeniería de funciones.

    Libros digitales o de tapa dura

    #1. Ingeniería de funciones para el aprendizaje automático

    Este libro le enseña cómo transformar funciones en formatos para modelos de aprendizaje automático.

    También le enseña principios de ingeniería de características y aplicaciones prácticas a través del ejercicio.

    #2. Ingeniería y selección de características

    Al leer este libro, aprenderá los métodos para desarrollar modelos predictivos en diferentes etapas.

    A partir de él, puede aprender técnicas para encontrar las mejores representaciones de predictores para el modelado.

    #3. Ingeniería de funciones simplificada

    El libro es una guía para mejorar el poder de predicción de los algoritmos de ML.

    Le enseña a diseñar y crear funciones eficientes para aplicaciones basadas en ML al ofrecer información detallada sobre los datos.

    #4. Campamento de libros sobre ingeniería de funciones

    Este libro trata con estudios de casos prácticos para enseñarle técnicas de ingeniería de funciones para obtener mejores resultados de aprendizaje automático y una gestión de datos mejorada.

    Leer esto garantizará que pueda obtener mejores resultados sin perder mucho tiempo ajustando los parámetros de ML.

    #5. El arte de la ingeniería de funciones

    El recurso funciona como un elemento esencial para cualquier científico de datos o ingeniero de aprendizaje automático.

    El libro utiliza un enfoque multidisciplinario para analizar gráficos, textos, series temporales, imágenes y estudios de casos.

    Conclusión

    Así es como se puede realizar la ingeniería de funciones. Ahora que conoce la definición, el proceso paso a paso, los métodos y los recursos de aprendizaje, puede implementarlos en sus proyectos de ML y ver el éxito.

    A continuación, consulte el artículo sobre aprendizaje por refuerzo.