Datumbox Machine Learning Framework 0.6.0 Lançado PlatoBlockchain Data Intelligence. Pesquisa vertical. Ai.

Lançamento do Datumbox Machine Learning Framework 0.6.0

A nova versão do Datumbox Machine Learning Framework foi lançada! Baixe agora de Github or Repositório Central Maven.

O que é novo?

O foco principal de versão 0.6.0 é estender a estrutura para lidar com dados grandes, melhorar a arquitetura do código e as APIs públicas, simplificar a análise de dados, aprimorar a documentação e passar para uma licença permissiva.

Vamos ver em detalhes as mudanças desta versão:

  1. Lidar com dados grandes: O gerenciamento de memória aprimorado e os novos mecanismos de armazenamento de persistência habilitaram a estrutura a lidar com grandes conjuntos de dados de vários GB. Adicionando suporte do MapDB o mecanismo de banco de dados permite que a estrutura evite o armazenamento de todos os dados na memória e, portanto, seja capaz de lidar com dados grandes. O mecanismo InMemory padrão foi reprojetado para ser mais eficiente, enquanto o mecanismo MongoDB foi removido devido a problemas de desempenho.
  2. Arquitetura de Framework aprimorada e simplificada: O nível de abstração é significativamente reduzido e vários componentes principais são reprojetados. Em particular, os mecanismos de armazenamento de persistência são reescritos e vários recursos e estruturas de dados desnecessários são removidos.
  3. Novas APIs públicas “Scikit-Learn-like”: Todos os métodos públicos dos algoritmos são alterados para se parecerem com as APIs Scikit-Learn do Python (o paradigma ajustar / prever / transformar). Os novos métodos públicos são mais flexíveis, fáceis e amigáveis ​​de usar.
  4. Simplifique a análise de dados: O novo framework vem com um conjunto de métodos convenientes que permitem a análise rápida de arquivos CSV ou Texto e sua conversão em objetos Dataset.
  5. Documentação aprimorada: Todas as classes e métodos públicos / protegidos do Framework são documentados usando comentários Javadoc. Além disso, a nova versão fornece testes JUnit aprimorados, que são ótimos exemplos de como usar todos os algoritmos do framework.
  6. Nova licença Apache: A licença de software do framework mudou de “GNU General Public License v3.0"Para"Licença Apache, versão 2.0“. A nova licença é permissiva e permite a redistribuição dentro do software comercial.

Como uma grande parte do framework foi reescrito para torná-lo mais eficiente e fácil de usar, a versão 0.6.0 é não compatível com versões anteriores com versões anteriores da estrutura. Por fim, o framework passou da fase de desenvolvimento Alfa para a Beta e deve ser considerado mais estável.

Como utilizar

Em uma postagem anterior do blog, fornecemos um guia de instalação detalhado sobre como instalar o Framework. Este guia ainda é válido para a nova versão. Além disso, nesta nova versão, você pode encontrar vários Exemplos de código sobre como usar os modelos e algoritmos do Framework.

Próximas etapas e roteiro

O desenvolvimento da estrutura continuará e as seguintes melhorias devem ser feitas antes do lançamento da versão 1.0:

  1. Using Framework do console: Embora o objetivo principal da estrutura seja auxiliar no desenvolvimento de aplicativos de aprendizado de máquina, ela deve ser facilitada para ser usada por desenvolvedores não Java. Seguindo uma abordagem semelhante à do Mahout, a estrutura deve fornecer acesso aos algoritmos usando comandos do console. A interface deve ser simples, fácil de usar e os diferentes algoritmos devem ser facilmente combinados.
  2. Suporta Multi-threading: A estrutura atualmente usa threads apenas para processos de limpeza e gravação assíncrona no disco. No entanto, alguns dos algoritmos podem ser paralelizados e isso reduzirá significativamente os tempos de execução. A solução nesses casos deve ser elegante e deve modificar o menos possível a lógica / matemática interna dos algoritmos de aprendizado de máquina.
  3. Reduza o uso de matrizes e matrizes 2d: Um pequeno número de algoritmos ainda usa arrays e matrizes 2D. Isso faz com que todos os dados sejam carregados na memória, o que limita o tamanho do conjunto de dados que pode ser usado. Alguns algoritmos (como PCA) devem ser reimplementados para evitar o uso de matrizes, enquanto para outros (como GaussianDPMM, MultinomialDPMM etc) devemos usar matrizes esparsas.

Outras tarefas importantes que devem ser realizadas nas próximas versões:

  1. Inclui novos algoritmos de aprendizado de máquina: A estrutura pode ser estendida para suportar vários algoritmos excelentes, como Mistura de Gaussianas, Processos Gaussianos, k-NN, Árvores de Decisão, Análise Fatorial, SVD, PLSI, Redes Neurais Artificiais, etc.
  2. Melhore a documentação, Cobertura de teste Exemplos de & código: Crie uma documentação melhor, melhore os testes JUnit, aprimore os comentários do código, forneça melhores exemplos sobre como usar os algoritmos, etc.
  3. Melhorar a arquitetura & Optimize código: Maior simplificação e melhorias na arquitetura do framework, racionalizar a abstração, melhorar o design, otimizar a velocidade e o consumo de memória, etc.

Como você pode ver, é um longo caminho e eu preciso de ajuda. Se você está pronto para o desafio mande-me uma linha ou envie sua solicitação de pull no github.

Agradecimentos

eu gostaria de agradecer Eleftherios Bampaletakis por sua contribuição inestimável no aprimoramento da arquitetura do Framework. Também gostaria de agradecer a ej-tecnologias GmbH por me fornecer uma licença para seu Java Profiler. Além disso, meus parabéns para Jan Kotek por seu incrível trabalho no mecanismo de armazenamento MapDB. Por último, mas não menos importante, meu amor à minha namorada Kyriaki por me aturar.

Não se esqueça de baixar o código do Datumbox v0.6.0 de Github. A biblioteca também está disponível em Repositório Central Maven. Para obter mais informações sobre como usar a biblioteca em seu projeto Java, verifique o seguinte guia ou leia as instruções na página principal de nosso repositório Github.

Aguardo seus comentários e recomendações. Solicitações de pull são sempre bem-vindas! 🙂

Carimbo de hora:

Mais de Caixa de dados