Clasificador para etiquetas de clase inciertas


11

Digamos que tengo un conjunto de instancias con etiquetas de clase asociadas. No importa cómo se etiquetaron estas instancias, sino cuán segura es su membresía de clase. Cada instancia pertenece exactamente a una clase. Digamos que puedo cuantificar la certeza de cada membresía de clase con un atributo nominal que va de 1 a 3 (muy seguro a incierto, respectivamente).

¿Existe algún tipo de clasificador que tenga en cuenta esa medida de certeza y, en caso afirmativo, está disponible en el kit de herramientas WEKA?

Me imagino que esta situación ocurre con bastante frecuencia, por ejemplo, cuando las instancias son clasificadas por seres humanos que no siempre están completamente seguros. En mi caso, tengo que clasificar imágenes y, a veces, una imagen puede pertenecer a más de una clase. Si esto sucede, le doy a la clase una alta incertidumbre, pero aún así la clasifico con una sola clase.

¿O hay otros enfoques para este problema, sin un clasificador especializado? Por ejemplo, ¿solo tomar "ciertas" clasificaciones para el entrenamiento? Me temo que en este caso, habrá más clasificaciones erróneas porque los casos "fronterizos" no están cubiertos.


1
¿Cada entrada pertenece exactamente a una clase? ¿O es posible que alguna entrada pertenezca a la clase 12 con certeza 1 y a la clase 34 con certeza 2?
user31264

Cada entrada pertenece exactamente a una clase, en este caso.
wnstnsmth

Respuestas:


8

En primer lugar, como ya explicó @Marc Claesen, la clasificación semi-supervisada es una de las técnicas para resolver la situación en la que sabe que las clases son realmente distintas, pero no está seguro de a qué clase pertenece realmente el caso.

Sin embargo, también hay situaciones relacionadas, donde la "realidad" no es tan clara, y la suposición de tener clases realmente distintas no se cumple: los casos de borde pueden ser una realidad "física" (ver a continuación los documentos sobre una solicitud donde conocimos tal condición).

Hay una suposición crucial para los clasificadores semi-supervisados que debe asegurarse de que se cumpla: la suposición de que en el espacio de características, los límites de clase vienen junto con una baja densidad de muestra . Esto se conoce como la suposición del clúster.
Incluso si la realidad subyacente a sus datos tiene clases distintas, su conjunto de datos puede tener casos desproporcionadamente más limítrofes: por ejemplo, si su técnica de clasificación está dirigida a clasificar casos difíciles, mientras que los casos claros y fáciles no son de interés y sus datos de entrenamiento ya reflejan esto situación.

solo tomando "ciertas" clasificaciones para el entrenamiento? Me temo que en este caso, habrá más clasificaciones erróneas porque los casos "fronterizos" no están cubiertos.

Estoy totalmente de acuerdo con usted en que excluir los casos límite a menudo es una mala idea: al eliminar todos los casos difíciles, termina con un problema artificialmente fácil. En mi humilde opinión, es aún peor que excluir los casos límite generalmente no se detiene con el entrenamiento modelo, pero los casos límite también se excluyen de la prueba, por lo tanto, probar el modelo solo con casos fáciles. Con eso, ni siquiera se daría cuenta de que el modelo no funciona bien con casos límite.

Aquí hay dos documentos que escribimos sobre un problema que difiere del suyo en que en nuestra aplicación también la realidad puede tener clases "mixtas" (una versión más general de su problema: la incertidumbre en las etiquetas de referencia también está cubierta).

Los enlaces van a la página del proyecto de un paquete R que desarrollé para hacer los cálculos de rendimiento. Hay más enlaces tanto a la página web oficial como a mis manuscritos de los documentos. Si bien no he usado Weka hasta ahora, entiendo que hay una interfaz para R disponible .


consideraciones prácticas:

  • Si bien el enfoque de copiar y etiquetar de manera diferente es sencillo, no funciona bien con todos los clasificadores e implementaciones en la práctica. Por ejemplo, AFAIK no hay forma de decirle a libSVMlos ajustes mediante validación cruzada que todas las copias de cada punto de datos deben mantenerse en el mismo pliegue de validación cruzada. Por lo tanto, libSVMel ajuste probablemente produciría un modelo de sobreajuste masivo.
  • También para la regresión logística, descubrí que muchas implementaciones no permitían las etiquetas de membresía parcial que necesitaba.
  • La implementación que utilicé para los documentos anteriores es en realidad una ANN sin capa oculta que utiliza la función de enlace logístico como sigmoidal ( nnet::multinom).

