Weka

4:40 pm Data Mining

Depois dos 2 excelentes posts do Lúcio sobre Machine Learning (ML), você pode estar se perguntando: mas como utilizo tudo isso na prática? Neste post irei apresentar (sem detalhes para não ficar chato) uma ferramenta bastante difundida e utilizada no mundo na área de ML: o Weka (Waikato Environment for Knowledge Analysis).

Weka é um pacote de código aberto (com licença GNU General Public License) composto de algoritmos de ML implementados em Java. Seu desenvolvimento foi iniciado em 1993 e ficou nas mãos de uma equipe da Universidade de Waikato na Nova Zelândia durante aproximadamente 13 anos. Em 2006, o projeto foi incorporado ao conjunto de soluções de uma empresa de BI chamada Pentaho.

A versão mais recente conta com diversos algoritmos de ML implementados, incluindo algoritmos de clustering, classificação, regras de associação e regressão. Além dos algoritmos, também conta com uma gama de implementações relacionadas com pré-processamento dos dados, filtros e interfaces para visualização. Para entrada de dados, o Weka permite os formatos ARFF (formato desenvolvido especificamente para o Weka), CSV e leitura diretamente do banco de dados via JDBC. Além da possibilidade de utilizar o Weka incluído no seu código Java, também é possível utilizar uma ferramenta gráfica chamada de Explorer para entrada de dados e execução dos algoritmos. Pelo Explorer, você pode ter uma visão gráfica dos seus dados de entrada, executar facilmente diferentes filtros e algoritmos e realizar avaliações dos modelos. Porém, ao lidar com quantidades muito grandes de dados (o que geralmente é o caso na utilização de ML) e também para automatizar o processo, é melhor utilizar o Weka diretamente no seu código.

O código do projeto é muito bem estruturado e escrito, adotando as melhores práticas e padrões de desenvolvimento orientado por objetos. Em um projeto desenvolvido aqui no Labs, tive que modificar o código de um filtro para adaptá-lo aos nossos requisitos. E essa tarefa não foi um bicho de sete cabeças, mesmo sendo um código totalmente desconhecido a princípio.

Pra finalizar, gostaria de deixar uma dica de um excelente livro para os interessados no assunto, tanto de Machine Learning e Data Mining em geral quanto do Weka. O livro é Data Mining: Practical Machine Learning Tools and Techniques.

5 Respostas
  1. Edmar :

    Date: agosto 22, 2008 @ 1:28 pm

    Vale lembrar que o WEKA é a base do RapidMiner (antigo YALE).

  2. muriloq :

    Date: agosto 22, 2008 @ 1:56 pm

    Na edição mais recente do livro sobre o Weka os autores citam o Lúcio e o algoritmo que ele escreveu, o Omniclust.

  3. Nádia :

    Date: dezembro 15, 2009 @ 8:57 am

    Olá fabricio, preciso usar o weka na minha aplicação, estou bem no inicio aprendendo como incorporar o weka no meu código java. Além de adicionar o weka como biblioteca, tem alguma outra configuração necessária? Se possível gostaria de conversar com vc pelo msn. Conversar com alguém q já teve a experiencia de alterar o código do weka me ajudará muito no meu projeto.

    Desde já obrigada

  4. Fabio S P :

    Date: outubro 17, 2010 @ 7:48 pm

    Caro amigo! Estou no 4º Período de SI, tenho uma dúvia… O weka, é gratuito? Existe, versão paga, si sim qual? Outra pergunta. Precisa de licença de utilização? Se si, como consegui-la. Talvez pareça perguntas idiotas, já que seu site, diz software livre. Mais sou muito curioso, e gostaria de saber se existe, versão não free.
    Grato!!!

  5. Murilo Queiroz :

    Date: outubro 18, 2010 @ 9:49 am

    O Weka é gratuito e livre (licença GPL). Isso não impede que você entre em contato com os autores e negocie uma licença comercial separadamente (como fez a Pentaho), caso ela seja necessária.