Saltar al contenido

Cómo usar la extracción de características en los datos tabulares para el aprendizaje de la máquina

5 de julio de 2020

El rendimiento de los modelos predictivos de aprendizaje automático sólo es tan bueno como sus datos, y sus datos sólo son tan buenos como la forma en que los prepara para el modelado.

El enfoque más común de la preparación de datos consiste en estudiar un conjunto de datos y revisar las expectativas de un algoritmo de aprendizaje automático, y luego elegir cuidadosamente las técnicas de preparación de datos más apropiadas para transformar los datos en bruto de manera que satisfagan mejor las expectativas del algoritmo. Esto es lento, costoso y requiere una gran cantidad de conocimientos.

Un enfoque alternativo de la preparación de datos consiste en aplicar paralelamente a los datos brutos un conjunto de técnicas de preparación de datos comunes y de utilidad común y combinar los resultados de todas las transformaciones en un único gran conjunto de datos a partir del cual se puede ajustar y evaluar un modelo.

Se trata de una filosofía alternativa para la preparación de datos que trata las transformaciones de datos como un enfoque para extraer las características más destacadas de los datos en bruto para exponer la estructura del problema a los algoritmos de aprendizaje. Requiere algoritmos de aprendizaje que sean escalables de las características de entrada de peso y que utilicen las características de entrada más relevantes para el objetivo que se está prediciendo.

Este enfoque requiere menos conocimientos especializados, es eficaz desde el punto de vista informático en comparación con una búsqueda completa en la cuadrícula de los métodos de preparación de datos, y puede ayudar a descubrir soluciones de preparación de datos no intuitivas que logren un buen o mejor rendimiento para un determinado problema de modelización predictiva.

En este tutorial, descubrirá cómo utilizar la extracción de características para la preparación de datos con datos tabulares.

Después de completar este tutorial, lo sabrás:

  • La extracción de características proporciona un enfoque alternativo para la preparación de datos tabulares, en el que todas las transformaciones de datos se aplican en paralelo a los datos de entrada en bruto y se combinan para crear un gran conjunto de datos.
  • Cómo utilizar el método de extracción de características para la preparación de datos para mejorar el rendimiento del modelo sobre una línea de base para un conjunto de datos de clasificación estándar.
  • Cómo añadir la selección de características a la tubería de modelización de la extracción de características para dar un nuevo impulso al rendimiento de la modelización en un conjunto de datos estándar.

Descubre la limpieza de datos, la selección de características, la transformación de datos, la reducción de la dimensionalidad y mucho más en mi nuevo libro, con 30 tutoriales paso a paso y el código fuente completo en Python.

Empecemos.

Cómo utilizar la extracción de características en los datos tabulares para la preparación de datos

Cómo utilizar la extracción de características en los datos tabulares para la preparación de datos
Foto de Nicolás Valdés, algunos derechos reservados.

Resumen del Tutorial

Este tutorial está dividido en tres partes; son:

  1. Técnica de extracción de características para la preparación de datos
  2. Conjunto de datos y línea de base de rendimiento
    1. Conjunto de datos de la clasificación del vino
    2. Desempeño del modelo de base
  3. Enfoque de extracción de características para la preparación de datos

Técnica de extracción de características para la preparación de datos

La preparación de los datos puede ser un desafío.

El enfoque que se prescribe y sigue con mayor frecuencia es analizar el conjunto de datos, revisar los requisitos de los algoritmos y transformar los datos en bruto para satisfacer mejor las expectativas de los algoritmos.

Esto puede ser efectivo, pero también es lento y puede requerir una profunda experiencia tanto con el análisis de datos como con los algoritmos de aprendizaje de máquinas.

Un enfoque alternativo consiste en tratar la preparación de las variables de entrada como un hiperparámetro de la tubería de modelización y ajustarla junto con la elección del algoritmo y la configuración del mismo.

Este también puede ser un enfoque eficaz que exponga soluciones poco intuitivas y que requiera muy poca experiencia, aunque puede ser costoso desde el punto de vista computacional.

Un enfoque que busca un término medio entre estos dos enfoques de la preparación de datos es tratar la transformación de los datos de entrada como una ingeniería de características o extracción de características procedimiento. Este consiste en aplicar a los datos en bruto un conjunto de técnicas de preparación de datos comunes o de utilidad común, y luego agregar todas las características para crear un gran conjunto de datos, para luego ajustar y evaluar un modelo sobre estos datos.

