Tabla de contenido:
Video: Cómo Instalar Hadoop paso a paso 2025
Aprendizaje automático se refiere a una rama de las técnicas de inteligencia artificial que proporciona herramientas que permiten a las computadoras mejorar su análisis en base a eventos previos. Estos sistemas informáticos aprovechan los datos históricos de intentos anteriores para resolver una tarea con el fin de mejorar el rendimiento de intentos futuros en tareas similares.
En términos de resultados esperados, el aprendizaje automático puede parecerse mucho a la palabra de moda "extracción de datos"; sin embargo, el primero se enfoca en la predicción a través del análisis de datos de entrenamiento preparados , el último se refiere al descubrimiento de conocimiento a partir de datos brutos sin procesar . Por esta razón, el aprendizaje automático depende en gran medida de las técnicas de modelado estadístico y se basa en áreas de teoría de probabilidad y reconocimiento de patrones.
Mahout es un proyecto de fuente abierta de Apache, que ofrece bibliotecas Java para algoritmos de aprendizaje automático distribuidos o escalables.
Estos algoritmos cubren tareas clásicas de aprendizaje automático, como clasificación, clustering, análisis de reglas de asociación y recomendaciones. Aunque las bibliotecas de Mahout están diseñadas para funcionar dentro de un contexto de Apache Hadoop, también son compatibles con cualquier sistema que soporte el marco MapReduce. Por ejemplo, Mahout proporciona bibliotecas Java para colecciones Java y operaciones matemáticas comunes (álgebra lineal y estadísticas) que se pueden usar sin Hadoop.
Como puede ver, las bibliotecas de Mahout están implementadas en Java MapReduce y se ejecutan en su clúster como colecciones de trabajos de MapReduce en YARN (con MapReduce v2) o MapReduce v1.
Mahout es un proyecto en evolución con múltiples colaboradores. En el momento de escribir esto, la colección de algoritmos disponibles en las bibliotecas de Mahout de ninguna manera está completa; sin embargo, la colección de algoritmos implementados para su uso continúa expandiéndose con el tiempo.
Hay tres categorías principales de algoritmos Mahout para soportar el análisis estadístico: filtrado colaborativo, clustering y clasificación.
Filtrado colaborativo
Mahout fue diseñado específicamente para servir como un motor de recomendación, empleando lo que se conoce como algoritmo de filtrado colaborativo . Mahout combina la riqueza de los algoritmos de agrupación y clasificación a su disposición para producir recomendaciones más precisas basadas en datos de entrada.
Estas recomendaciones a menudo se aplican en contra de las preferencias del usuario, teniendo en cuenta el comportamiento del usuario. Al comparar las selecciones anteriores de un usuario, es posible identificar a los vecinos más cercanos (personas con un historial de decisiones similar) a ese usuario y predecir selecciones futuras en función del comportamiento de los vecinos.
Considere un motor de "perfil de sabor" como Netflix, un motor que recomienda clasificaciones basadas en los hábitos de visualización y anotación anteriores de ese usuario. En este ejemplo, los patrones de comportamiento para un usuario se comparan con el historial del usuario y las tendencias de los usuarios con gustos similares que pertenecen a la misma comunidad de Netflix, para generar una recomendación de contenido que aún no ha visto el usuario en cuestión.
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 aprendizaje no supervisado, donde las etiquetas de los datos se desconocen con antelación y deben inferirse de los datos sin intervención humana (la parte supervisada ).
Generalmente, los objetos dentro de un grupo deben ser similares; los objetos de diferentes conglomerados deben ser diferentes. Las decisiones que se toman con anticipación sobre la cantidad de clusters que se generarán, los criterios para medir la "similitud" y la representación de los objetos afectarán el etiquetado producido por los algoritmos de agrupamiento.
Por ejemplo, un motor de clúster que se proporciona con una lista de artículos de noticias debería poder definir grupos de artículos dentro de esa colección que discutan temas similares.
Supongamos que se agrupen un conjunto de artículos sobre Canadá, Francia, China, silvicultura, petróleo y vino. Si la cantidad máxima de clústeres se estableció en 2, su algoritmo podría generar categorías como "regiones" e "industrias". "Los ajustes en la cantidad de clústeres producirán diferentes categorizaciones; por ejemplo, la selección de 3 clusters puede dar lugar a agrupaciones por parejas de categorías de la industria nacional.
Clasificaciones
Los algoritmos de clasificación utilizan conjuntos de datos de entrenamiento etiquetados como seres humanos, donde la categorización y clasificación de todas las entradas futuras se rige por estas etiquetas conocidas. Estos clasificadores implementan lo que se conoce como aprendizaje supervisado en el mundo del aprendizaje automático.
Las reglas de clasificación, establecidas por los datos de capacitación, que han sido etiquetadas por expertos de dominio con anticipación, se aplican luego contra datos sin procesar y sin procesar para determinar mejor su etiquetado apropiado.
Estas técnicas suelen ser utilizadas por los servicios de correo electrónico que intentan clasificar el correo electrónico no deseado antes de que crucen su bandeja de entrada. Específicamente, dado un correo electrónico que contiene un conjunto de frases conocidas que comúnmente ocurren juntas en una determinada clase de correo no deseado, entregado desde una dirección que pertenece a una botnet conocida, su algoritmo de clasificación puede identificar confiablemente el correo electrónico como malicioso.
Además de la gran cantidad de algoritmos estadísticos que Mahout proporciona de forma nativa, también está disponible un módulo Algoritmos definidos por el usuario (UDA). Los usuarios pueden anular algoritmos existentes o implementar los suyos a través del módulo UDA. Esta sólida personalización permite el ajuste del rendimiento de los algoritmos nativos de Mahout y la flexibilidad para abordar desafíos únicos de análisis estadístico.
Si Mahout puede verse como una extensión de análisis estadístico para Hadoop, UDA debería verse como una extensión de las capacidades estadísticas de Mahout.
Las aplicaciones tradicionales de análisis estadístico (como SAS, SPSS y R) incluyen potentes herramientas para generar flujos de trabajo. Estas aplicaciones utilizan interfaces de usuario gráficas intuitivas que permiten una mejor visualización de datos. Los scripts de Mahout siguen un patrón similar al de estas otras herramientas para generar flujos de trabajo de análisis estadísticos.
Durante el paso final de exploración y visualización de datos, los usuarios pueden exportar a formatos legibles por humanos (JSON, CSV) o aprovechar las herramientas de visualización como Tableau Desktop.
La arquitectura de Mahout se encuentra sobre la plataforma Hadoop. Hadoop libera al programador al separar la tarea de programar trabajos de MapReduce de la contabilidad compleja necesaria para administrar el paralelismo en los sistemas de archivos distribuidos. Con el mismo espíritu, Mahout ofrece abstracciones amigables con programadores de complejos algoritmos estadísticos, listos para su implementación con el marco Hadoop.