Máquina Aprender com Mahout em Hadoop

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, a aprendizagem de máquina pode soar muito parecido com aquele outro chavão # 147-mineração de dados # 148-- no entanto, os antigos focos de previsão através da análise de preparado dados de treino, a última é relacionada com a descoberta de conhecimento não transformados dados não tratados. Por esta razão, a aprendizagem de máquina depende fortemente de técnicas de modelagem estatística e chama de áreas de teoria da probabilidade e reconhecimento de padrões.

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

image0.jpg

Esses algoritmos cobrir tarefas clássicas de aprendizagem 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 que suporta a estrutura 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, o conjunto de algoritmos implementados para uso continua a se expandir com o tempo.

Existem três categorias principais de algoritmos Mahout para apoio à 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, utilizando 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 utilizador, tendo em consideração o comportamento do utilizador. 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 um # 147-gosto perfil # 148- motor 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 para o recurso de mecanismo de recomendação do Mahout, o agrupamento é 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).

Geralmente, os objetos dentro de um cluster devem ser objetos semelhan- de clusters diferentes devem ser diferentes. As decisões tomadas antes do tempo sobre o número de clusters para gerar, aos critérios de medição # 147-similaridade, # 148- ea representação de objetos terá impacto sobre a rotulagem produzido pelo agrupamento algoritmos.

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 aglomerados foram ajustados para 2, o algoritmo pode produzir categorias, tais como Número 147-regiões # 148- e # 147-indústrias. # 148- ajustamentos do número de clusters irá produzir categorizations- diferente, por exemplo, a seleção de 3 clusters pode resultar em grupos de pares de categorias nação da indústria.

Classificações

algoritmos de classificação fazer uso de conjuntos de dados de treinamento marcado com humanos, onde a categorização e classificação de todas as entradas futuro é regida por esses 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 cruzar a sua caixa de entrada. Especificamente, dado um e-mail contendo um conjunto de frases conhecidas como ocorrendo frequentemente juntos em uma certa classe de 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 riqueza de algoritmos estatísticos que Mahout fornece nativamente, um apoio Algoritmos definidas pelo usuário (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álises estatísticas tradicionais (como SAS, SPSS e R) vêm com ferramentas poderosas para gerar fluxos de trabalho. Estas aplicações utilizam interfaces gráficas intuitivas que permitem melhor visualização de dados. scripts de mahout seguem um padrão semelhante como essas outras ferramentas de geração de fluxos de trabalho de análise estatística.

image1.jpg

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 aplicação com o quadro Hadoop.

menu