Las 6 técnicas principales utilizadas en la ingeniería de funciones [aprendizaje automático]

Publicado: 2021-03-12

Tabla de contenido

Introducción

La ingeniería de características es uno de los aspectos más importantes de cualquier proyecto de ciencia de datos. La ingeniería de características se refiere a las técnicas utilizadas para extraer y refinar características de los datos sin procesar. Las técnicas de ingeniería de características se utilizan para crear datos de entrada adecuados para el modelo y para mejorar el rendimiento del modelo.

Los modelos se entrenan y construyen sobre las características que derivamos de los datos sin procesar para proporcionar el resultado requerido. Puede suceder que los datos que tenemos no sean lo suficientemente buenos para que el modelo aprenda algo de ellos. Si somos capaces de derivar las características que encuentran la solución a nuestro problema subyacente, resultaría ser una buena representación de los datos. Mejor es la representación de los datos, mejor será el ajuste del modelo y el modelo exhibirá mejores resultados.

El flujo de trabajo de cualquier proyecto de ciencia de datos es un proceso iterativo en lugar de un proceso único. En la mayoría de los proyectos de ciencia de datos, se crea un modelo base después de crear y refinar las funciones a partir de los datos sin procesar. Al obtener los resultados del modelo base, se pueden ajustar algunas características existentes y también se derivan algunas características nuevas de los datos para optimizar los resultados del modelo.

Ingeniería de funciones

Las técnicas utilizadas en el proceso de ingeniería de características pueden proporcionar los resultados de la misma manera para todos los algoritmos y conjuntos de datos. Algunas de las técnicas comunes utilizadas en el proceso de ingeniería de características son las siguientes:

1. Transformación de valor

Los valores de las características se pueden transformar en alguna otra métrica mediante el uso de parámetros como la función logarítmica, la función raíz, la función exponencial, etc. Existen algunas limitaciones para estas funciones y es posible que no se utilicen para todos los tipos de conjuntos de datos. Por ejemplo, la transformación raíz o la transformación logarítmica no se puede aplicar a las características que contienen valores negativos.

Una de las funciones más utilizadas es la función logarítmica. La función logarítmica puede ayudar a reducir la asimetría de los datos que pueden estar sesgados hacia un extremo. La transformación logarítmica tiende a normalizar los datos, lo que reduce el efecto de los valores atípicos en el rendimiento del modelo.

También ayuda a reducir la magnitud de los valores en una característica. Esto es útil cuando estamos usando algunos algoritmos que consideran que las características con valores mayores son de mayor importancia que las demás.

2. Imputación de datos

La imputación de datos se refiere a completar los valores faltantes en un conjunto de datos con algún valor estadístico. Esta técnica es importante ya que algunos algoritmos no funcionan con los valores faltantes, lo que nos restringe a usar otros algoritmos o imputar estos valores faltantes. Se prefiere usarlo si el porcentaje de valores faltantes en una característica es menor (alrededor de 5 a 10 %), de lo contrario, generaría una mayor distorsión en la distribución de los datos. Hay diferentes métodos para hacerlo para características numéricas y categóricas.

Podemos imputar los valores faltantes en características numéricas con valores arbitrarios dentro de un rango específico o con medidas estadísticas como media, mediana, etc. Estas imputaciones deben hacerse con cuidado ya que las medidas estadísticas son propensas a valores atípicos que degradarían el rendimiento del modelo. . Para características categóricas, podemos imputar los valores faltantes con una categoría adicional que falta en el conjunto de datos o simplemente imputarlos como faltantes si se desconoce la categoría.

El primero requiere un buen conocimiento del dominio para poder encontrar la categoría correcta, mientras que el segundo es más una alternativa para la generalización. También podemos usar el modo para imputar las características categóricas. La imputación de los datos con la moda también podría dar lugar a una sobrerrepresentación de la etiqueta más frecuente si los valores faltantes son demasiado numerosos.

Únase a los cursos de inteligencia artificial en línea de las mejores universidades del mundo: maestrías, programas ejecutivos de posgrado y programa de certificado avanzado en ML e IA para acelerar su carrera.

