¿Cuáles son los mejores métodos para recopilar datos de entrenamiento para el algoritmo Naive Bayes?

Esto depende mucho del dominio. Usaré el dominio de identificación de spam como un ejemplo en ejecución, pero los detalles son diferentes según el dominio y el objetivo. Primero, comience con los objetos que desea clasificar, en nuestro caso, mensajes de correo electrónico. Naive Bayes es un método de aprendizaje supervisado, por lo que necesita un conjunto de capacitación etiquetado, es decir, un conjunto de mensajes de spam y un conjunto de mensajes de jamón.
En segundo lugar, necesita una representación de los objetos como características, por ejemplo, un vector de las palabras (tokens) utilizadas en cada mensaje. Para esto, debe tokenizar los mensajes adecuadamente.
Una lista de vectores de características para los mensajes no deseados y no deseados, junto con sus etiquetas, le brinda datos de capacitación.
¿Cómo se obtienen las etiquetas? Idealmente de un corpus preexistente de objetos de dominio. Alternativamente, debe pagar el etiquetado, ya sea contratando etiquetadoras (por ejemplo, a través de Amazon Mechanical Turk), utilizando su equipo para etiquetar o utilizando un juego para etiquetar (un juego ESP).
¿Cuántos datos de entrenamiento son suficientes? Nuevamente, esto depende del dominio. Intentaría obtener 100 instancias por etiqueta posible, y luego probar, expandir el conjunto y reiterar.

Aquí hay algunas ideas:

1. Hice esta pregunta hace unos meses:

¿Cuáles son algunos buenos conjuntos de datos basados ​​en correo electrónico para probar algoritmos de clasificación de spam?

Puede intentar trabajar con conjuntos de datos de código abierto. Esto puede o no ser útil, dependiendo de lo que intente lograr.

2. Descargue sus correos electrónicos de la cuenta de Gmail y capacite a un modelo con estos datos. Lo bueno de este enfoque es que su gmail probablemente tenga una combinación de etiquetas manuales (cada vez que haga clic en SPAM) y etiquetas automáticas (filtros de spam de Google). Esta combinación probablemente reduce la cantidad de ruido en la verdad del suelo y conducirá a un aumento en el rendimiento de su modelo (con suerte). Aquí hay un código fuente abierto para descargar correos electrónicos de una cuenta de Gmail. También hay una implementación de Naive Bayes:

https://github.com/drewconway/st

Al construir y probar nuestro clasificador Naive Bayes, hemos utilizado una plataforma de monitoreo de medios sociales escuchable, producida por una empresa asociada para recopilar datos. Luego, hemos utilizado la aplicación de opinión dentro de escuchable para clasificar a mano una sección de las publicaciones (por ejemplo, publicaciones de un día). Estos se descargan y se introducen en el clasificador como conjunto de entrenamiento.
No sé qué está utilizando para construir su clasificador, pero el libro Python nltk ( http://www.nltk.org/book ) utiliza un método similar para eliminar una parte del conjunto de datos completo para el conjunto de entrenamiento.

More Interesting

¿La IA y el aprendizaje automático implican mucha codificación?

¿Cuáles son algunos buenos tutoriales y códigos de aprendizaje profundo disponibles para problemas de clasificación binaria? ¿Es necesario tener una GPU para ejecutar el aprendizaje profundo y, de no ser así, de qué manera podemos llevarlo a cabo?

¿Cómo determina Quora a quién poner en mi sección "mejorar su alimentación"?

¿Cuáles son las aplicaciones HOT de Machine Learning para las ciencias biológicas?

Cómo construir un generador de lenguaje natural

¿Qué es la agrupación de datos?

¿Hay alguna prueba de que no hay una solución algebraica para ajustar las redes neuronales con una (o más) capa (s) oculta (s)?

¿Cómo implementaría el servicio de noticias de Quora?

¿Cuál es una explicación intuitiva del algoritmo wake-sleep?

¿Qué métodos de conjunto / aprendizaje automático pueden incorporar covariables que varían con el tiempo?

¿Cuál es una buena fuente o explicación sobre la tasa de error de fonema (PER) y la tasa de error independiente de la posición, o la tasa de error de letras?

¿Cuál es la diferencia entre el análisis factorial exploratorio (EFA) y el análisis factorial confirmatorio (CFA)?

¿Qué te sorprendió después de ver algo relacionado con el aprendizaje automático, la IA, la PNL o la visión por computadora?

¿Cuál es la mejor y más fácil forma de aprender el aprendizaje automático?

¿Dónde puedo encontrar un conjunto de datos de texto traducido de cualquier idioma a otro válido para ser entrenado en un modelo de traducción automática en aprendizaje automático?