15 votos

¿Qué algoritmos requieren codificación one-hot?

Nunca estoy seguro de cuándo usar la codificación en caliente para las variables categóricas no ordenadas y cuándo no. Lo uso cuando el algoritmo usa una métrica de distancia para calcular la similitud. ¿Alguien puede dar una regla general acerca de qué tipos de algoritmos requerirían que las características categóricas no ordenadas estén codificadas de forma activa y cuáles no?

9voto

David Puntos 41

La mayoría de los algoritmos de regresión lineal, regresión logística, redes neuronales, máquinas de vectores soporte, etc.) requieren algún tipo de la codificación de las variables categóricas. Esto es porque la mayoría de los algoritmos de tomar sólo los valores numéricos como entradas.

Los algoritmos no requiere codificación de algoritmos pueden tratar directamente con los conjuntos discretos de distribución , tales como cadena de Markov / Naive Bayes / red Bayesiana, árbol, etc.

Comentarios adicionales:

7voto

guest Puntos 26

¿Alguien puede dar una lista de lo que los algoritmos requeriría categórica características para ser uno-caliente-codificado y cuáles no?

AFAIU, tiene más que ver con el particular de datos, menos con un determinado algoritmo. Específicamente, depende de si hay algo de orden significativo en las categorías o no.

Considerar dos casos. En el primero se tienen las categorías malo, meh, bueno, y en el segundo tienes manzana, naranja, pera. Hay un orden natural en el primer caso, porque meh es, probablemente, entre malos y buenos, pero probablemente nada similar sucede en la manzana, naranja, pera.

Si usted evitar caliente de codificación para el primer caso, se está "perdiendo" la información sobre la orden. Si utiliza una bañera de codificación para el segundo caso, estás asignando un poco de orden a las categorías que no es, naturalmente, cierto.

Yo lo hago cada vez que el algoritmo utiliza una distancia métrica para calcular la similitud.

Por qué? Supongamos que una de las características es una categoría de malo, meh, bueno, y tiene tres instancias, 1, 2, y 3, donde son idénticos, excepto que 1 es mala, 2 es meh, y 3 es bueno. Usted probablemente desea expresar el algoritmo que 1 es más similar a 2 que 3.

2voto

user39770 Puntos 9

Ninguna máquina algoritmo de aprendizaje requiere de una bañera de codificación. Es un método para tratar con variables categóricas. Las variables ficticias es otra. Tradicionalmente, las variables ficticias era la solución preferida. Por ejemplo, la R de la función lm (), se crea automáticamente las variables ficticias para datos categóricos. Si usted está usando python y scikt-aprender, creo que muchos algos requieren de una bañera de codificación de las variables categóricas. Creo que tensorFlow también requiere de una bañera de codificación. Estas son las opciones de cómo la variable es codificada. No hay ninguna razón por la que las variables ficticias no se podía usar en el código de lugar. Todo esto tiene que lidiar con el código de la implementación del algoritmo.

Como hxd1011 señala el problema de la descripción de la 'distancia' entre variables categóricas es un tema delicado. Además de las distancias mencionadas también hay distancia de Jaccard. Algunos ML de métodos, especialmente SVM son inapropiadas para los datos categóricos y la adición de las variables categóricas se puede (ya sea, por tanto, de decidir) conducen a modelos con muy baja capacidad de predicción. La mayoría de conjunto de modelos de manejar datos categóricos "como está" y no requieren de pre-procesamiento.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X