Capítulo-6 ¿Cómo aprender ingeniería de características?

Serie de aprendizaje automático

Hola amigos, este es el artículo más sorprendente que cambia su perspectiva hacia el aprendizaje automático. Comencemos a discutir por qué la ingeniería de características es tan importante para el aprendizaje automático. Después de completar este artículo, puede aprender cómo hacer ingeniería de características a partir del conjunto de datos.

contorno

1. ¿Qué es la ingeniería característica?
2.procesamiento de datos
 2.1 No dimensionalización
 2.1.1 Normalización
 2.1.2 Método de escala de intervalo
 2.1.3 Diferencia entre normalización y normalización
 2.2 Enlace de características cuantitativas
 2.3 Par de características cualitativas Codificación mate
 2.4 Cálculo de valores perdidos
 2.5 Transformación de datos
3 Características Seleccionar
 3.1 Filtro
 3.1.1 Método de selección de varianza
 3.1.2 Método del coeficiente de correlación
 3.1.3 Prueba de chi-cuadrado
 3.1.4 Método de información mutua
 3.2 Envoltorio
 3.2.1 Método de eliminación de características recursivas
 3.3 Embebido
 3.3.1 Método de selección de características basado en penalizaciones
 3.3. 2 Método de selección de características basado en árbol
4 Reducción de dimensionalidad
 4.1 Análisis de componentes principales (PCA)
 4.2 Análisis discriminante lineal (LDA)

1. ¿Qué es la ingeniería característica?

Hay un dicho que circula ampliamente en la industria: los datos y las características determinan el límite superior del aprendizaje automático, y los modelos y algoritmos simplemente se acercan a este límite superior. ¿Cuál es el proyecto característico? Como su nombre lo indica, su esencia es una actividad de ingeniería diseñada para maximizar la extracción de características de datos sin procesar para su uso por algoritmos y modelos. Al resumir y resumir, las personas piensan que la ingeniería de características incluye los siguientes aspectos:

El procesamiento de características es la parte central de la ingeniería de características. Sklearn proporciona un método de procesamiento de características más completo, que incluye el preprocesamiento de datos, la selección de características y la reducción de dimensionalidad. El primer contacto con sklearn a menudo se siente atraído por su rica y conveniente biblioteca de modelos de algoritmos, ¡pero la biblioteca de manejo de funciones descrita aquí también es muy poderosa!

En este documento, el conjunto de datos IRIS (Iris) en sklearn se usa para ilustrar las funciones de procesamiento de características. El conjunto de datos IRIS fue compilado por Fisher en 1936 y contiene cuatro características (Sepal.Length, Sepal.Width, Petal.Length, Petal.Width), valores propios Ambos son números positivos de coma flotante en centímetros. El valor objetivo es la clasificación de Iris (Iris Setosa), Iris Versicolour (Iris Virginica), Iris Virginica (Virginia Iris). El código para importar el conjunto de datos IRIS es el siguiente:

2. Preprocesamiento de datos

A través de la extracción de características, podemos obtener características no procesadas, y las características en este momento pueden tener los siguientes problemas:

  • No pertenece a la misma dimensión: es decir, las especificaciones de las características son diferentes y no se pueden comparar juntas. La no dimensionalización puede resolver este problema.
  • Redundancia de información: para algunas características cuantitativas, la información efectiva contenida es la división por intervalos, como el rendimiento académico. Si solo le importa "pasar" o no "pasar", debe convertir el puntaje de la prueba cuantitativa en "1" y "0". "" Indica pasar y fallar. La binarización puede resolver este problema.
  • Las características cualitativas no se pueden usar directamente: algunos algoritmos y modelos de aprendizaje automático solo pueden aceptar entradas de características cuantitativas, por lo que las características cualitativas deben convertirse en características cuantitativas. La forma más fácil es especificar un valor cuantitativo para cada valor cualitativo, pero este método es demasiado flexible y aumenta el trabajo de ajuste. La característica cualitativa generalmente se convierte en una característica cuantitativa mediante la codificación ficticia: si hay N valores cualitativos, entonces esta característica se extiende a N características. Cuando el valor original de la característica es el i-ésimo valor cualitativo, se asigna la i-ésima característica extendida. Es 1, a otras características de extensión se les asigna un valor de 0. Comparado con el método directamente especificado, el método de codificación tonto no necesita aumentar el trabajo del ajuste de parámetros. Para el modelo lineal, el uso de la función codificada tonta puede lograr un efecto no lineal.
  • Hay valores faltantes: los valores faltantes deben agregarse.
  • Baja utilización de la información: diferentes algoritmos y modelos de aprendizaje automático utilizan información diferente en los datos. Como se mencionó anteriormente, en modelos lineales, el uso de características cualitativas de codificación tonta puede lograr efectos no lineales. De manera similar, la polinomialización de variables cuantitativas u otras transformaciones puede lograr efectos no lineales.

Utilizamos la biblioteca de preprocesamiento en sklearn para el preprocesamiento de datos para cubrir la solución al problema anterior.

2.1 sin dimensiones

