Apache mahout
Upcoming SlideShare
Loading in...5
×
 

Apache mahout

on

  • 893 views

Apresentação feita para o LINC(Laboratório de Inteligência Computacional) sobre o Apache Mahout

Apresentação feita para o LINC(Laboratório de Inteligência Computacional) sobre o Apache Mahout
http://jgabriellima.in

Statistics

Views

Total Views
893
Slideshare-icon Views on SlideShare
893
Embed Views
0

Actions

Likes
0
Downloads
6
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Apache mahout Apache mahout Presentation Transcript

    • Apache MahoutBiblioteca Open-Source para Aprendizagem de Máquina com ALTA ESCALABILIDADE J. Gabriel Lima jgabriel.ufpa@gmail.com LINC - Laboratório de Inteligência Artificial
    • • Outrora domínio exclusivo de acadêmicos e corporações com grandes orçamentos de pesquisa, as aplicações inteligentes que aprendem a partir de dados e contribuição de usuário estão se tornando mais comuns.
    • • A necessidade por técnicas de aprendizagem de máquina, como armazenamento em cluster, filtragem colaborativa, e categorização nunca foi maior, seja para localizar aspectos em comum entre grandes grupos de pessoas ou rotular automaticamente grandes volumes de conteúdo de Web.
    • • A aprendizagem por máquina é um subcampo da inteligência artificial referente a técnicas que permitem os computadores melhorarem seus resultados com base em experiências anteriores. • O campo é estritamente relacionado à mineração de dados e geralmente utiliza técnicas de estatística, teoria da probabilidade, reconhecimento de padrões, e uma série de outras áreas.
    • O projeto Apache Mahout visa facilitar e acelerar a construção de aplicações inteligentes.
    • CENÁRIO:• Processar centenas ou milhares de mensagens de e-mail pessoais por dia ou vasculhar a intenção de usuários a partir de petabytes de weblogs...
    • Embora a aprendizagem por máquina não seja um campo recente, encontra-se definitivamente em crescimento
    • A cada dia muito mais empresas se beneficiam do aproveitamento da aprendizagem por máquina em suasaplicações para aprender com usuários e situações passadas.
    • • Os usos da aprendizagem por máquina abrangem desde jogos passando pela detecção de fraudes até a análise da bolsa de valores• Exemplos: • Netflix • Amazon • Recomendam produtos aos usuários com base em compras passadas. • Sistemas que encontram todos os artigos de notícias similares em um determinado dia. • Categorizar páginas de Web automaticamente conforme o gênero (esportes, economia, guerra). • Marcar mensagens de e-mail como spam.
    • • O projeto foi iniciado por várias pessoas envolvidas na comunidade Apache Lucene (busca de fonte aberta) com um interesse ativo em aprendizagem por máquina e um anseio por implementações robustas, bem-documentadas e escaláveis de algoritmos de aprendizagem por máquina para armazenamento em cluster e categorização.
    • • O Mahout também visa: • Construir e suportar uma comunidade de usuários e contribuidores, de modo que o código dure mais do que qualquer envolvimento de contribuidor particular ou qualquer empresa privada ou fundo universitário.• Concentra-se em casos de uso prático do mundo real em oposição a pesquisas de vanguarda ou técnicas não comprovadas.• Fornece documentação de qualidade e exemplos.
    • Algoritmo Breve descrição Caso de usoRegressão logística, solucionada pelo Classificador sequencial simples e Recomendação de anúncios a usuários,Stochastic Gradient Descent (SGD) extremamente rápido com capacidade de classificação de texto em categorias aprendizado on-line em ambientes exigentesHidden Markov Models (HMM) Implementações sequenciais e paralelas do Identificação de texto de parte do discurso; clássico algoritmo de classificação para reconhecimento de discurso modelar processos do mundo real quando o processo de geração subjacente é desconhecidoSingular Value Decomposition (SVD) Projetada para reduzir o ruído em grandes Como um precursor ao armazenamento em matrizes, tornando-as menores e mais cluster, recomendadores e classificação fáceis de trabalhar para realizar a seleção de recurso automaticamenteArmazenamento em cluster Dirichlet Abordagem com base em modelo ao Útil quando os dados têm sobreposição ou armazenamento em cluster que determina a hierarquia associação de acordo com se os dados se ajustam ao modelo subjacenteArmazenamento em cluster espectral Família de abordagens similares que usam Como todos os algoritmos de uma abordagem com base em gráfico para armazenamento em cluster, útil para determinar a associação do cluster explorar conjuntos de dados grandes e não vistosArmazenamento em cluster Minhash Usa uma estratégia de hashing para Igual a outras abordagens de agrupar itens similares, produzindo, assim, armazenamento em cluster os clustersDiversas melhorias de recomendador Coocorrências distribuídas, SVD, mínimos Sites de namoro, e-commerce, quadrados alternados recomendações de filmes ou livrosDisposições Implementação de disposições ativadas Localização de frases estatisticamente para redução de mapa interessantes em texto
    • • Para o Mahout, essa evolução levou a diversas melhorias. A mais importante é uma interface de linha de comando muito aprimorada e consistente, que torna mais fácil enviar e executar tarefas localmente e no Apache Hadoop.
    • • Não apenas implementar algoritmos de aprendizagem de máquina...• ESCALABILIDADE!!!!Mahout?... PQ?!
    • • Com a necessidade de aplicações mais escaláveis nos dias atuais, talvez você precise “desnormalisar” o seu banco de dados: • O que adiantaria uma foreign key se você tem tabelas espalhadas em diversos data centers? Por questões de performance, dados podem ser distribuídos em data centers distintos, então como buscar pelo id se você não sabe onde está esse dado? Por isso é importantíssimo que a aplicação controle essa integridade, para não depender de constraints e stored procedures do banco de dados. Apache Handoop• Implementações de MapReduce • Um modelo de programação, e framework introduzido pelo Google para suportar computações paralelas em grandes coleções de dados em clusters de computadores.
    • • Aplicações que usam o HadoopCom essa grande capacidade de processamento e armazenamentode dados o Hadoop tem uma ampla aplicação no ramo detecnologia de informação, por exemplo, na busca (Google),processamento de log, Business Intelligence, Data Warehousing,análise de video e imagens e outros.
    • • Conforme mais pessoas usam um projeto de software livre e trabalham para fazer o código do projeto funcionar com o seu código, mais a infraestrutura é preenchida.• Para o Mahout, essa evolução levou a diversas melhorias.
    • Considerações Finais e Trabalhos futuros