Este artículo presenta tres métodos de selección de características en el aprendizaje automático.

guía

Una teoría clásica en el aprendizaje automático es: los datos y las características determinan el límite superior del aprendizaje automático, y los modelos y algoritmos solo se acercan a este límite superior. Es por esta razón que la ingeniería de funciones juega un papel importante en el proceso de aprendizaje automático. La ingeniería de características en un sentido amplio generalmente se puede dividir en tres enlaces: extracción de características, selección de características y derivación de características No hay un orden claro de prioridad para los tres enlaces. Este documento presenta principalmente tres métodos de selección de características comúnmente utilizados.

Las características en el aprendizaje automático deben seleccionarse, entonces, ¿por qué no en la vida?

La selección de características se refiere al proceso de seleccionar un subconjunto de muchas características disponibles. Su propósito y efecto esperado generalmente se consideran en los siguientes tres aspectos:

  • La mejora del efecto del modelo se logra principalmente mediante el filtrado de características no válidas o características de ruido;

  • Acelere el entrenamiento de modelos, un espacio de características más optimizado puede mejorar naturalmente la velocidad del entrenamiento de modelos

  • Mejorar la interpretabilidad de características, el papel de este aspecto generalmente no es particularmente obvio.Por ejemplo, cuando hay un conjunto de características con alta colinealidad, solo las características de alta eficiencia pueden conservarse a través de una selección razonable de características, mejorando así la interpretabilidad del modelo.

Por otro lado, para comprender la diferencia en los métodos de selección de funciones, primero es necesario clasificar las funciones según su valor para la tarea de entrenamiento de la siguiente manera:

  • Funciones de alto valor, estas funciones son muy útiles para el entrenamiento de modelos, el propósito de la selección de funciones es retener estas funciones con la mayor precisión posible

  • Características de bajo valor, estas características no son muy útiles para el entrenamiento del modelo, pero también son características correlacionadas positivamente, y estas características se pueden descartar cuando la relación de selección de características es baja;

  • Funciones de alta correlación, estas funciones también son muy útiles para el entrenamiento de modelos, pero la correlación entre las funciones suele ser alta, en otras palabras, un conjunto de funciones se puede reemplazar por otro conjunto de funciones, por lo que hay funciones redundantes, en la selección de funciones. debe filtrarse;

  • Características de ruido, estas características no solo no tienen un efecto positivo en el entrenamiento del modelo, sino que también interferirán con el efecto de entrenamiento del modelo. Los métodos efectivos de selección de características deberían filtrarlos preferentemente.

En aplicaciones prácticas, los métodos de selección de características se pueden dividir principalmente en las siguientes tres categorías:

Este artículo presentará estos tres métodos por separado y, finalmente, brindará una aplicación simple y una comparación de efectos con el conjunto de datos que viene con sklearn como ejemplo.

01 Método de filtración

La selección de características basada en el método de filtro es el método más simple y más utilizado. Su mayor ventaja es que no depende del modelo, y solo extrae su valor desde la perspectiva de las características, para realizar la clasificación y selección de características. De hecho, el núcleo del esquema de selección de funciones basado en el método de filtrado es ordenar las funciones: después de clasificar según el valor de las funciones, se puede seleccionar o eliminar cualquier proporción/número de funciones. Obviamente, cómo evaluar el valor de las características para lograr la clasificación es el enlace clave aquí.