Dimensionless convierte datos de diferentes especificaciones a la misma especificación. Los métodos comunes de no dimensionalización son la estandarización y la escala de intervalos. La premisa de la estandarización es que los valores propios siguen una distribución normal, y después de la normalización, se convierten en una distribución normal estándar. El método de escala de intervalo utiliza la información del valor límite para escalar el rango de características a un rango de características, como [0, 1].

2.1.1 Estandarización

La estandarización requiere el cálculo de la media y la desviación estándar de la característica, expresada como:

El código que normaliza los datos utilizando la clase StandardScaler de la biblioteca de preprocesamiento es el siguiente:

2.1.2 Método de escala de intervalo

Hay muchas ideas para la escala de intervalos. El común es usar dos valores máximos para escalar. La fórmula se expresa como:

El código para la escala de intervalo de datos usando la clase MinMaxScaler de la biblioteca de preprocesamiento es el siguiente:

2.1.3 La diferencia entre estandarización y normalización

En términos simples, la estandarización consiste en procesar datos de acuerdo con las columnas de la matriz de características, que convierte los valores de características de las muestras a la misma dimensión mediante el método de puntuación z. La normalización es el procesamiento de datos de acuerdo con las filas de la matriz de características. El propósito es que el vector de muestra tenga un estándar uniforme cuando la operación de multiplicación de puntos u otra función del núcleo calcula la similitud, es decir, se convierte en un "vector unitario". La fórmula de normalización con la regla l2 es la siguiente:

El código que normaliza los datos usando la clase Normalizer de la biblioteca de preprocesamiento es el siguiente:

2.2 Características cuantitativas binarias

El núcleo de la binarización de características cuantitativas es establecer un umbral. El valor mayor que el umbral es 1 y el valor menor o igual que el umbral es 0. La fórmula es la siguiente:

El código para binarizar datos usando la clase Binarizer de la biblioteca de preprocesamiento es el siguiente:

2.3 Para características cualitativas, codificación tonta

Dado que las características del conjunto de datos IRIS son todas características cuantitativas, sus valores objetivo se utilizan para la codificación ficticia (en realidad no es obligatorio). El código para datos de codificación tontos utilizando la clase OneHotEncoder de la biblioteca de preprocesamiento es el siguiente:

2.4 Cálculo del valor faltante

Dado que el conjunto de datos IRIS no tiene valores faltantes, se agrega una nueva muestra al conjunto de datos, y a las cuatro características se les asigna un valor de NaN, lo que indica que faltan los datos. El código para los cálculos de datos faltantes utilizando la clase Imputer de la biblioteca de preprocesamiento es el siguiente:

2.5 Transformación de datos

Las transformaciones de datos comunes son funciones basadas en polinomios, exponenciales y basadas en registros. Las cuatro características de la fórmula de conversión polinómica con grado 2 son las siguientes:

El código para la conversión polinómica de datos utilizando la clase PolynomialFeatures de la biblioteca de preprocesamiento es el siguiente:

La transformación de datos basada en la función de argumento único se puede hacer de manera unificada. El código para la conversión de la función logarítmica de datos usando FunctionTransformer de la biblioteca de preprocesamiento es el siguiente:

3. Selección de funciones

Cuando se completa el preprocesamiento de datos, necesitamos seleccionar algoritmos significativos y modelos de máquina para que el aprendizaje automático entrene. En general, elija características desde dos perspectivas:

  • Si la característica diverge: si una característica no diverge, por ejemplo, la varianza es cercana a cero, es decir, la muestra no tiene diferencias sustanciales en esta característica, esta característica no es útil para distinguir muestras.
  • Correlación entre características y objetivos: esto es más obvio, y las características que están altamente correlacionadas con el objetivo deben ser preferidas. Además del método de varianza, los otros métodos descritos en este documento se consideran a partir de la correlación.

De acuerdo con la forma de selección de características, el método de selección de características se puede dividir en tres tipos:

  • Filtro: el método de filtro, que califica cada característica de acuerdo con la divergencia o correlación, establece el umbral o la cantidad de umbrales que se seleccionarán y selecciona las características.
  • Contenedor: un método de contenedor que selecciona varias características a la vez, o excluye varias características, en función de una función objetivo (generalmente una puntuación de efecto predictivo).
  • Integrado: el método de integración, que primero usa algunos algoritmos y modelos de aprendizaje automático para entrenar, obtiene los coeficientes de peso de cada característica y selecciona las características de acuerdo con los coeficientes de mayor a menor. Similar al método de filtro, pero está entrenado para determinar los pros y los contras de la función.

Usamos la biblioteca feature_selection en sklearn para la selección de características.

3.1 Filtro
3.1.1 Método de selección de varianza

Usando el método de selección de varianza, primero se calcula la varianza de cada entidad, y luego la entidad cuya varianza es mayor que el umbral se selecciona de acuerdo con el umbral. El código para seleccionar entidades usando la clase Umbral de varianza de la biblioteca feature_selection es el siguiente:

3.1.2 Método del coeficiente de correlación

