Técnicas de categorización / segmentación

9

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).AAA

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.A

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?

Colin K
fuente
@ Colin Sería bueno echar un vistazo a las fotos. Has explicado tu problema con detalle, sería un buen complemento. :)
deps_stats
@deps_stats: Gracias por el aliento, me alegra ver que la gente piensa que he planteado mi pregunta al menos de manera un poco decente. Desafortunadamente, mis datos probablemente no sean algo que deba estar en un sitio web público. No está exactamente clasificado, pero definitivamente no es para consumo público. Intentaré generar algunos datos artificiales que servirán como un buen ejemplo para el propósito de esta pregunta, pero es posible que no tenga tiempo para hacerlo durante un día más o menos.
Colin K
@Colin No hay problema. Actualmente estoy trabajando en la segmentación del mercado para un mayorista de farmacia. El problema es que sus datos se parecen mucho a las señales. Veo muchas similitudes entre mi problema y el tuyo. Trataré de publicar alguna investigación que pueda ayudarte.
deps_stats
@deps_stats: desearía que mis datos fueran más como señales. Me siento mucho más cómodo con el procesamiento de señales que con este tipo de modelado / análisis estadístico.
Colin K
@Colin ¿Has probado algún análisis de agrupamiento por ahora? (k-means, agrupamiento jerárquico, particionamiento alrededor de medoides ...)
deps_stats

Respuestas:

5

norteyoFyo

s=yowyoFyo+o
os>tts<tentonces no lo hace. Tenga en cuenta que hay un único umbral aplicado a la puntuación completa (en lugar de a los valores de características individuales), por lo que una deficiencia en un parámetro puede compensarse con la abundancia en otro. Los pesos son intuitivamente interpretables, en el sentido de que cuanto mayor es el peso, más importante (o más decisiva) es esa característica.

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.

yotyo

solyo=11+Exp(Fyo-tyo),
solF

s=yowFyoyo.
Fyo, pero no por multiplicación como en un clasificador lineal habitual. La puntuación en este caso es la probabilidad logarítmica, y los pesos son las contribuciones de las características individuales en esa probabilidad logarítmica. La desventaja de usar esto en su caso es que necesitará muchos contenedores para los valores de sus características, y luego el aprendizaje puede ser difícil. Hay formas de evitarlo (por ejemplo, usar previos), pero dado que no tiene experiencia con esto, podría ser más difícil.

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.

Sheldon Cooper
fuente
1
Compré una copia de "Pattern Recognition" de D, H y S. Realmente es espectacular, y todo es útil y fácil de seguir. Gracias de nuevo. Así es exactamente como se supone que debe funcionar SE :)
Colin K