Cree un clasificador binario con solo datos positivos y sin etiquetar

11

Tengo 2 conjuntos de datos, uno con instancias positivas de lo que me gustaría detectar y otro con instancias sin etiquetar. ¿Qué métodos puedo usar?

Como ejemplo, supongamos que queremos entender detectar correo electrónico no deseado en función de algunas características de correo electrónico estructurado. Tenemos un conjunto de datos de 10000 correos electrónicos no deseados y un conjunto de datos de 100000 correos electrónicos para los que no sabemos si son spam o no.

¿Cómo podemos abordar este problema (sin etiquetar manualmente ninguno de los datos sin etiquetar)?

¿Qué podemos hacer si tenemos información adicional sobre la proporción de spam en los datos sin etiquetar (es decir, qué sucede si estimamos que entre el 20 y el 40% de los 100000 correos electrónicos sin etiquetar son spam)?

nassimhddd
fuente
1
A la publicación se le deben agregar las etiquetas semi-supervisadas y pu-learning. Estas etiquetas aún no existen y actualmente no puedo crearlas.
DaL
@DanLevin Sí, [etiqueta: aprendizaje semi-supervisado] tiene sentido. Agregado :) No estoy seguro con la parte de pu-learning (al menos no lo sé), ¡así que alguien más puede hacerlo!
Dawny33
1
El aprendizaje de PU es un caso específico de aprendizaje semi supervisado. Es menos común (7K resultados en Google) que semi supervisado (298K resultados en Google) que esta pregunta es PU (el conjunto de datos etiquetado es solo positivo). Mientras se discute el tema en la academia (por ejemplo, cs.uic.edu/~liub/NSF/PSC-IIS-0307239.html ) es posible que esta pregunta esté sola con esta etiqueta durante bastante tiempo.
DaL

Respuestas:

7

Mi sugerencia sería intentar construir algún tipo de agrupación en sus datos sin etiquetar que de alguna manera se aproxime a un conjunto de datos etiquetado. La justificación es más o menos la siguiente:

  • Tienes algún vector de características para representar tus documentos
  • En función de ese vector de características, puede crear una serie de agrupaciones diferentes, con métodos de agrupación difusos, aproximados o basados ​​en clases.
  • Sabiendo cómo es un ejemplo positivo, puede evaluar rápidamente la similitud general de un clúster con su clúster positivo
  • Sabiendo que en realidad solo debe haber dos grupos, puede ajustar los hiperparámetros en su método de agrupación para que las dos métricas anteriores estén cada vez más cerca de la satisfacción
  • Con los dos grupos, tiene lo que probablemente sea una aproximación cercana de un conjunto de datos etiquetado, que luego puede usar como un corpus estándar de plata para entrenar realmente su modelo

Espero que tenga sentido, si está buscando específicamente algoritmos de agrupamiento, algunos de los que personalmente disfruto que podrían ser buenos en este escenario son FLAME y tsne . Alternativamente, mirar la espectacular biblioteca de gensim en python lo llevará lejos hacia el agrupamiento que está buscando.

Espero que ayude y tenga sentido, deje un comentario si tiene alguna pregunta.

indico
fuente
Gracias por tu respuesta. ¿Entiendo bien: su punto de partida es fusionar los 2 conjuntos de datos?
nassimhddd
@ cafe876 Esa es sin duda una forma de comenzar, y luego tratar de recrear básicamente una agrupación que se aproxima mucho al original.
indico
3

Su problema pertenece al marco de aprendizaje de PU (solo aspectos positivos, muchos sin etiquetar).

También está cerca de los marcos más comunes del aprendizaje semi supervisado (pocos aspectos positivos y negativos, muchos sin etiquetar).

Hay muchos documentos de encuesta que puede buscar en el campo.

Un método clásico en el campo, que también se probó en el correo no deseado como en su caso, es la capacitación conjunta. En la capacitación conjunta, usted desarrolla dos alumnos independientes (por ejemplo, uno basado en el contenido del correo y otro basado en el esquema de envío) y utiliza los resultados de uno para entrenar al otro y viceversa.

DaL
fuente
2

Entrene 2 modelos generativos, uno para cada conjunto de datos (solo spam, spam más jamón), que le dará la probabilidad de que un punto de datos se extraiga de la misma distribución de probabilidad de los datos de entrenamiento. Asigne correos electrónicos como spam o jamón según el modelo que le brinde la mayor probabilidad de que el documento surja de los datos de entrenamiento utilizados para entrenarlo. Ejemplos de modelos generativos son RBM, autoencoders (en ese caso, qué modelo tiene el error de reconstrucción más bajo). Es probable que también existan algunos modelos generativos bayesianos que asignen una probabilidad a un punto de datos en función de algunos datos de entrenamiento.

Sin embargo, la mejor opción sería tomarse el tiempo para seleccionar un segundo conjunto de datos que contenga solo jamón. Eso le dará una mayor precisión de clasificación. Suponiendo una menor proporción de spam para enviar correos electrónicos, eso no debería ser demasiado difícil. Incluso puede usar Mechanical Turk si le falta tiempo o recursos (o pasantes / estudiantes graduados u otra mano de obra barata).

Simón
fuente
Gracias por tu respuesta. Es un gran ejemplo de lo que pueden hacer los modelos generativos que los modelos discriminatorios no pueden hacer.
nassimhddd