Su primera consideración práctica, si bien es cierta, no se aplica libsvmen particular. Los libsvmautores proporcionan una versión alternativa de cada versión en la que es posible una clasificación ponderada por instancia, evitando este problema por completo. Es este tipo de cosas lo que me lleva a usar generalmente bibliotecas de algoritmos directamente, en lugar de envoltorios como Weka / scipy / ... csie.ntu.edu.tw/~cjlin/libsvmtools/#weights_for_data_instances
Marc Claesen

@MarcClaesen: gracias, no había visto eso. Pero, ¿no necesitaría proporcionar dos instancias del mismo caso, una ponderada, digamos, con 1/3 de clase A y la otra con 2/3 de clase B? En cualquier caso, no tener que proporcionar muchas copias de los casos claros hará que el ajuste sea menos problemático (para mis datos, de todos modos, tengo que hacer las divisiones de ajuste externamente ya que tengo una estructura de datos "jerárquica" con múltiples mediciones de los casos reales )
cbeleites descontento con SX

@cbeiteles cuando una instancia puede pertenecer a múltiples clases, de hecho, deberá proporcionarla varias veces, incluso con esta ponderación de instancia. No había considerado esa posibilidad.
Marc Claesen

6

Esta es una de las generalizaciones de clasificación que se abordan en el aprendizaje semi-supervisado. Si tiene una medida de certeza, puede usar enfoques que permitan ponderar las instancias de capacitación. Cuanto mayor sea la certeza, mayor será el peso de la instancia correspondiente. Ejemplos de tales enfoques incluyen SVM ponderado por instancia y regresión logística.

Estoy seguro de que Weka tiene implementaciones de estos algoritmos. Si todo lo demás falla, muestree varias instancias de las instancias con alta certeza. Puede usar este enfoque para SVM o LR tradicionales.

Ejemplo: SVM

Si no me equivoco, weka tiene interfaces para LIBSVM . LIBSVM le permite resolver SVM ponderado por clase en todas sus versiones y SVM ponderado por instancia en versiones especiales de cada versión. Asumiré que weka no es compatible con este último (que es lo que necesitas).

La SVM ponderada en clase minimiza la siguiente función objetivo: con el hiperplano de separación en el espacio de características, las variables de holgura (que modelan la clasificación errónea del entrenamiento) y y el conjunto de vectores de soporte que pertenecen a la clase positiva y negativa, respectivamente. Usando los pesos y puede asignar diferentes penalizaciones de clasificación errónea entre clases.

minw,ξw2+CposiPξi+CnegiNξi,
wξPNCposCneg

Según su pregunta, parece que lo ideal sería utilizar 6 pesos diferentes (2 clases 3 niveles de certeza). Puede lograr esto para muchos enfoques duplicando muestras de los puntos con alta certeza.×

Por ejemplo, en términos de SVM, usar la misma instancia de datos dos veces produce una solución idéntica para duplicar su valor asociado . Esta es una manera muy fácil de asignar altas penalizaciones de clasificación errónea a ciertas instancias de datos. Puede seguir el mismo enfoque para la regresión logística.C


(+1) esto es todo! Al duplicar instancias con diferentes etiquetas y ponderaciones de instancias (también conocidas como certezas de etiqueta), también se pueden aplicar algoritmos como Random Forests, Naive Bayes, etc. Rapidminer (competidor de weka) lo hace. Al establecer la certeza en 1, incluso se pueden modelar problemas de etiquetas múltiples "nítidos".
steffen

Tiene razón, WEKA admite LIBSVM, pero no admite la ponderación de instancia, afaik. Creo que la idea de duplicar instancias es muy buena, especialmente porque cada alumno "tradicional" puede manejarla.
wnstnsmth

2

La dificultad del problema depende en gran medida de lo erróneas que puedan ser las etiquetas inciertas. Si las etiquetas inciertas son correctas, digamos, el 90% del tiempo, probablemente pueda salirse con la suya utilizando la regresión logística. Por otro lado, si las etiquetas están mal casi la mitad del tiempo, es posible que deba recurrir a algunas técnicas especiales. Aquí hay una puñalada que tomé en un problema muy similar. (Tuvimos múltiples observaciones por etiqueta, pero por lo demás la configuración es bastante similar).


-5

Tuve un breve recorrido con reconocimiento y clasificación de imágenes.

Random Forests es una técnica fácil de usar. Lo he implementado en R, también debería estar disponible en Weka. Sin embargo, la facilidad de uso supera la precisión de la predicción. Si tiene un conjunto de entrenamiento lo suficientemente grande, puede clasificar varias etiquetas.

Funcionó para reconocer los dígitos escritos a mano bastante bien, pero si sus imágenes son más complejas, solo una prueba le dirá si lo hace bien.


44
¿Qué tiene que ver eso con las etiquetas de clase inciertas?
wnstnsmth
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.