2 votos

¿Cómo elegir un método para un clasificador binario basado únicamente en ejemplos positivos y no etiquetados?

Necesito construir un clasificador binario con aprendizaje automático, ya que no consigo elegir manualmente una combinación de características para lograr una fracción mínima de falsos positivos.

¿Cuál es la mejor práctica para elegir un método ML para construir un clasificador binario, específicamente en Aprendizaje Supervisado / Semisupervisado Grupo de métodos PU (Positivo/Desconocido) ? ¿Cómo elegir entre Aprendizaje Supervisado y Semisupervisado/PU? ¿Qué factores debo tener en cuenta a la hora de elegir un método concreto?

¿Cómo puedo comprobar en la práctica qué tipo de situación tengo (por ejemplo, como he visto en otras preguntas, cómo comprobar si el conjunto de entrada es separable; si hay una fuerte correlación entre características, etc.)?

Si hay varios métodos igualmente buenos para mi problema, ¿cuál es el más fácil para empezar, si me siento más cómodo con la línea de comandos de MacOS y Excel? (pero no me importan los lenguajes de programación tradicionales como Python)

Soy nuevo en el aprendizaje automático, así que si eso suena demasiado amplio, ¿qué me recomendaría leer/ver para entender mejor mis opciones?


Para dar algunos detalles del problema que estoy resolviendo:

  • Necesito detectar entre objetos "falsos" y "auténticos".

  • Tengo una colección creada manualmente de objetos que se sabe que son "falsos", un subconjunto de población que son "desconocidos" y necesito encontrar "falsos" en

  • Puedo crear fácilmente un conjunto de objetos "auténticos" si eso puede ayudar seriamente; el problema aquí es que el 99% de ellos están bastante "alejados" de la zona de "falsificaciones".

    • Sin embargo, si (por ejemplo, con SVM) encuentro una manera de construir una función para identificar los objetos que se encuentran en la zona "gris", los clasificaría fácilmente a mano con el fin de utilizarlos para entrenar un clasificador.
  • eligiendo entre precisión y recall, preferiría "mínimos Falsos Positivos" mientras se permite una gran cantidad de "Falsos Negativos".

  • algunos números:

    • la colección de objetos "falsos" son varios miles
    • el subconjunto "desconocido" de la población que es más fructífero explorar es 3x-5x veces mayor, pero puedo hacerlo aún mayor con objetos menos relevantes si es necesario.
    • He identificado entre 20 y 30 características numéricas que pueden utilizarse en la formación
    • de 5 a 7 características son intuitivamente más "relevantes", ya que son las medidas más directas de la sospecha
    • es relativamente fácil crear más funciones si existe un método sistemático para elegir las más prometedoras.

Hasta ahora he conseguido construir manualmente una función "compuesta" que ordena los objetos "desconocidos" por una combinación de varias métricas de "sospecha"; la función es una combinación lineal de ellas.

Hay aproximadamente un 1-2% de objetos "auténticos" que identifiqué manualmente en las "incógnitas" al construir esa función "compuesta".

Al construir la función compuesta, intenté maximizar el número de objetos falsos/desconocidos que aparecen antes del primer objeto "genuino" conocido. Como la función se construye a partir de métricas (características) "cuanto más altas, más sospechosas", lo que está "antes" de las genuinas conocidas tiene muchas probabilidades de ser falso. Sin embargo, sé que también hay muchas "falsificaciones" en lo que hay "después" de cada uno de los genuinos que conozco.

Estoy dispuesto a añadir más detalles si eso puede ayudar a responder a mi pregunta.

(Como referencia, mi pregunta anterior sobre datascience SE sobre el mismo problema)

0voto

kjetil b halvorsen Puntos 7012

Así que intentaré una respuesta aunque no tenga experiencia directa en problemas con una mezcla de datos etiquetados y no etiquetados. Su problema parece similar a la detección de la novedad, o la detección de anomalías, por lo que puede buscar en este sitio para las etiquetas detección de anomalías y detección de novedades . Uno de los problemas de la búsqueda de información es que este tipo de problemas parecen tener varios nombres: aprendizaje PU, aprendizaje de una clase, aprendizaje semisupervisado.

Si no se etiquetan todos los ejemplos, el aprendizaje supervisado habitual parece difícil... así que aquí tienes algunos artículos que podrías consultar: Aprendizaje con ejemplos positivos y no etiquetados utilizando regresión logística ponderada ,
Modelos probabilísticos generativos para el aprendizaje sin etiquetado positivo Este post es relevante: paquete R de clasificación de una clase (positiva y no etiquetada)

También hay algunos paquetes de R en CRAN, como AdaSampling, RSSL, ssc y SSL (y posiblemente otros).

Y tal vez: empezar con alguna estadística descriptiva/visualización de los objetos "falsos" etiquetados... ¿son "falsos" de alguna manera similar, o cada uno a su manera? Tal vez algo relevante en algo de esto: Posts sobre PU-aprendizaje o puestos sobre aprendizaje en una clase .

0voto

grifaton Puntos 1686

He trabajado en dos proyectos de este tipo y puedo sugerir dos enfoques diferentes.

Enfoque uno: Tienes un pequeño número de ejemplos etiquetados como "falsos", y un montón de ejemplos sin etiquetar. En el conjunto de ejemplos sin etiquetar, se espera que la mayoría sean "auténticos" y unos pocos "falsos".

En este caso, yo entrenaría un clasificador utilizando downsampling, es decir, entrenaría muchos clasificadores individuales que utilizaran todos o la mayoría de los ejemplos falsos conocidos y un subconjunto de los ejemplos desconocidos, pero a todos los ejemplos desconocidos les daría la etiqueta "auténtico". Podrías salirte con la tuya, ya que la mayoría de ellos serán auténticos, por lo que cada clasificador sólo verá un pequeño número de ejemplos mal etiquetados.

Para realizar la detección real, se itera sobre el ejemplo desconocido en trozos. Por ejemplo (hágalo diez veces), elimine el 10% de los datos, entrene un clasificador utilizando el 90% restante de los ejemplos desconocidos (etiquetados como auténticos) y todos los ejemplos falsos. Aplique las predicciones de este clasificador al 10% y vea qué fracción marca como falsa.

Para tener una idea de cómo lo estás haciendo, también puedes sacar algunos de los ejemplos falsos del conjunto de entrenamiento y ver lo bien que lo está haciendo tu algoritmo a la hora de detectar falsificaciones conocidas.

Del mismo modo, vea qué fracción del 10% de desconocidos está marcando como falsos. ¿Es el 1%, el 5%, el 50%? ¿Es plausible?

Enfoque 2: Crees que una fracción considerable de los datos sin etiquetar es falsa. En este caso, sugeriría un enfoque no supervisado. Se hacen agrupaciones y se comprueba si los ejemplos falsos etiquetados caen desproporcionadamente en alguna de las agrupaciones. Si es así, y si algunos ejemplos no etiquetados están en esos mismos grupos, es razonable especular que hay una elevada probabilidad de que esos ejemplos no etiquetados sean falsos.

Ojo, he asumido en todo esto que no puedes salir a comprar más etiquetas. Si es posible solicitar más etiquetas, hay enfoques de aprendizaje semisupervisado/activo que podrías considerar. Tengo menos experiencia con estos

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X