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)?
fuente
Respuestas:
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:
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.
fuente
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.
fuente
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).
fuente