¿Por qué una codificación activa mejora el rendimiento del aprendizaje automático?

127

Me di cuenta de que cuando la codificación One Hot se usa en un conjunto de datos particular (una matriz) y se usa como datos de entrenamiento para algoritmos de aprendizaje, proporciona resultados significativamente mejores con respecto a la precisión de la predicción, en comparación con el uso de la matriz original como datos de entrenamiento. ¿Cómo se produce este aumento de rendimiento?

maheshakya
fuente

Respuestas:

260

Muchos algoritmos de aprendizaje aprenden un solo peso por característica o usan distancias entre muestras. El primero es el caso de modelos lineales como la regresión logística, que son fáciles de explicar.

Suponga que tiene un conjunto de datos que tiene una sola característica categórica "nacionalidad", con valores "Reino Unido", "Francés" y "Estados Unidos". Suponga, sin pérdida de generalidad, que estos están codificados como 0, 1 y 2. Luego tiene un peso w para esta característica en un clasificador lineal, que tomará algún tipo de decisión basada en la restricción w × x + b> 0 , o equivalentemente w × x <b.

El problema ahora es que el peso w no puede codificar una opción de tres vías. Los tres valores posibles de w × x son 0, w y 2 × w. O estos tres conducen a la misma decisión (son <b o ≥b) o "Reino Unido" y "Francés" conducen a la misma decisión, o "Francés" y "EE. UU." Dan la misma decisión. No hay posibilidad de que el modelo aprenda que "Reino Unido" y "EE. UU." Deberían tener la misma etiqueta, con "Francés" el más extraño.

Mediante la codificación en caliente, se amplía el espacio de funciones en tres funciones, cada una de las cuales tendrá su propio peso, por lo que la función de decisión ahora es w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, donde todas las x son booleanos. En este espacio, dicha función lineal puede expresar cualquier suma / disyunción de las posibilidades (por ejemplo, "Reino Unido o Estados Unidos", que podría ser un predictor para alguien que habla inglés).

Del mismo modo, cualquier alumno basado en métricas de distancia estándar (como los vecinos más cercanos a k) entre muestras se confundirá sin una codificación única. Con la codificación ingenua y la distancia euclidiana, la distancia entre Francia y EE. UU. Es 1. La distancia entre EE. UU. Y el Reino Unido es 2. Pero con la codificación única, las distancias por pares entre [1, 0, 0], [0, 1 , 0] y [0, 0, 1] son ​​todos iguales a √2.

Esto no es cierto para todos los algoritmos de aprendizaje; Los árboles de decisión y los modelos derivados, como los bosques aleatorios, si son lo suficientemente profundos, pueden manejar variables categóricas sin codificación única.

Fred Foo
fuente
44
Gracias por esto Lars, pero cuando hacemos un OneHotEncoding que efectivamente aumenta el número de características, no necesitamos aumentar las muestras también, para asegurarnos de que no se sobreajuste.
Manoj
@Manoj En comparación con la representación alternativa obvia de variables categóricas, codificando cada nivel como un número entero distinto, no creo que importe: necesita estadísticas suficientes de cualquier manera.
Fred Foo
77
¿Hay alguna literatura que pueda señalar para que yo pueda leer más sobre esto? Gracias.
Dr.Knowitall
1
¿Hay algún beneficio en usar una matriz de rango inferior a la completa (lo que no haría al construir un modelo estadístico regular) cuando se emplean técnicas de aprendizaje automático como el refuerzo?
Steve S
2
Esto me parece lo que un estadístico llamaría "variables ficticias". Pero tal vez haya algún ahorro de espacio de almacenamiento.
Soldalma
3

Con respecto al aumento de las funciones al hacer una codificación en caliente, se puede usar el hashing de funciones. Cuando realiza el hash, puede especificar que el número de depósitos sea mucho menor que el número de las funciones recién introducidas.

usuario3764384
fuente
0

Cuando desea predecir categorías, desea predecir elementos de un conjunto. No usar la codificación de una sola vez es similar a permitir que las categorías tengan categorías vecinas (por ejemplo: si hiciste una regresión con los enteros de las categorías) organizadas de cierta manera y en un cierto orden.

Ahora, ¿qué sucede si asigna categorías 0 a 0, categorías 1 a 1 y categorías 2 a 2 sin codificación única, y que la predicción de su algoritmo no está segura de si debería elegir 0 o 2: si pronostica 1 a pesar de él piensa que es 0 o 2?

Ya ves a dónde va. Lo mismo ocurre con sus entradas de datos: si no se supone que sean vecinos, no los muestre a su algoritmo como vecinos.

Guillaume Chevalier
fuente