Índice:
Vídeo: Cómo Instalar Hadoop paso a paso 2024
Aprendizado de máquina refere-se a um ramo de técnicas de inteligência artificial que fornece ferramentas que permitem aos computadores melhorar sua análise com base em eventos anteriores. Estes sistemas informáticos aproveitam os dados históricos das tentativas anteriores de resolver uma tarefa, a fim de melhorar o desempenho das futuras tentativas em tarefas semelhantes.
Em termos de resultados esperados, a aprendizagem por máquina pode soar muito como essa outra palavra-chave "mineração de dados"; no entanto, o primeiro se concentra na previsão através da análise de dados de treinamento preparados , o último está preocupado com a descoberta de conhecimento de não processados dados brutos. Por esta razão, a aprendizagem por máquinas depende muito das técnicas de modelagem estatística e desenha de áreas de teoria de probabilidade e reconhecimento de padrões.
O Mahout é um projeto de código aberto do Apache, oferecendo bibliotecas Java para algoritmos de aprendizagem em máquina distribuídos ou escaláveis.
Estes algoritmos cobrem tarefas clássicas de aprendizagem de máquinas, tais como classificação, agrupamento, análise de regras de associação e recomendações. Embora as bibliotecas Mahout tenham sido projetadas para funcionar dentro de um contexto Apache Hadoop, elas também são compatíveis com qualquer sistema que suporte o framework MapReduce. Por exemplo, o Mahout fornece bibliotecas Java para coleções Java e operações matemáticas comuns (álgebra linear e estatísticas) que podem ser usadas sem Hadoop.
Como você pode ver, as bibliotecas Mahout são implementadas no Java MapReduce e são executadas em seu cluster como coleções de trabalhos MapReduce em YARN (com MapReduce v2) ou MapReduce v1.
Mahout é um projeto em evolução com vários contribuidores. No momento da redação, a coleção de algoritmos disponíveis nas bibliotecas Mahout não é de forma alguma completa; No entanto, a coleção de algoritmos implementados para uso continua a expandir com o tempo.
Existem três categorias principais de algoritmos Mahout para suporte de análise estatística: filtragem colaborativa, agrupamento e classificação.
Filtragem colaborativa
O Mahout foi projetado especificamente para servir como mecanismo de recomendação, empregando o que é conhecido como um algoritmo de filtragem colaborativa . A Mahout combina a riqueza de algoritmos de agrupamento e classificação à sua disposição para produzir recomendações mais precisas com base em dados de entrada.
Essas recomendações são freqüentemente aplicadas contra as preferências do usuário, levando em consideração o comportamento do usuário. Ao comparar as seleções anteriores de um usuário, é possível identificar os vizinhos mais próximos (pessoas com um histórico de decisões similar) para esse usuário e prever futuras seleções com base no comportamento dos vizinhos.
Considere um motor de "perfil de gosto", como o Netflix - um mecanismo que recomenda classificações baseadas nos hábitos de pontuação e visualização anteriores desse usuário. Neste exemplo, os padrões comportamentais para um usuário são comparados com o histórico do usuário - e as tendências de usuários com gostos semelhantes pertencentes à mesma comunidade Netflix - para gerar uma recomendação para conteúdo ainda não visto pelo usuário em questão.
Clustering
Ao contrário do método de aprendizagem supervisionado para o recurso de mecanismo de recomendação de Mahout, o clustering é uma forma de sem supervisão aprendizagem - onde os rótulos para pontos de dados são desconhecidos antes do tempo e devem ser inferidos a partir dos dados sem entrada humana (a parte supervisionada ).
Geralmente, os objetos dentro de um cluster devem ser semelhantes; objetos de diferentes clusters devem ser diferentes. As decisões tomadas antes do tempo sobre o número de clusters a gerar, os critérios para medir a "semelhança" e a representação de objetos afetarão a rotulagem produzida pelos algoritmos de agrupamento.
Por exemplo, um mecanismo de cluster que fornece uma lista de artigos de notícias deve ser capaz de definir clusters de artigos dentro dessa coleção que discutem tópicos similares.
Suponha que um conjunto de artigos sobre o Canadá, a França, a China, a silvicultura, o petróleo e o vinho fossem agrupados. Se o número máximo de clusters foi definido como 2, seu algoritmo pode produzir categorias como "regiões" e "indústrias". "Ajustes ao número de clusters produzirão categorizações diferentes; por exemplo, selecionar 3 clusters pode resultar em agrupamentos em pares de categorias de indústrias nacionais.
Classificações
Os algoritmos de classificação utilizam conjuntos de dados de treinamento com marcação humana, onde a categorização e classificação de todas as entradas futuras são regidas por esses rótulos conhecidos. Esses classificadores implementam o que é conhecido como aprendizagem supervisionada no mundo da aprendizagem de máquinas.
As regras de classificação - definidas pelos dados de treinamento, que foram rotulados antecipadamente por especialistas em domínio - são então aplicadas contra dados em bruto e não processados para determinar melhor a rotulagem apropriada.
Estas técnicas são freqüentemente usadas por serviços de e-mail que tentam classificar o e-mail de spam antes de cruzarem a caixa de entrada. Especificamente, dado um e-mail contendo um conjunto de frases conhecidas por comumente ocorrem juntas em uma determinada classe de spam-mail - entregues a partir de um endereço pertencente a um botnet conhecido - 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 o Mahout fornece de forma nativa, um módulo User Defined Algorithms (UDA) de apoio também está disponível. Os usuários podem substituir os algoritmos existentes ou implementar os seus próprios através do módulo UDA. Essa personalização robusta permite o ajuste de desempenho de algoritmos Mahout nativos e flexibilidade para enfrentar desafios de análise estatística únicos.
Se o Mahout pode ser visto como uma extensão de análise estatística para o Hadoop, o UDA deve ser visto como uma extensão das capacidades estatísticas de Mahout.
Aplicativos de análise estatística tradicional (como SAS, SPSS e R) vêm com ferramentas poderosas para gerar fluxos de trabalho. Esses aplicativos utilizam interfaces de usuário gráficas intuitivas que permitem uma melhor visualização de dados. Os scripts Mahout seguem um padrão similar às outras ferramentas para gerar fluxos de trabalho de análise estatística.
Durante o passo final de exploração e visualização de dados, os usuários podem exportar para formatos legíveis para humanos (JSON, CSV) ou tirar proveito de ferramentas de visualização, como o Tableau Desktop.
A arquitetura de Mahout fica no topo da plataforma Hadoop. Hadoop desembolsa o programador separando a tarefa de programar trabalhos MapReduce da contabilidade complexa necessária para gerenciar paralelismo em sistemas de arquivos distribuídos. No mesmo espírito, o Mahout oferece abstrações programáveis de complexos algoritmos estatísticos, prontos para implementação com o framework Hadoop.