Aprendizaje con mahout en hadoop máquina

Aprendizaje automático se refiere a una rama de técnicas de inteligencia artificial que proporciona herramientas que permiten a los ordenadores para mejorar su análisis basado en eventos anteriores. Estos datos históricos sistemas informáticos de apalancamiento de los intentos anteriores de resolver una tarea con el fin de mejorar el rendimiento de los futuros intentos de tareas similares.

En cuanto a los resultados esperados, aprendizaje automático puede sonar muy parecido a esa otra palabra de moda “minería de datos” - sin embargo, el primero se centra en la predicción a través de análisis de preparado datos de entrenamiento, esta última se ocupa de descubrimiento de conocimiento a partir sin procesar datos en bruto. Por esta razón, la máquina de aprendizaje depende en gran medida de las técnicas de modelización estadística y saca de las áreas de la teoría de la probabilidad y el reconocimiento de patrones.

Mahout es un proyecto de código abierto de Apache, ofreciendo bibliotecas Java para los algoritmos de aprendizaje distribuidos escalables o de otro tipo.

Video: Machine Learning with Mahout

Estos algoritmos cubren las tareas clásicas de aprendizaje de máquina, como la clasificación, agrupación, análisis de reglas de asociación, y recomendaciones. Aunque las bibliotecas Mahout están diseñados para funcionar dentro de un contexto de Apache Hadoop, que también son compatibles con cualquier sistema que soporta el marco MapReduce. Por ejemplo, Mahout proporciona bibliotecas de Java para colecciones de Java y las operaciones comunes de matemáticas (álgebra lineal y estadísticas) que se pueden utilizar sin Hadoop.

Video: Mahout Overview | Mahout Tutorial | Mahout Machine Learning | Edureka

Como se puede ver, las bibliotecas Mahout se implementan en Java MapReduce y se ejecutan en el clúster como colecciones de trabajos de MapReduce a cada hilo (con MapReduce v2 v1), o MapReduce.

Mahout es un proyecto en evolución con múltiples colaboradores. En el momento de escribir estas líneas, la colección de algoritmos disponibles en las bibliotecas Mahout es de ninguna manera COMPLETE- sin embargo, la colección de algoritmos implementados para su uso continúa ampliando con el tiempo.

Hay tres categorías principales de algoritmos Mahout para apoyar el análisis estadístico: el filtrado colaborativo, agrupamiento y clasificación.

Filtración colaborativa

Mahout fue diseñado específicamente para servir como un motor de recomendación, que emplea lo que se conoce como una filtración colaborativa algoritmo. Mahout combina la riqueza de agrupamiento y clasificación de los algoritmos a su disposición para producir recomendaciones más precisas sobre la base de los datos de entrada.

Estas recomendaciones se aplican a menudo en contra de las preferencias del usuario, teniendo en cuenta el comportamiento del usuario. Mediante la comparación de las selecciones anteriores de un usuario, es posible identificar los vecinos más cercanos (personas con antecedentes decisión similar) a ese usuario y predecir futuras selecciones basadas en el comportamiento de los vecinos.

Considere un motor de “perfil de sabor” como Netflix - un motor que recomienda clasificaciones anteriores basados ​​en los hábitos de puntuación y la visualización de ese usuario. En este ejemplo, los patrones de comportamiento de un usuario se comparan con la historia del usuario - y las tendencias de los usuarios con gustos similares que pertenecen a la misma comunidad Netflix - para generar una recomendación de contenido aún no visto por el usuario en cuestión.

Video: Mahout + Hadoop MapReduce + Java + Maven + Eclipse + JUnit

La agrupación

A diferencia del método de aprendizaje supervisado para la función de motor de recomendación de Mahout, la agrupación es una forma de sin supervisión aprendizaje - donde no se conocen de antemano las etiquetas de los puntos de datos y deben ser inferidas a partir de los datos sin intervención humana (la supervisado parte).

En general, los objetos dentro de un grupo deben ser objetos similar- de diferentes grupos deben ser diferentes. Las decisiones tomadas de antemano sobre el número de grupos para generar, los criterios para medir la “similitud”, y la representación de objetos tendrán un impacto en el etiquetado producido por algoritmos de agrupamiento.

Por ejemplo, un motor de agrupamiento que se proporciona una lista de los artículos de noticias debe ser capaz de definir grupos de artículos dentro de esa colección que discutir temas similares.

Supongamos que un conjunto de artículos sobre Canadá, Francia, China, la silvicultura, el aceite y el vino eran a agruparse. Si el número máximo de agrupaciones se establece en 2, su algoritmo puede producir categorías tales como “regiones” y “industrias”. Ajustes para el número de grupos producirá diferente categorizations- por ejemplo, seleccionando para 3 grupos puede resultar en agrupaciones por pares de categorías de la industria nacional.

Clasificaciones

algoritmos de clasificación hacen uso de conjuntos de datos de entrenamiento marcado humanos, donde la categorización y clasificación de todas las entradas futuro se rige por estas etiquetas conocidas. Estos clasificadores poner en práctica lo que se conoce como aprendizaje supervisado en la máquina de aprendizaje mundo.

- reglas de clasificación establecidas por los datos de entrenamiento, que se ha marcado de antemano por los expertos de dominio - A continuación se aplican contra los datos en bruto, sin procesar para determinar mejor su etiquetado apropiado.

Estas técnicas se utilizan a menudo por los servicios de correo electrónico que tratan de clasificar el correo basura antes de que se crucen en tu bandeja de entrada. En concreto, teniendo en cuenta un correo electrónico que contiene un conjunto de frases sabe que se producen habitualmente juntos en una cierta clase de correo basura - entregado desde una dirección que pertenece a una red de bots conocido - el algoritmo de clasificación es capaz de identificar de manera fiable el correo electrónico como malicioso.

Además de la gran cantidad de algoritmos estadísticos que Mahout proporciona de forma nativa, un apoyo Los algoritmos definidos por el usuario (UDA) módulo también está disponible. Los usuarios pueden anular los algoritmos existentes o implementar su propio a través del módulo de UDA. Esta personalización robusta permite la optimización del rendimiento de los algoritmos Mahout nativas y la flexibilidad para hacer frente a desafíos únicos de análisis estadístico.

Si Mahout puede ser visto como una extensión de análisis estadísticos para Hadoop, UDA debe ser visto como una extensión de las capacidades estadísticas de Mahout.

Video: Installing Mahout MapReduce Item-based recommendation example

aplicaciones de análisis estadísticos tradicionales (tales como SAS, SPSS, y R) vienen con potentes herramientas para la generación de flujos de trabajo. Estas aplicaciones utilizan las interfaces gráficas de usuario intuitivas que permiten la visualización de datos mejores. guiones Mahout siguen un patrón similar como estas otras herramientas para la generación de flujos de trabajo de análisis estadístico.

Durante la última etapa de exploración y visualización de datos, los usuarios pueden exportar a formatos legibles (JSON, CSV) o tomar ventaja de las herramientas de visualización tales como Tableau Desktop.

La arquitectura del mahout se sienta encima de la plataforma Hadoop. Hadoop desahoga el programador mediante la separación de la tarea de los trabajos de MapReduce de programación a partir del complejo de contabilidad necesarios para gestionar el paralelismo entre los sistemas de archivos distribuidos. En el mismo espíritu, Mahout proporciona abstracciones programador ambiente de complejos algoritmos estadísticos, listos para su aplicación con el marco de Hadoop.

Artículos Relacionados