BT

Disseminando conhecimento e inovação em desenvolvimento de software corporativo.

Contribuir

Tópicos

Escolha a região

Início Notícias Apache Mahout: Algoritmos de aprendizagem de máquina altamente escaláveis.

Apache Mahout: Algoritmos de aprendizagem de máquina altamente escaláveis.

O projeto Apache Mahout, um conjunto de bibliotecas para aprendizado de màquinas altamente escaláveis, recentemente anunciou seu primeiro lançamento público. InfoQ conversou com Grant Ingersoll, cofundador do Mahout e membro do grupo técnico da Lucid Imagination, para saber mais sobre este projeto bem como sobre aprendizado de máquinas em geral.

Quando convidade a descrever o projeto Mahout com mais detalhes, Ingersoll disse:

Mahout é uma biblioteca que tem como objetivo oferecer ferramentas para aprendizado de máquina escaláveis sob a licença Apache. Nosso objetivo é construir uma saudável e ativa comunidade de usuários e colaboradores em torno de algoritmos de aprendizado de máquina práticos e escaláveis prontos para utilização em produção para, mas não limitados a, clustering, classificação e filtragem colaborativa. Nós usamos o Hadoop para garantir a escalabilidade para várias implementações, mas não dependemos só dele. Muitos algoritmos de aprendizado de máquina simplesmente não se adequam ao modelo de Map Reduce, desta maneira utilizaremos outros meios quando apropriado.

Pessoalmente falando, espero que o Mahout faça pelo aprendizado de máquina o que o Apache Lucene e o Solr fizeram pela busca. Isto é, tornar simples para qualquer um construir em um ambiente de produção, uma aplicação inteligente que varia para se encaixar nas suas necessidades assim como Lucene e o Solr tornaram possível para qualquer um construir uma aplicação de busca escalável. Nós temos condições de considerá-lo como caminho, e o lançamento 0.1 é um bom primeiro passo.

Descrevendo o que era aprendizado de máquina, Ingersoll citou Introduction To Machine Learning de Ethem Alpaydin, ""Aprendizado de máquina é programação de computadores para melhorar o critério de desempenho usando dados ou experiência passada"".

Principais características que estão incluídas no lançamento inicial do Mahout são:

Uma abrangente lista de recursos também está disponível.

Quando convidado a descrever aplicações de exemplo para alguns destes algoritmos, Ingersoll indicou que o Taste Filtering oferece recomendações de itens que o usuário gostaria baseado em suas preferências, como recomendações de filmes. Clustering é usado para reunir dados arbitrários em categorias de itens similares, sendo o agrupamento de novas estórias afins um exemplo. Classifição é outro, com o mais comum exemplo do decidir se a correspondência eletrônica é útil ou não. O uso do Mahout na nuvem da Amazon Elastic MapReduce Amazon Elastic MapReduce também aflorou, com Ingersoll mencionando que o trabalho para colocar o Mahout funcionando na nuvem está em progresso e que ele serve naturalmente à nuvem:

Muitos dos grandes jogadores em busca e redes sociais já estão usando Map Reduce (e outras abordagens distribuídas) e aprendizado de máquina para conduzir suas aplicações. Mahout, à longo prazo, deve tornar possível construir estas aplicações de maneira mais fácil e barata reduzindo os custos de início de projeto e taxas de licenciamento associadas à obtenção da tecnologia de aprendizado de máquina. Além disso, por trabalhar para construir uma comunidade de usuários onde qualquer um é bem vindo para contribuir, nós achamos que estaremos por perto por um longo tempo.

Quando perguntado sobre planos futuros para o Mahout, Ingersoll disse:

Primeiro e mais importante é tornar o Mahout conhecido para que as pessoas possam utilizá-lo e nos enviar retorno para melhorá-lo. Sendo ele código livre, algumas vezes é difícil saber exatamente o que está para acontecer dadas as muitas boas ideias aparentemente fora de contexto; entretanto, eu posso lhe dizer minha lista de desejos pessoais:
  1. Mais aplicativos de demonstração e documentação, especialmente informações de como executá-lo em EC2.
  2. Mais algoritmos. Particularmente gostaria de ver implementações de regressão linear e de redes neurais, entre outras, porque são familiares à muitas pessoas.
  3. Consolidar a API para que possamos trabalhar no sentido de uma versão 1.0 onde as pessoas possam realizar o upgrade para novos lançamentos sem a alterar seu código.
  4. Obter uma variadade de métricas de software para que as pessoas possam escolher a que utilizar em suas implementações.

Avalie esse artigo

Relevância
Estilo/Redação

Conteúdo educacional

BT