Pregunta

Digamos que necesito clasificar las direcciones con Scikit-Learn, por lo que si quiero que mi clasificador pueda clasificar las direcciones por el nombre de la calle y el código post/postal, si hago un clasificador OneVSrest o las separe en dos clasificadores diferentes ( para el mismo conjunto de entrenamiento)?

He intentado ambos, y parece que tener múltiples clasificadores podría ser una mejor opción, ya que se siente más rápido entrenar múltiples clasificadores más pequeños. ¿Es así como se supone que debe hacerse?

¿Fue útil?

Solución

Ambas formas son válidas y ambas se usan comúnmente. A veces, un clasificador que afirma ser multilabelia puede estar separando las etiquetas en múltiples clasificadores OnevSrest bajo el horno y unir convenientemente los resultados al final.

Sin embargo, hay casos en los que los métodos son fundamentalmente diferentes. Por ejemplo, en la capacitación de una red neuronal con múltiples objetivos (etiquetas), puede configurar la estructura de la red de modo que haya una estructura compartida. Los nodos compartidos terminarán aprendiendo características que son útiles para todos los objetivos, lo que podría ser muy útil.

Por ejemplo, si son clases (etiquetas) son "gato-pet", "gato-big" y "perro", es posible que desee un algoritmo que primero aprenda a distinguir entre cualquier gato y cualquier perro, y luego en un El paso posterior aprende a separar a los gatos que son mascotas de gatos que son grandes (¡como un león!). Esto se llama jerarquía, y si su clasificador puede explotar la jerarquía, puede obtener una mejor precisión. Sin embargo, si sus clases son completamente independientes, puede no hacer ninguna diferencia.

Le sugiero que comience con el método que es más fácil (es decir, OneVSrest), y vea si el rendimiento es adecuado para sus necesidades, luego pase a métodos más complicados (métodos multilabelos, jerárquicos, etc.) solo una vez que necesita un mejor rendimiento.

Licenciado bajo: CC-BY-SA con atribución
scroll top