3. Codificación categórica

Uno de los requisitos en muchos algoritmos es que los datos de entrada deben ser de naturaleza numérica. Esto resulta ser una restricción para usar características categóricas en tales algoritmos. Para representar las características categóricas como números, necesitamos realizar una codificación categórica. Algunos de los métodos para convertir las características categóricas en números son los siguientes:

1. Codificación one-hot: – La codificación one-hot crea una nueva característica que toma un valor (0 o 1) para cada etiqueta en una característica categórica. Esta nueva característica indica si esa etiqueta de la categoría está presente para cada observación. Por ejemplo, suponga que hay 4 etiquetas en una característica categórica, luego, al aplicar la codificación one-hot, crearía 4 características booleanas.

También se puede extraer la misma cantidad de información con 3 funciones como si todas las funciones contuvieran 0, entonces el valor de la función categórica sería la 4ª etiqueta. La aplicación de este método aumenta el espacio de características si hay muchas características categóricas con una gran cantidad de etiquetas en el conjunto de datos.

2. Codificación de frecuencia: este método calcula el conteo o el porcentaje de cada etiqueta en la característica categórica y lo mapea contra la misma etiqueta. Este método no amplía el espacio de características del conjunto de datos. Una desventaja de este método es que si las dos o más etiquetas tienen el mismo conteo en el conjunto de datos, le daría al mapa el mismo número para todas las etiquetas. Esto conduciría a la pérdida de información crucial.

3. Codificación ordinal: – También conocida como codificación de etiquetas, este método mapea los distintos valores de una característica categórica con un número que va de 0 a n-1, siendo n el número distinto de etiquetas en la característica. Este método no amplía el espacio de características del conjunto de datos. Pero crea una relación ordinal dentro de las etiquetas en una función.

4. Manejo de valores atípicos

Los valores atípicos son los puntos de datos cuyos valores son muy diferentes del resto del lote. Para manejar estos valores atípicos, primero debemos detectarlos. Podemos detectarlos usando visualizaciones como box-plot y scatter-plot en Python, o podemos usar el rango intercuartílico (IQR). El rango intercuartílico es la diferencia entre el primer trimestre (percentil 25) y el tercer trimestre (percentil 75).

Los valores que no caen en el rango de (Q1 - 1.5*IQR) y (Q3 + 1.5*IQR) se denominan valores atípicos. Después de detectar los valores atípicos, podemos manejarlos eliminándolos del conjunto de datos, aplicando alguna transformación, tratándolos como valores faltantes para imputarlos usando algún método, etc.

5. Escalado de funciones

El escalado de funciones se utiliza para cambiar los valores de las funciones y colocarlas dentro de un rango. Es importante aplicar este proceso si estamos usando algoritmos como SVM, regresión lineal, KNN, etc. que son sensibles a la magnitud de los valores. Para escalar las características, podemos realizar estandarización, normalización, escalado mínimo-máximo. La normalización vuelve a escalar los valores de un rango de características de -1 a 1. Es la relación de la resta de cada observación y la media a la resta del valor máximo y mínimo de esa característica. es decir, [X – media(X)]/[max(X) – min(X)].

En la escala min-max, utiliza el valor mínimo de la característica en lugar de la media. Este método es muy sensible a los valores atípicos, ya que solo considera los valores finales de la característica. La estandarización vuelve a escalar los valores de una característica de 0 a 1. No normaliza la distribución de los datos, mientras que el método anterior sí lo hará.

6. Manejo de variables de fecha y hora

Nos encontramos con muchas variables que indican la fecha y la hora en diferentes formatos. Podemos derivar más características de la fecha como el mes, día de la semana/mes, año, fin de semana o no, la diferencia entre las fechas, etc. Esto puede permitirnos extraer información más perspicaz del conjunto de datos. De las funciones de tiempo, también podemos extraer información como horas, minutos, segundos, etc.

