Hasta ahora, dimos la impresión de que un modelo actúa directamente sobre el filas de un conjunto de datos; pero, en realidad, los modelos transfieren datos de una forma un poco diferente.
Por ejemplo, supongamos que un conjunto de datos proporciona cinco columnas, pero solo dos de esas
las columnas (b
y d
) son atributos del modelo. Durante el procesamiento
en el ejemplo de la fila 3, ¿el modelo solo toma el contenido del
destacado dos celdas (3b y 3d) de la siguiente manera?
De hecho, el modelo transfiere un array de valores de punto flotante llamado vector de atributos Puedes pensar de un vector de atributos como los valores de punto flotante que comprenden un ejemplo.
Sin embargo, los vectores de atributos rara vez usan los valores sin procesar del conjunto de datos. Por lo general, debes procesar los valores del conjunto de datos en representaciones de las que tu modelo pueda aprender mejor. Por lo tanto, una solución más realista El vector de atributos podría verse de la siguiente manera:
¿No sería posible que un modelo produzca mejores predicciones mediante el entrenamiento valores reales en el conjunto de datos que de valores alterados? Sorprendentemente, la respuesta es no.
Debes determinar la mejor manera de representar los valores del conjunto de datos sin procesar como entrenables valores en el vector de atributos. Este proceso se denomina ingeniería de atributos, y es una parte vital del aprendizaje automático. Las técnicas de ingeniería de atributos más comunes son las siguientes:
- Normalización: Conversión valores numéricos en un rango estándar.
- Discretización (también conocida como bucketing): Cómo convertir valores numéricos valores en buckets de rangos.
Esta unidad abarca la normalización y la discretización. La siguiente unidad, Trabajar con datos categóricos, abarca otras formas de el procesamiento previo, para convertir datos no numéricos, como cadenas, en valores de punto flotante.
Cada valor en un vector de atributos debe ser un valor de punto flotante. Sin embargo, muchos los atributos son, por naturaleza, cadenas u otros valores no numéricos. Por lo tanto, una gran parte de la ingeniería de atributos es representar valores no numéricos como valores numéricos. Verás mucho de esto en módulos posteriores.