Truco de hash: lo que realmente sucede

12

Cuando los algoritmos de ML, por ejemplo, Vowpal Wabbit o algunas de las máquinas de factorización que ganan concursos de clics ( Kaggle ), mencionan que las características son 'hash', ¿qué significa eso realmente para el modelo? Digamos que hay una variable que representa la ID de un complemento de Internet, que toma valores como '236BG231'. Entonces entiendo que esta característica se convierte en un entero aleatorio. Pero mi pregunta es:

  • ¿Es el entero ahora usado en el modelo, como un entero (numérico) O
  • ¿El valor hash todavía se trata como una variable categórica y está codificado en caliente? Entonces, ¿el truco del hash es solo ahorrar espacio de alguna manera con datos grandes?
B_Miner
fuente

Respuestas:

7

La segunda viñeta es el valor en el hashing de características. El hash y una codificación activa para datos dispersos ahorra espacio. Dependiendo del hash algo, puede tener diversos grados de colisiones que actúan como una especie de reducción de dimensionalidad.

Además, en el caso específico del hashing de características de Kaggle y una ayuda de codificación en caliente con la expansión / ingeniería de características al tomar todas las tuplas posibles (generalmente solo de segundo orden pero a veces el tercero) de características que luego se combinan con colisiones que crean explícitamente interacciones que a menudo son predictivas mientras que las características individuales no lo son.

En la mayoría de los casos, esta técnica combinada con la selección de características y la regularización de red elástica en LR actúa de manera muy similar a una NN de una capa oculta, por lo que funciona bastante bien en competiciones.

cwharland
fuente
Por lo tanto, todavía se utiliza la codificación en caliente, solo en valores hash * que, como usted dice, ahorra espacio y puede causar una reducción de dimensionalidad (colisiones dadas). ¿Es eso correcto?
B_Miner
1
One Host Encoding no es una parte necesaria de las funciones de hashing, pero a menudo se usa junto con él, ya que ayuda bastante con el poder predictivo. Una forma de pensar en una codificación activa es transformar una característica de un conjunto de N valores discretos en un conjunto de N preguntas binarias. Quizás no sea importante para mí saber si la característica J es 2 o 3 solo que no es 4. One Hot hace que esa distinción sea específica. Esto ayuda mucho con los modelos lineales, mientras que los enfoques de conjunto (como RF) escanearán los puntos de ruptura en la función para encontrar esa distinción.
cwharland