Para evaluar el valor de las características, se puede dividir aproximadamente en los siguientes tres tipos de criterios de evaluación:

  • Basado en la cantidad de información contenida en la característica: Esta es generalmente la selección de características basada en el método de varianza, es decir, cuanto mayor es la varianza, mayor es la distinguibilidad de la etiqueta; de lo contrario, se considera que la característica con poca varianza tiene una distinción menor En casos extremos, cuando todos los valores de una columna de características son iguales, la varianza es 0 y no tiene valor para el entrenamiento del modelo. Por supuesto, de hecho, es impreciso medir directamente la cantidad de información contenida en la característica por el tamaño de la varianza.Por ejemplo, para los dos grupos de características [100, 110, 120] y [1, 5, 9 ], de acuerdo con la fórmula de cálculo de varianza del primero Larger, pero el segundo puede ser más discriminatorio desde una perspectiva de aprendizaje automático. Por lo tanto, generalmente es necesario normalizar las características antes de usar el método de varianza para la selección de características.

  • Basado en la correlación: generalmente basado en la teoría estadística, el coeficiente de correlación entre cada columna y la columna de la etiqueta se calcula uno por uno. Cuando una característica de la columna tiene una alta correlación con la etiqueta, se considera que es más valiosa para el entrenamiento del modelo. Hay muchos indicadores para medir la correlación entre dos columnas de datos, que normalmente incluyen la distancia euclidiana, la prueba de chi-cuadrado, la prueba T, etc.

  • Basado en la teoría de la entropía de la información: similar al método de correlación derivado de las estadísticas, el grado de correlación entre una columna de características y las columnas de etiquetas también se puede medir desde la perspectiva de la teoría de la información. Un método típico es calcular la información mutua de las columnas de características. y etiquetas de columnas. Cuando la información mutua es mayor, significa que el grado de certeza de la información de la etiqueta es mayor cuando se proporcionan las características de la columna. En realidad, esto es similar a la idea de criterio dividido en el árbol de decisión.

Por supuesto, las desventajas del método de selección de características basado en el método de filtrado también son extremadamente obvias:

  • Debido a que no depende del modelo, es imposible extraer el mejor sistema de características que se adapte al modelo;

  • La clasificación y selección de características se realizan de forma independiente (la independencia aquí se refiere a la independencia entre características y características, excluyendo los cálculos de correlación entre características y etiquetas, etc.), para algunas características que tienen un valor bajo solo y un valor alto en combinación No se puede descubrir y retener de manera efectiva .

02 método de envoltura

El método de filtrado consiste en ordenar desde la perspectiva de la importancia de las características, a fin de completar el proceso de selección de características objetivo o filtrado de características de baja eficiencia. Como se mencionó anteriormente, una de sus mayores desventajas es que debido a que no se basa en ningún modelo, es imposible seleccionar el sistema de características más adecuado para el modelo correspondiente. Al mismo tiempo, todavía hay un problema oculto: el problema de la proporción de retención de la selección de características.De hecho, este suele ser un hiperparámetro, que generalmente requiere definición manual u optimización de hiperparámetro.

Por el contrario, el método de envoltura considera la selección de características como un problema de caja negra: es decir, solo se necesita especificar la función objetivo (esta función objetivo es generalmente el indicador de evaluación bajo un modelo específico), y la función objetivo se maximiza mediante un cierto método, independientemente de los problemas con su implementación interna. Además, desde la perspectiva de una implementación específica, dado un problema de selección de características con N características, se puede abstraer seleccionando los K subconjuntos de características óptimos para lograr el valor óptimo de la función objetivo. Es fácil ver que K aquí puede ser cualquier valor de 1 a N, por lo que la complejidad de búsqueda de este problema es la potencia exponencial: O(2^N).