Usando el método del coeficiente de correlación, primero se calcula el coeficiente de correlación de cada característica con el valor objetivo y el valor P del coeficiente de correlación. Use la clase SelectKBest de la biblioteca feature_selection para combinar los coeficientes de correlación para seleccionar el código de característica de la siguiente manera:

3.1.3 Prueba de chi-cuadrado

La prueba clásica de chi-cuadrado consiste en probar la correlación de variables independientes cualitativas con variables dependientes cualitativas. Suponga que la variable independiente tiene N tipos de valores, y la variable dependiente tiene M tipos de valores. Considere la diferencia entre el valor observado y el valor esperado de la frecuencia de muestra cuya variable independiente es igual a i y la variable dependiente es igual a j, y construya la estadística:

No es difícil encontrar que el significado de esta estadística es simplemente la correlación de la variable independiente con la variable dependiente. Use la clase SelectKBest de la biblioteca feature_selection junto con la prueba de chi-cuadrado para seleccionar el código de característica de la siguiente manera:

3.1.4 Método de información mutua

La información mutua clásica también se utiliza para evaluar la correlación de variables independientes cualitativas con variables dependientes cualitativas. La fórmula de cálculo de información mutua es la siguiente:

Para procesar datos cuantitativos, se propone el método del coeficiente de información máxima. El código que usa la clase SelectKBest de la biblioteca feature_selection combinada con el método de coeficiente de información máxima para seleccionar características es el siguiente:

3.2 Envoltorio
3.2.1 Eliminación de características recursivas

El método de eliminación recursiva utiliza un modelo base para realizar múltiples rondas de entrenamiento. Después de cada ronda de entrenamiento, se eliminan las características de varios coeficientes de peso, y la siguiente ronda de entrenamiento se realiza en función del nuevo conjunto de características. El código que usa la clase RFE de la biblioteca feature_selection para seleccionar características es el siguiente:

3.3 Embebido
3.3.1 Selección de características basadas en penalizaciones

Usando el modelo base con términos de penalización, además de filtrar las características, también se realiza la reducción de dimensionalidad. Use la clase SelectFromModel de la biblioteca feature_selection junto con el modelo de regresión logística con la penalización L1 para seleccionar el código de característica de la siguiente manera:

De hecho, el principio de la reducción de la dimensión del término de penalización L1 es retener una de las características que tienen la misma relevancia para el valor objetivo, por lo que la característica no seleccionada no representa una falta de importancia. Por lo tanto, se puede optimizar en combinación con el término de penalización L2. La operación específica es la siguiente: si una característica tiene un peso de 1 en L1, una característica que tiene una pequeña diferencia en los pesos en L2 y un peso de 0 en L1 constituye un conjunto homogéneo, y las características en el conjunto están igualmente divididas en L1. Peso, por lo que debe crear un nuevo modelo de regresión logística:

Use la clase SelectFromModel de la biblioteca feature_selection junto con el modelo de regresión logística con términos de penalización L1 y L2 para seleccionar el código de característica de la siguiente manera:

3.3.2 Selección de características según el modelo de árbol

En el modelo de árbol, GBDT también se puede utilizar como modelo base para la selección de funciones. El código de la característica se selecciona utilizando la clase SelectFromModel de la biblioteca feature_selection junto con el modelo GBDT.

4. Reducción de dimensionalidad

Cuando se completa la selección de características, el modelo se puede entrenar directamente, pero la matriz de características es demasiado grande, lo que resulta en una gran cantidad de cómputo y un largo tiempo de entrenamiento. Por lo tanto, también es necesario reducir la dimensión de la matriz de características. Métodos comunes de reducción de dimensionalidad Además del modelo basado en la penalización L1 mencionado anteriormente, existen análisis de componentes principales (PCA) y análisis discriminante lineal (LDA). El análisis discriminante lineal en sí mismo también es un modelo de clasificación. PCA y LDA tienen muchas similitudes, la esencia de las cuales es mapear la muestra original al espacio de muestra de menor dimensión, pero el objetivo de mapeo de PCA y LDA es diferente: PCA es hacer que la muestra mapeada tenga la mayor divergencia. LDA está diseñado para dar a la muestra mapeada el mejor rendimiento de clasificación. Por lo tanto, PCA es un método de reducción de dimensionalidad no supervisado, y LDA es un método de reducción de dimensionalidad supervisado.

4.1 Análisis de componentes principales (PCA)

El código para seleccionar características usando la clase PCA de la biblioteca de descomposición es el siguiente:

4.2 Análisis discriminante lineal (LDA)

El código para seleccionar características usando la clase LDA de la biblioteca lda es el siguiente:

Referencias

  1. https://www.quora.com/topic/Data-Cleansing
  2. https://www.quora.com/What-is-the-real-meaning-of-data-cleaning-for-a-Data-Scientist
  3. https://www.quora.com/What-is-your-best-description-of-data-cleaning-in-data-analysis-and-machine-learninghttps://www.quora.com/What-is- su-mejor-descripción-de-limpieza-de-datos-en-análisis-de-datos-y-aprendizaje-de-máquina