Primero, permítanme decir que estoy un poco fuera de mi alcance aquí, así que si esta pregunta necesita ser reformulada o cerrada como un duplicado, háganmelo saber. Puede ser simplemente que no tengo el vocabulario adecuado para expresar mi pregunta.
Estoy trabajando en una tarea de procesamiento de imágenes en la que identifico características en una imagen y luego las clasifico en función de sus propiedades, incluida la forma, el tamaño, la oscuridad, etc. Tengo bastante experiencia con la parte de procesamiento de imágenes de esto, pero pienso Podría mejorar los métodos que uso para clasificar las características.
En este momento, establezco umbrales para cada uno de los parámetros medidos, y luego clasifico las características de acuerdo con una lógica simple en función de qué umbrales ha cruzado la característica. Por ejemplo (las propiedades y agrupaciones reales son más complejas, pero estoy tratando de simplificar porciones irrelevantes de mi proyecto para esta pregunta), digamos que estoy agrupando características en los grupos "Grande y Oscuro", "Grande y Ligero" y pequeña". Entonces, una característica estará en "Grande y Oscuro" iff (tamaño ( A )> umbral de tamaño) y (oscuridad ( A )> umbral de oscuridad).
El objetivo es que la clasificación esté de acuerdo con la clasificación realizada por un humano de nivel experto, de modo que pueda establecer los umbrales para producir la mejor coincidencia entre las agrupaciones hechas por humanos y computadora en algún conjunto de prueba, y luego espero que la clasificación funcione bien con nuevos datos.
Esto ya está funcionando bastante bien, pero veo un modo de falla particular que creo que puede ser reparable. Digamos que la característica se sabe que pertenece a "Big and Dark". El humano lo clasificó de esta manera porque, si bien era apenas lo suficientemente grande, era muy muy oscuro, lo que compensaba un poco la falta de "grandeza". Mi algoritmo no podría clasificar esta característica correctamente, porque la clasificación se basa en una lógica binaria rígida y requiere que se crucen todos los umbrales.
Me gustaría mejorar esta falla haciendo que mi algoritmo imite mejor el proceso guiado por humanos, en el cual una deficiencia en un parámetro puede ser compensada por una abundancia de otro. Para hacer esto, me gustaría tomar cada una de las propiedades básicas de mis características y convertirlas en algún tipo de puntuación que sea un predictor del grupo al que pertenece la característica. He pensado en muchas formas de hacerlo, pero en su mayoría son ideas ad hoc, basadas en mi experiencia en cálculo de vectores y física. Por ejemplo, he considerado tratar cada entidad como un vector en el espacio ND de las propiedades de la entidad, y calcular la proyección de cada entidad a lo largo de ciertos vectores, cada uno de los cuales mediría el grado en que una entidad pertenece al grupo.
Estoy seguro de que existe una técnica más rigurosa y mejor establecida para hacer este tipo de cosas, pero mi experiencia es relativamente débil en el análisis estadístico, por lo que estoy buscando un empujón en la dirección correcta. Incluso el nombre de una técnica, o un enlace a un libro de texto sería útil.
TL; DR: ¿Qué técnicas son útiles para clasificar objetos en función de una gran cantidad de parámetros descriptivos?
fuente
Respuestas:
Hay muchos clasificadores lineales listos para usar que pueden hacer eso, incluidos SVM, LDA (análisis discriminante lineal), redes neuronales lineales y muchos otros. Comenzaría ejecutando SVM lineal porque funciona bien en muchos casos y puede tolerar datos de entrenamiento limitados. También hay muchos paquetes en muchos entornos (como Matlab y R), por lo que puede probarlo fácilmente. La desventaja de SVM es que puede ser computacionalmente pesado, por lo que si necesita aprender muchas clases, podría ser menos apropiado.
En cuanto a la terminología: lo que llamó "conjunto de prueba" generalmente se denomina "conjunto de capacitación" en este contexto, y lo que llamó "nuevos datos" se denomina "conjunto de prueba".
Para un libro, había leído "Reconocimiento de patrones" de Duda, Hart y Stork. El primer capítulo es una muy buena introducción para principiantes.
fuente