Una cosa que la mayoría de la gente se pierde es que todas las variables de fecha y hora son características cíclicas. Por ejemplo, supongamos que necesitamos verificar qué día entre el miércoles (3) y el sábado (7) está más cerca del domingo (siendo un 1). Ahora sabemos que el sábado está más cerca pero en términos numéricos será miércoles ya que la distancia entre el 3 y el 1 es menor que la del 7 y el 1. Lo mismo se puede aplicar cuando el formato de hora es de 24 horas.

Para abordar este problema, podemos expresar estas variables como una representación de la función seno y coseno. Para la función 'minuto', podemos aplicar la función seno y coseno usando NumPy para representarla en naturaleza cíclica de la siguiente manera:

minute_feature_sin = np.sin(df['minute_feature']*(2*π/60))

minute_feature_cos = np.cos(df['minute_feature']*(2*π/60))

(Nota: Dividir por 60 porque en una hora hay 60 minutos. Si quieres hacerlo por meses, divídelo por 12 y así sucesivamente)

Al graficar estas características en un diagrama de dispersión, notará que estas características exhiben una relación cíclica entre ellas.

Lea también: Ideas y temas de proyectos de aprendizaje automático

Conclusión

El artículo se centró en la importancia de la ingeniería de características y citó algunas técnicas comunes utilizadas en el proceso de ingeniería de características. Depende del algoritmo y los datos disponibles para decidir qué técnicas de todas las enumeradas anteriormente proporcionarían mejores conocimientos.

Pero eso es realmente una captura difícil y no es seguro asumirlo, ya que los conjuntos de datos pueden ser diferentes y los algoritmos utilizados para los datos también pueden variar. El mejor enfoque es seguir un enfoque incremental y realizar un seguimiento de los modelos que se han creado junto con sus resultados en lugar de realizar la ingeniería de características de manera imprudente.

Si está interesado en obtener más información sobre el aprendizaje automático, consulte el Programa PG Ejecutivo en Aprendizaje Automático e IA de IIIT-B y upGrad, que está diseñado para profesionales que trabajan y ofrece más de 450 horas de capacitación rigurosa, más de 30 estudios de casos y asignaciones, IIIT -Estado de exalumno B, más de 5 proyectos prácticos finales prácticos y asistencia laboral con las mejores empresas.

¿Cuáles son las desventajas de usar la técnica de imputación de datos basada en la mediana media?

Al utilizar la imputación de medias, los vínculos y correlaciones entre variables no se conservan. Pero imputar la media mantiene la media de los datos observados. Como resultado, incluso si faltaran todos los datos al azar, la estimación media permanecería sin sesgo. La varianza de las variables imputadas se reduce utilizando la imputación media. La imputación media reduce los errores estándar, lo que hace que la mayoría de las pruebas de hipótesis y los cálculos de intervalos de confianza sean inexactos. Así, los errores de tipo I se cometen de forma inconsciente.

¿Por qué se requiere la extracción de características?

La extracción de características se utiliza para localizar la colección de características más pequeña y más informativa (patrones distintos) para mejorar la eficacia del clasificador. La extracción de características ayuda en la reducción de datos innecesarios en una recopilación de datos para que el énfasis se ponga solo en la información y las características relevantes. Finalmente, reducir los datos facilita que la máquina desarrolle el modelo con menos esfuerzo, además de acelerar los procesos de aprendizaje y generalización en el proceso de aprendizaje automático. La aplicación más importante de la ingeniería de características es en la clasificación de señales biomédicas, donde la extracción de características es un elemento importante, ya que si las características no se eligen con cuidado, el rendimiento de la clasificación podría verse afectado.

¿Hay alguna desventaja de usar la técnica de extracción de características?

La extracción de características ha presentado algunas características nuevas que la gente común no puede leer ni comprender. La escalabilidad es otro desafío que se enfrenta durante la extracción de funciones. Si los conjuntos de datos son grandes, algunas de las técnicas de extracción de características no podrán ejecutarse. Los enfoques complejos de extracción de características no lineales, en particular, serían imposibles de implementar. La mayoría de las técnicas se basan en alguna forma de aproximación para manejar el problema de selección de características de manera eficiente, lo que en ciertas situaciones es incapaz de abordar el problema preciso.