Clasificación jerárquica con clasificadores locales: en la madriguera del conejo
¿Construyendo su primer modelo de clasificación jerárquica? Esta publicación es para ti.
Noa Weiss
20 de enero de 2020·6 min de lectura
Los datos jerárquicos están a nuestro alrededor. Como científicos de datos, ya estamos acostumbrados a aplanarlos, ignorando esa taxonomía natural de los datos para que podamos alimentarlos fácilmente a nuestros modelos de aprendizaje automático. Pero hay, dicen, otra forma. Uno que conserva esa valiosa información que se esconde dentro de la jerarquía. Uno que podría ayudarnos a diseñar nuestros modelos de clasificación para ser más (artificialmente) inteligentes y capturar mejor el carácter distintivo único de cada clase predicha.
Hay algunos estándares aproblemas al diseñar un modelo de clasificación jerárquica. Aquí, nos centraremos en uno de ellos: construir un modelo de conjunto compuesto por clasificadores locales estructurados jerárquicamente. Ese enfoque podría implementarse de diferentes maneras, cada una con sus propias ventajas e inconvenientes. En las próximas 1.000 palabras, cubriré los pros y los contras de cada estructura de clasificador local, los desafíos únicos que podría presentar y los problemas para los que es más adecuado.
En otras palabras, esta publicación trata sobre qué estructura de clasificador local debe elegir para su propio proyecto de clasificación jerárquica. ¿Curioso? Excelente. Vayamos a eso, entonces.
Antes de sumergirnos
Comprender los entresijos de los clasificadores jerárquicos requiere algunos conocimientos previos. Haré todo lo posible para que esta publicación sea lo más clara y comprensible posible. Sin embargo, si se encuentra luchando con los conceptos básicos de la taxonomía de datos y la clasificación jerárquica, debe seguir adelante y leer sobre ello, créame, es un cambio de página.
A lo largo de esta publicación, daré ejemplos basados en esta taxonomía de mascotas domésticas comunes:
Las diferentes estructuras de los clasificadores locales (y cuál es el más justo de todos)
Oh, clasificadores locales estructurados jerárquicamente. Esos modelos de conjuntos inteligentes construidos con una jerarquía de clasificadores más pequeños, capturando así la esencia de la clasificación jerárquica de una manera simple pero cautivadora. Qué encantadores, ¿verdad?
Si está leyendo esto, es posible que también se haya enamorado de su atractivo innegable, lo que significa que ahora se enfrenta a una pregunta difícil: ¿cuál de las estructuras disponibles debería elegir?
No se preocupe, ha venido al lugar correcto. Echemos un vistazo a nuestro feliz grupo de opciones.
Un amable recordatorio: los tres concursantes son:
- Clasificador local por nodo (LCN)
- Clasificador local por nodo principal (LCPN)
- Clasificador local por nivel (LCL)
Clasificador local por nodo (LCN)
Este es donde tienes un clasificador binario para cada nodo (por ejemplo: un clasificador individual para cada uno de «Gato», «Perro», «Unicornio», «Siamés», «Persa», etc.; en nuestro ejemplo de mascotas domésticas , tendremos un total de 13 clasificadores binarios). También es el más utilizado en la literatura, lo que lo convierte en una auténtica belleza del balón. Entonces, ¿qué pros y contras debería considerar?
Pros:
- Este enfoque es naturalmente multi-etiqueta. Y llega allí con un algoritmo de etiqueta única convencional, sin la complejidad de diseñar e implementar un algoritmo de etiquetas múltiples. (Sin embargo, no tiene que utilizar varias etiquetas; en el caso de un problema de una sola etiqueta, simplemente puede asignar solo la etiqueta con la mayor confianza; más sobre eso en mi próxima publicación).
Contras:
- La inconsistencia problema. ¿Qué pasa si el clasificador local para «Cat» vota no, pero el local para «Persa» dice que sí? ¿Qué pasa si tanto «Unicornio» como «Bulldog francés» son positivos? (Suponiendo que los bulldogs de un solo cuerno, desafortunadamente, no existen en nuestro mundo). Cuando se utiliza el enfoque LCN, esos son resultados muy probables.
No es un problema irresoluble, de hecho, presentaré una forma bastante simple de evitarlo en una próxima publicación, pero es uno que requiere atención, o debería estar listo para algunos resultados inconsistentes. - Comparado con otros enfoques de clasificador local, LCN es significativamente mas voluminoso, ya que requiere muchos más clasificadores locales.
Clasificador local por nodo principal (LCPN)
Este es aquel en el que cada nodo padre (por ejemplo, «Perro») obtiene un clasificador de clases múltiples (por ejemplo, uno que determina la raza del perro).
Pros:
- En primer lugar, esto es lo más intuitivo uno del grupo, y creo que vale algo. Como los científicos de datos no trabajamos en un vacío, y como a menudo necesitamos comunicar nuestro trabajo a colegas o clientes, tener nuestro modelo estructurado de una manera que otros puedan comprender fácilmente es un gran «infierno, sí».
- Teniendo solo tantos clasificadores locales como nodos padres, este enfoque es más delgado que el anterior, lo que facilita su implementación.
Contras:
- Recuérdalo inconsecuencia problema del último enfoque? Bueno, también se nos escapó con este. Pero, de nuevo, la solución es bastante simple (y la abordaré en mi próxima publicación, muy, muy pronto; no los mantendré al borde de sus asientos por mucho tiempo).
Clasificador local por nivel (LCL)
Este es el que tiene un clasificador de clases múltiples para cada nivel de la taxonomía. Con nuestro ejemplo, eso significaría que un clasificador distinguiría entre gato, perro y unicornio, y luego otro con todas las clases de nodos de hoja: las razas específicas de perro, gato y unicornio.
Este enfoque es el menos utilizado en la literatura. Además, se utiliza principalmente como método de comparación de referencia. Veamos por qué:
Pros:
- Es un inclinarse, máquina de clasificación media. Bueno, es magro. Tan delgado. Muy pocos clasificadores. Menos líneas de código.
Contras:
- Recuérdalo inconsecuencia ¿problema? Bueno, ya no es tan fácil de resolver. Realmente no hay nada que le impida obtener «Cat» para el primer clasificador, luego «Pegasus» para el segundo. Y no hay mucho que hacer al respecto, al menos sin sumergirse realmente en el vientre de la bestia.
- A niveles profundos de la taxonomía, un clasificador podría tener forma demasiadas clases Para escoger de. Si tuviéramos algunas especies más en nuestro ejemplo, por ejemplo, el segundo clasificador podría haber tenido que discriminar entre 3 razas de gatos, 4 perros, 3 maravillosos unicornios, algunos jerbos, varios hurones y dos tipos de ponis todos juntos. Un poco demasiado, ¿no crees?
- Este enfoque completamente ignora las relaciones entre padres e hijos durante el entrenamiento y, bueno, eso es una tontería. Esa relación podría contener información muy valiosa, ¿y no es esa la razón por la que entramos en esa jerarquía en primer lugar?
Corte al grano, ¿lo haría? ¿Qué estructura debo utilizar?
Lo admito, fui parcial desde el principio. LCL nunca fue mi favorito y tenía mis dudas sobre LCN, así como. Pero ese último llegó … si tiene un problema de múltiples etiquetas, es la elección natural. Puede ser un poco más voluminoso, pero lo compensa con esa elegante facilidad con la que da múltiples etiquetas (nunca pensé que podrías tener un gato persa que es además un caniche, ¿verdad?).
Sin embargo, si se trata de un problema de etiqueta única, optaría por el enfoque LCPN. Es intuitivo, no demasiado voluminoso y hace lo que debe hacer. Su problema de inconsistencia también se puede resolver fácilmente, y esa solución también es bastante intuitiva.
Eso es todo por ahora, amigos
Si ha llegado hasta aquí, ya debería tener una idea de qué estructura de clasificador local es la más adecuada para su proyecto.
Sin embargo, todavía hay algunos problemas que resolver: cómo manejar las inconsistencias y la propagación de errores, de qué manera debe definir sus ejemplos de entrenamiento positivos y negativos, e incluso cómo se podría intentar medir un modelo tan extrañamente estructurado. Todos ellos serán respondidos en mis próximas publicaciones, estad atentos.
Como siempre, agradezco las preguntas, los comentarios y las solicitudes especiales; no dude en compartirlos en la sección de comentarios. Y si te gustó lo que aprendiste aquí, sigue adelante y difunde esa alegría poniéndolo en uso: tu primer modelo de clasificación jerárquica te espera.