Aprendizagem de máquina com mahout em hadoop

Video: Big Data Meetup Paso 02 : Mahout y Machine Learning

aprendizado de máquina refere-se a um ramo de técnicas de inteligência artificial que fornece ferramentas que permitem computadores para melhorar a sua análise com base em eventos anteriores. Estes dados históricos sistemas de computador de alavancagem de tentativas anteriores de resolver uma tarefa, a fim de melhorar o desempenho de futuras tentativas de tarefas semelhantes.

Em termos de resultados esperados, aprendizado de máquina pode soar muito parecido com aquele outro chavão “mineração de dados” - no entanto, os antigos focos de predição através da análise de preparado dados de treinamento, este último está preocupado com a descoberta de conhecimento a partir de não processado dados não tratados. Por esta razão, a aprendizagem de máquina depende fortemente de técnicas de modelagem estatística e desenha a partir de áreas de teoria da probabilidade e reconhecimento de padrões.

Mahout é um projeto open source da Apache, oferecendo bibliotecas Java para algoritmos de aprendizado de máquina escalável distribuídos ou de outra forma.

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

Esses algoritmos cobrir tarefas clássicas de aprendizado de máquina, tais como classificação, clustering, análise de regras de associação e recomendações. Embora as bibliotecas Mahout são projetados para trabalhar dentro de um contexto Apache Hadoop, eles também são compatíveis com qualquer sistema de apoio no quadro MapReduce. Por exemplo, Mahout fornece bibliotecas Java para coleções Java e operações matemáticas comuns (álgebra linear e estatísticas) que podem ser usados ​​sem Hadoop.

Como você pode ver, as bibliotecas Mahout são implementados em Java MapReduce e executado em seu cluster como coleções de trabalhos de MapReduce em ambos os fios (com MapReduce v2), ou MapReduce v1.

Mahout é um projeto em evolução com vários contribuintes. Até o momento da redação deste artigo, a coleção de algoritmos disponíveis nas bibliotecas Mahout não é de forma completa- no entanto, a coleção de algoritmos implementados para uso continua a se expandir com o tempo.

Existem três categorias principais de algoritmos Mahout para apoiar análise estatística: colaborativa de filtragem, agrupamento e classificação.

Filtragem colaborativa

Mahout foi especificamente concebido para servir como um mecanismo de recomendação, empregando o que é conhecido como um filtragem colaborativa algoritmo. Mahout combina a riqueza de agrupamento e classificação algoritmos à sua disposição para produzir recomendações mais precisas com base em dados de entrada.

Estas recomendações são muitas vezes aplicadas contra as preferências do usuário, levando em consideração o comportamento do usuário. Ao comparar seleções anteriores do usuário, é possível identificar os vizinhos mais próximos (pessoas com uma história decisão semelhante) para que o usuário e prever seleções futuros em função do comportamento dos vizinhos.

Considere-se um motor de “perfil de sabor”, tais como Netflix - um motor que recomenda classificações com base na pontuação e visualização hábitos anteriores do usuário. Neste exemplo, os padrões de comportamento de um usuário são comparados contra a história do usuário - e as tendências dos usuários com gostos semelhantes pertencentes a uma mesma comunidade Netflix - para gerar uma recomendação de conteúdo ainda não visto pelo usuário em questão.

Clustering

Ao contrário do método de aprendizagem supervisionada por recurso mecanismo de recomendação do Mahout, clustering é uma forma de sem supervisão learning - onde os rótulos de pontos de dados são desconhecidos antes do tempo e deve ser inferida a partir dos dados sem intervenção humana (o supervisionada parte).



De um modo geral, os objectos dentro de um aglomerado deve ser objectos similar- de clusters diferentes deve ser diferente. As decisões tomadas antes do tempo sobre o número de agrupamentos para gerar, os critérios para medir o “similaridade”, e a representação dos objectos terão impacto na rotulagem produzido por algoritmos de agrupamento.

Por exemplo, um motor de agrupamento que é fornecida uma lista de artigos de notícias deve ser capaz de definir grupos de artigos dentro dessa coleção, que discutem temas semelhantes.

Suponha que um conjunto de artigos sobre Canadá, França, China, silvicultura, petróleo e vinho eram para ser agrupado. Se o número máximo de clusters foram definidos a 2, o algoritmo pode produzir categorias como “regiões” e “indústrias.” Ajustes para o número de clusters irá produzir categorizations- diferente, por exemplo, a seleção para 3 clusters pode resultar em agrupamentos de pares de categorias nação da indústria.

Classificações

algoritmos de classificação fazer uso de conjuntos de dados de treinamento marcados com humanos, onde a categorização e classificação de todas as entradas futuro é regido por estes rótulos conhecidos. Esses classificadores implementar o que é conhecido como aprendizagem supervisionada na aprendizagem de máquina mundo.

regras de classificação - definidos pelos dados de treinamento, que tem sido rotulados antes do tempo por especialistas de domínio - são então aplicadas contra dados brutos, não transformados para melhor determinar a sua rotulagem adequada.

Estas técnicas são muitas vezes utilizados pelos serviços de correio electrónico que tentam classificar spam de e-mail antes mesmo de atravessar a sua caixa de entrada. Especificamente, dado um e-mail contendo um conjunto de frases conhecidas para ocorrer comumente juntos em uma certa classe de correio spam - entregue a partir de um endereço pertencente a uma botnet conhecida - o seu algoritmo de classificação é capaz de identificar com segurança o e-mail como malicioso.

Além da grande variedade de algoritmos estatísticos que Mahout fornece nativamente, uma apoiando Algoritmos User Defined (UDA) módulo também está disponível. Os usuários podem substituir algoritmos existentes ou implementar seu próprio através do módulo UDA. Essa personalização robusta permite o ajuste de desempenho de algoritmos Mahout nativas e flexibilidade para enfrentar os desafios de análise estatística únicas.

Se Mahout pode ser visto como uma extensão de análise estatística para Hadoop, UDA deve ser visto como uma extensão para recursos estatísticos do Mahout.

aplicações de análise estatística tradicionais (tais como SAS, SPSS, e R) vêm com ferramentas poderosas para a geração de fluxos de trabalho. Estas aplicações utilizam interfaces gráficas intuitivas que permitem a visualização de dados melhores. scripts de mahout seguem um padrão semelhante como estas outras ferramentas para a geração de fluxos de trabalho de análise estatística.

Durante a etapa final de exploração de dados e visualização, os usuários podem exportar para formatos legível (JSON, CSV) ou tirar proveito de ferramentas de visualização, como Tableau Desktop.

A arquitetura de mahout senta-se sobre a plataforma Hadoop. Hadoop desabafa o programador, separando a tarefa de trabalhos de programação MapReduce da contabilidade complexa necessária para gerir o paralelismo entre os sistemas de arquivos distribuídos. No mesmo espírito, Mahout fornece abstrações programador-amigável de algoritmos estatísticos complexos, prontos para a implementação com a estrutura Hadoop.


Publicações relacionadas