source open machine learning for book java c++ machine-learning mapreduce text-mining

java - open - Aprendizaje automático a gran escala



statistics book for machine learning (8)

Necesito ejecutar varias técnicas de aprendizaje automático en un gran conjunto de datos (10-100 mil millones de registros). Los problemas están principalmente relacionados con la minería de texto / extracción de información e incluyen varias técnicas de kernel pero no están restringidas a ellos (utilizamos algunos métodos bayesianos, bootstrapping, gradiente impulsar, árboles de regresión - muchos problemas diferentes y formas de resolverlos)

¿Cuál sería la mejor implementación? Tengo experiencia en ML pero no tengo mucha experiencia en cómo hacerlo para grandes conjuntos de datos. ¿Hay bibliotecas de Machine Learning extensibles y personalizables que utilicen la infraestructura MapReduce? Preferencia fuerte por c ++, pero Java y python están bien Amazon Azure o su propio centro de datos (podemos pagarlo)?


A menos que el espacio de estado de clasificación que está tratando de aprender sea extremadamente grande, esperaría que haya una redundancia significativa en un conjunto de datos centrado en la minería de textos con 10-100 mil millones de registros o muestras de capacitación. Como una aproximada suposición, dudo que uno necesite mucho más que un subconjunto de muestra aleatoria de 1-2% para aprender clasificadores confiables que se mantengan bien bajo las pruebas de validación cruzada.

Una rápida búsqueda de literatura surgió con los siguientes documentos relevantes. El documento de Tsang dice O (n) complejidad de tiempo para n muestras de entrenamiento, y hay software relacionado con él disponible como kit de herramientas de LibCVM . El documento de Wolfe describe un enfoque de EM distribuido basado en MapReduce.

Por último, hubo un taller de aprendizaje automático a gran escala en la conferencia NIPS 2009 que parece haber tenido muchas presentaciones interesantes y relevantes.

Referencias

Ivor W. Tsang, James T. Kwok, Pak-Ming Cheung (2005). " Core Vector Machines: formación SVM rápida en conjuntos de datos muy grandes ", Journal of Machine Learning Research, vol 6, pp 363-392.

J Wolfe, A Haghighi, D Klein (2008). " EM totalmente distribuido para conjuntos de datos muy grandes ", Actas de la 25ª Conferencia Internacional sobre Aprendizaje automático, pp 1184-1191.

Olivier Camp, Joaquim BL Filipe, Slimane Hammoudi y Mario Piattini (2005). " Minería de conjuntos de datos muy grandes con algoritmos de máquinas de vectores de soporte ", Enterprise Information Systems V, Springer Netherlands, pp 177-184.



Eche un vistazo a http://hunch.net/?p=1068 para obtener información sobre Vowpal Wabbit; es una biblioteca de descenso gradiente estocástica para aplicaciones a gran escala.


No conozco ninguna biblioteca de ML que pueda admitir de 10 a 100 mil millones de registros, eso es un poco extremo, así que no esperaría encontrar nada fuera de la plataforma. Lo que recomendaría es que eche un vistazo a los ganadores del premio NetFlix: http://www.netflixprize.com//community/viewtopic.php?id=1537

El premio NetFlix tenía más de 100 millones de entradas, por lo que aunque no es tan grande como su conjunto de datos, es posible que todavía encuentre que sus soluciones sean aplicables. Lo que el equipo de BelKor hizo fue combinar múltiples algoritmos (algo similar al aprendizaje conjunto) y ponderar la "predicción" o salida de cada algoritmo.


No estoy al tanto de ninguna biblioteca ML que use map / reduce. ¿Tal vez tenga la capacidad de usar una biblioteca ML y una biblioteca Map / Reduce? Es posible que desee consultar el Mapa / Reducir de Hadoop: http://hadoop.apache.org/mapreduce/

tendrías que implementar los métodos de reducción y mapa. El hecho de que uses tantas técnicas podría complicar esto.

puede ejecutarlo en su propio clúster o si está investigando, tal vez podría consultar BOINC ( http://boinc.berkeley.edu/ ).

Por otro lado, tal vez puedas reducir tu conjunto de datos. No tengo idea de lo que estás entrenando, pero debe haber alguna redundancia en 10 mil millones de registros ...



Un amigo mío ha trabajado en un proyecto similar. Usó perl para minería de textos y matlab para técnicas como métodos bayesianos, análisis semántico latente y mezcla gaussiana ...