La filosofía del enfoque trata cada técnica de preparación de datos como una transformación que extrae las características más destacadas de los datos en bruto para presentarlas al algoritmo de aprendizaje. Lo ideal sería que esas transformaciones desenmarañaran las relaciones complejas y compusieran las variables de entrada, permitiendo a su vez el uso de algoritmos de modelización más sencillos, como las técnicas de aprendizaje de las máquinas lineales.

A falta de un nombre mejor, nos referiremos a esto como el «Método de ingeniería de características«o el»Método de extracción de características» para configurar la preparación de datos para un proyecto de modelado predictivo.

Permite utilizar el análisis de datos y la experiencia en algoritmos en la selección de métodos de preparación de datos y permite encontrar soluciones no intuitivas pero a un costo computacional mucho menor.

La exclusión en el número de características de entrada también puede abordarse explícitamente mediante el uso de técnicas de selección de características que intentan clasificar por orden la importancia o el valor del vasto número de características extraídas y sólo seleccionan un pequeño subconjunto de las más relevantes para predecir la variable objetivo.

Podemos explorar este enfoque de la preparación de datos con un ejemplo práctico.

Antes de sumergirnos en un ejemplo trabajado, seleccionemos primero un conjunto de datos estándar y desarrollemos una línea de base en el rendimiento.

 

¿Quieres empezar a preparar los datos?

Toma mi curso intensivo gratuito de 7 días por correo electrónico ahora (con código de muestra).

Haga clic para inscribirse y también para obtener una versión gratuita del curso en formato PDF.

Descargue su minicurso GRATUITO

 

Conjunto de datos y línea de base de rendimiento

En esta sección, primero seleccionaremos un conjunto de datos estándar de aprendizaje de la máquina y estableceremos una línea de base en el rendimiento de este conjunto de datos. Esto proporcionará el contexto para explorar el método de extracción de características de la preparación de datos en la siguiente sección.

Recomendado:  Función de activación de Softmax con Python

Conjunto de datos de la clasificación del vino

Usaremos el conjunto de datos de clasificación del vino.

Este conjunto de datos tiene 13 variables de entrada que describen la composición química de las muestras de vino y requiere que el vino sea clasificado como uno de los tres tipos.

Puedes aprender más sobre el conjunto de datos aquí:

No hay necesidad de descargar el conjunto de datos ya que lo descargaremos automáticamente como parte de nuestros ejemplos de trabajo.

Abrir el conjunto de datos y revisar los datos en bruto. Las primeras filas de datos se enumeran a continuación.

Podemos ver que se trata de un problema de modelización predictiva de clasificación multiclase con variables de entrada numérica, cada una de las cuales tiene escalas diferentes.

El ejemplo carga el conjunto de datos y lo divide en las columnas de entrada y salida, y luego resume los conjuntos de datos.

Ejecutando el ejemplo, podemos ver que el conjunto de datos se cargó correctamente y que hay 179 filas de datos con 13 variables de entrada y una sola variable objetivo.

A continuación, vamos a evaluar un modelo en este conjunto de datos y establecer una línea de base en el rendimiento.

Desempeño del modelo de base

Podemos establecer una línea de base en el desempeño de la tarea de clasificación del vino mediante la evaluación de un modelo sobre los datos de entrada en bruto.

En este caso, evaluaremos un modelo de regresión logística.

En primer lugar, podemos realizar una preparación mínima de los datos asegurándonos de que las variables de entrada sean numéricas y que la variable objetivo esté codificada en una etiqueta, como espera la biblioteca de aprendizaje de ciencias.

A continuación, podemos definir nuestro modelo de predicción.

Evaluaremos el modelo usando el patrón oro de validación cruzada estratificada k-doble con 10 pliegues y tres repeticiones.

El rendimiento del modelo se evaluará utilizando la precisión de la clasificación.

Al final del recorrido, informaremos la media y la desviación estándar de las puntuaciones de precisión recogidas en todas las repeticiones y pliegues de evaluación.

Enlazando todo esto, el ejemplo completo de la evaluación de un modelo de regresión logística en el conjunto de datos de la clasificación del vino crudo se enumera a continuación.