Por supuesto, para un algoritmo de este tipo con una complejidad tan alta, es imposible que los predecesores inteligentes lo intenten directamente de manera violenta, especialmente considerando que la función objetivo suele ser lo suficientemente costosa (es decir, el proceso de evaluación del modelo en un subconjunto específico de características). En general, es un proceso que requiere mucho tiempo), por lo que generalmente existen dos métodos de implementación específicos de la siguiente manera:

  • selección secuencial. El nombre es selección secuencial, pero en realidad es un algoritmo codicioso. El problema de búsqueda en el subespacio óptimo que contiene K características se simplifica al proceso de selección recursiva de 1->K (selección secuencial de características, SFS) o eliminación recursiva de N->K (selección secuencial hacia atrás, SBS), la primera también se llama directa selección, y esta última se denomina correspondientemente selección hacia atrás.

    Específicamente, tomando la selección recursiva como ejemplo, el subespacio de características está vacío en el estado inicial, intente seleccionar cada característica una por una para agregar al subespacio de características, calcule el valor de la función objetivo correspondiente, realice este proceso N veces y obtenga la mejor primera característica actual; de esta manera, recursivamente, continúe seleccionando la segunda y la tercera, hasta completar el número esperado de características K. El número de ejecuciones de la función objetivo de este proceso es O(K^2), que es aceptable en comparación con la complejidad del algoritmo de potencia exponencial. Por supuesto, se han derivado muchos algoritmos mejorados en el proceso de solicitud real, como se muestra en el siguiente diagrama de flujo:

图源:《Una encuesta sobre métodos de selección de funciones》

  • Búsqueda heurística. La búsqueda heurística generalmente aplica algoritmos evolutivos, como los algoritmos genéticos, que son ampliamente utilizados en el campo de la optimización. En la implementación específica, es necesario considerar cómo expresar el subespacio de características como un individuo en la población (por ejemplo, expresar el problema de selección que contiene N características como una secuencia 0/1 de longitud N, donde 1 significa seleccionar la característica , 0 significa no selección, el número de 1 en la secuencia es el número de características en el subespacio de características), y luego el efecto del modelo en el subespacio de características correspondiente se puede definir como la aptitud del individuo correspondiente en la población; el segundo es definir la operación principal en el algoritmo genético: procesos evolutivos como el cruce, la mutación y la reproducción.

El esquema de selección de características basado en el método de envoltura es un esquema de implementación orientado al modelo, por lo que tiene el mejor efecto de selección en teoría. Pero, de hecho, en el proceso de implementación anterior, generalmente es necesario especificar previamente la cantidad de características que se espera conservar, por lo que también está involucrado el problema de los hiperparámetros. Además, el mayor inconveniente del método de envoltura es la enorme cantidad de cálculo. Aunque la implementación de la selección secuencial reduce la complejidad del algoritmo al orden cuadrático, sigue siendo un gran número; mientras que el algoritmo genético y el algoritmo heurístico de enjambre de partículas los esquemas de búsqueda, debido a que todas son implementaciones optimizadas basadas en la población, naturalmente implican una gran cantidad de cálculos.

03 Método de incrustación

Es similar a la idea de que el método del paquete se basa en el modelo para la selección, pero es diferente de la gran cantidad de cálculo involucrado: el esquema de selección de características basado en el método de incrustación, como su nombre lo indica, es "adjuntar" el proceso de selección de características a una tarea de entrenamiento de modelo en sí misma, de modo que el proceso de selección de características depende de un modelo de algoritmo específico.

Personalmente, siempre he pensado que la palabra "incrustado" tiene una existencia mágica en el campo del aprendizaje automático. Incluso cuando entré en contacto por primera vez con el método de selección de características, una vez confundí el método de incrustación con el método de envoltura y no pude entenderlo perceptivamente.

De hecho, en este punto del texto, el esquema de selección de características basado en el método de incrustación está listo para salir, los más utilizados son el modelo de árbol y una serie de algoritmos de integración basados ​​en el modelo de árbol. la información importante de la importancia de la característica, se puede utilizar de forma natural.El valor del modelo de realización es alto o bajo, para completar el proceso de selección o filtrado de características según el nivel de importancia de la característica. Además, además de los modelos de series de árboles de decisión, los modelos lineales generalizados como LR y SVM también pueden evaluar la importancia de las características mediante el ajuste de coeficientes de peso.

