Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Idea de Técnica | Ingeniería de Características
Procesamiento Previo de Datos
course content

Contenido del Curso

Procesamiento Previo de Datos

Procesamiento Previo de Datos

1. Introducción Breve
2. Procesamiento de Datos Cuantitativos
3. Procesamiento de Datos Categóricos
4. Procesamiento de Datos de Series Temporales
5. Ingeniería de Características
6. Avanzando a Tareas

bookIdea de Técnica

Ingeniería de características - es un proceso utilizado en el aprendizaje automático que consiste en utilizar los datos disponibles para generar variables adicionales que no existen en el conjunto de datos original. Esta técnica puede aplicarse tanto al aprendizaje supervisado como al no supervisado, con el objetivo de agilizar y acelerar el tratamiento de los datos y, al mismo tiempo, mejorar la precisión del modelo. El objetivo es construir nuevas características que puedan mejorar el poder predictivo del modelo.

Dependiendo de la tarea, el algoritmo de preparación de datos puede cambiar, pero el proceso completo de ingeniería de características suele tener este aspecto:

Pasemos inmediatamente a un ejemplo sencillo para comprender la esencia del planteamiento. Podemos crear nuevas funciones a partir de los datos de cotizaciones bursátiles utilizando las bibliotecas pandas y numpy:

123456789101112131415161718192021222324
import pandas as pd import numpy as np # Read the dataset df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/9c23bf60-276c-4989-a9d7-3091716b4507/datasets/stock_prices.csv') # Remove missing values df.dropna(inplace=True) # Normalize the data df['price'] = (df['price'] - df['price'].mean()) / df['price'].std() # Create new features df['price_sq'] = df['price'] ** 2 df['price_diff'] = df['price'].diff() df['price_pct_change'] = df['price'].pct_change() # Create interactive features df['price_company_mean'] = df.groupby('company')['price'].transform('mean') df['price_company_std'] = df.groupby('company')['price'].transform('std') # Convert categorical data to numerical data df = pd.get_dummies(df, columns=['company']) print(df)
copy

En este ejemplo, hemos creado 5 nuevas características basadas en las 2 variables originales.

Otro ejemplo de qué nuevos datos podemos extraer de lo que ya tenemos. Supongamos que tienes un conjunto de datos con las ventas online de tu tienda. Su aspecto es el siguiente

A partir de la variable 'Fecha', puedes crear un token booleano de un fin de semana:

Debido a esto, por ejemplo, un modelo ARIMA para la predicción de ventas funcionará mejor porque podrá detectar la relación entre el valor positivo de la columna "Fin de semana" y el aumento de las ventas.

En la aplicación de la ingeniería de características se utilizan varios métodos, como la eliminación de valores atípicos y valores perdidos, la normalización de datos, la creación de nuevas características basadas en las existentes, la conversión de datos categóricos en datos numéricos, la creación de características interactivas, etc.

¿Cómo evaluar la eficacia de funciones nuevas o ya existentes?

  • El rendimiento del modelo puede compararse con y sin las nuevas características para ver si han mejorado la precisión del modelo;
  • Otro enfoque consiste en utilizar técnicas de importancia de las características, como la importancia de permutación o las puntuaciones de importancia de las características, para determinar la contribución de cada característica a la precisión del modelo.
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 5. Capítulo 1
some-alt