Al ejecutar el ejemplo se evalúa el rendimiento del modelo y se informa de la precisión de la clasificación de la media y la desviación estándar.

Recomendado:  Para qué son los sueños extraños

Sus resultados pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje, el procedimiento de evaluación y las diferencias de precisión entre las máquinas. Intenta ejecutar el ejemplo unas cuantas veces.

En este caso, podemos ver que el modelo de regresión logística ajustado a los datos de entrada brutos alcanzó la precisión de clasificación media de alrededor del 95,3 por ciento, proporcionando una línea de base en el rendimiento.

A continuación, exploremos si podemos mejorar el rendimiento usando el enfoque basado en la extracción de características para la preparación de datos.

Enfoque de extracción de características para la preparación de datos

En esta sección, podemos explorar si podemos mejorar el rendimiento utilizando el enfoque de extracción de características para la preparación de datos.

El primer paso es seleccionar un conjunto de técnicas de preparación de datos comunes y de utilidad común.

En este caso, dado que las variables de entrada son numéricas, utilizaremos un rango de transformaciones para cambiar la escala de las variables de entrada como MinMaxScaler, StandardScaler y RobustScaler, así como transformaciones para encadenar la distribución de las variables de entrada como QuantileTransformer y KBinsDiscretizer. Finalmente, también usaremos transformadas que eliminan las dependencias lineales entre las variables de entrada como PCA y TruncatedSVD.

La clase FeatureUnion puede utilizarse para definir una lista de transformaciones a realizar, cuyos resultados serán agregados, es decir, unidos. Esto creará un nuevo conjunto de datos que tiene un gran número de columnas.

Una estimación del número de columnas sería de 13 variables de entrada por cinco transformaciones o 65 más las 14 columnas de salida de los métodos de reducción de la dimensionalidad PCA y SVD, para dar un total de unas 79 características.

Podemos entonces crear un Pipeline de modelización con la FeatureUnion como primer paso y el modelo de regresión logística como paso final.

El oleoducto puede entonces ser evaluado utilizando una repetida validación cruzada estratificada en k como antes.

A continuación se muestra el ejemplo completo.

Recomendado:  Para eliminar las minas terrestres mortales, la ciencia recurre a los drones y al aprendizaje automático

Al ejecutar el ejemplo se evalúa el rendimiento del modelo y se informa de la precisión de la clasificación de la media y la desviación estándar.

Sus resultados pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje, el procedimiento de evaluación y las diferencias de precisión entre las máquinas. Intenta ejecutar el ejemplo unas cuantas veces.

En este caso, podemos ver un aumento en el rendimiento sobre el rendimiento de la línea de base, logrando una precisión de clasificación media de alrededor del 96,8 por ciento en comparación con el 95,3 por ciento de la sección anterior.

Intenta añadir más métodos de preparación de datos a la FeatureUnion para ver si puedes mejorar el rendimiento.

¿Puedes obtener mejores resultados?
Hágame saber lo que descubra en los comentarios de abajo.

También podemos utilizar la selección de rasgos para reducir los aproximadamente 80 rasgos extraídos a un subconjunto de los más relevantes para el modelo. Además de reducir la complejidad del modelo, también puede resultar en un aumento del rendimiento al eliminar las características de entrada irrelevantes y redundantes.

En este caso, utilizaremos la técnica de eliminación de rasgos recursivos, o RFE, para la selección de rasgos y la configuraremos para seleccionar los 15 rasgos más relevantes.

Podemos entonces añadir la selección de la característica RFE a la tubería de modelación después de la FeatureUnion y antes de la LogisticRegression algoritmo.

Enlazando todo esto, el ejemplo completo del método de preparación de datos de selección de características con selección de características se enumera a continuación.

Al ejecutar el ejemplo se evalúa el rendimiento del modelo y se informa de la precisión de la clasificación de la media y la desviación estándar.

Sus resultados pueden variar dada la naturaleza estocástica del algoritmo de aprendizaje, el procedimiento de evaluación y las diferencias de precisión entre las máquinas. Intenta ejecutar el ejemplo unas cuantas veces.

De nuevo, podemos ver un nuevo aumento en el rendimiento desde el 96,8 por ciento con todos los rasgos extraídos hasta cerca del 98,9 con la selección de rasgos utilizada antes del modelado.