El esquema de selección de características basado en el método de incrustación es simple y eficiente, y generalmente se considera que integra las ventajas de los dos esquemas del método de filtrado y el método de envoltura: no solo tiene las ventajas de la selección de características orientada al modelo en la envoltura pero también tiene la sobrecarga baja y la velocidad rápida del método de filtrado. Pero, de hecho, también tiene una deficiencia correspondiente: no puede identificar características altamente correlacionadas, por ejemplo, la característica A y la característica B tienen coeficientes de importancia de características altos, pero al mismo tiempo las dos están altamente correlacionadas, incluso la característica A = característica B. En este momento, el esquema de selección de funciones basado en el método de incrustación es impotente.

04 Comparación práctica de tres esquemas de selección de características

Esta sección toma el conjunto de datos de cáncer de mama en sklearn como ejemplo, brinda la implementación básica de tres esquemas de selección de funciones y compara brevemente los resultados de la selección de funciones.

Cargue el conjunto de datos e importe los paquetes de requisitos previos:

from sklearn.datasets import load_breast_cancer
from sklearn.model_selection import train_test_split
from sklearn.feature_selection import SelectFromModel, SelectKBest, RFE
from sklearn.ensemble import RandomForestClassifier

El conjunto de datos predeterminado entrena el modelo y asegura que las subsiguientes divisiones sean consistentes al establecer una semilla de número aleatorio en train_test_split:

%%time
X, y = load_breast_cancer(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_train, y_train)
rf.score(X_test, y_test)


# 输出结果
CPU times: user 237 ms, sys: 17.5 ms, total: 254 ms
Wall time: 238 ms
0.9370629370629371

El esquema de selección de funciones del método de filtrado se implementa llamando a SelectKBest en sklearn. La prueba F se usa internamente de forma predeterminada para medir la correlación entre funciones y etiquetas, y la dimensión de la función de selección se establece en 20:

%%time
X_skb = SelectKBest(k=20).fit_transform(X, y)
X_skb_train, X_skb_test, y_train, y_test = train_test_split(X_skb, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_skb_train, y_train)
rf.score(X_skb_test, y_test)


# 输出结果
CPU times: user 204 ms, sys: 7.14 ms, total: 211 ms
Wall time: 208 ms
0.9300699300699301

El esquema de selección de características del método de envoltura se implementa llamando a RFE en sklearn. La función objetivo entrante, es decir, el modelo de algoritmo es un bosque aleatorio, y la dimensión de selección de características también se establece en 20:

%%time
X_rfe = RFE(RandomForestClassifier(), n_features_to_select=20).fit_transform(X, y)
X_rfe_train, X_rfe_test, y_train, y_test = train_test_split(X_rfe, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_rfe_train, y_train)
rf.score(X_rfe_test, y_test)


# 输出结果
CPU times: user 2.76 s, sys: 4.57 ms, total: 2.76 s
Wall time: 2.76 s
0.9370629370629371

El esquema de selección de características del método de incrustación se implementa llamando a SelectFromModel en sklearn, y el modelo de algoritmo dependiente también se establece en bosque aleatorio, y la dimensión de selección de características sigue siendo 20:

%%time
X_sfm = SelectFromModel(RandomForestClassifier(), threshold=-1, max_features=20).fit_transform(X, y)
X_sfm_train, X_sfm_test, y_train, y_test = train_test_split(X_sfm, y, random_state=3)


rf = RandomForestClassifier(max_depth=5, random_state=3)
rf.fit(X_sfm_train, y_train)
rf.score(X_sfm_test, y_test)


# 输出结果
CPU times: user 455 ms, sys: 0 ns, total: 455 ms
Wall time: 453 ms
0.9370629370629371

A través de los experimentos comparativos simples anteriores, se puede encontrar que, en comparación con el esquema original de características completas, el método de filtrado produce una cierta pérdida de rendimiento del algoritmo cuando solo se conservan las características de 20 dimensiones, mientras que el método de envoltura y el método de incrustación mantienen el mismo efecto de modelo . , pero el método de incrustación lleva mucho menos tiempo .

Lectura relacionada:

Supongo que te gusta

Origin blog.csdn.net/weixin_43841688/article/details/120108696
Recomendado
Clasificación