Datumbox Machine Learning Framework 0.6.0 Rilasciata PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Rilasciato Datumbox Machine Learning Framework 0.6.0

La nuova versione di Datumbox Machine Learning Framework è stata rilasciata! Scaricalo ora da Github or Repository centrale di Maven.

Cosa c'è di nuovo?

L'obiettivo principale della Versione 0.6.0 è estendere il Framework per gestire i dati di grandi dimensioni, migliorare l'architettura del codice e le API pubbliche, semplificare l'analisi dei dati, migliorare la documentazione e passare a una licenza permissiva.

Vediamo in dettaglio le modifiche di questa versione:

  1. Gestisci dati di grandi dimensioni: La gestione della memoria migliorata e i nuovi motori di archiviazione di persistenza hanno consentito al framework di gestire grandi set di dati di dimensioni diverse da GB. Aggiunta del supporto di Mappa DB il motore di database consente al framework di evitare di archiviare tutti i dati in memoria e quindi di gestire dati di grandi dimensioni. Il motore InMemory predefinito è stato riprogettato per essere più efficiente mentre il motore MongoDB è stato rimosso a causa di problemi di prestazioni.
  2. Architettura framework migliorata e semplificata: Il livello di astrazione è significativamente ridotto e vengono riprogettati numerosi componenti principali. In particolare, i meccanismi di memorizzazione della persistenza vengono riscritti e vengono rimosse diverse funzionalità e strutture di dati non necessarie.
  3. Nuove API pubbliche "Scikit-Learn-like": Tutti i metodi pubblici degli algoritmi sono cambiati per assomigliare alle API Scikit-Learn di Python (il paradigma di adattamento / previsione / trasformazione). I nuovi metodi pubblici sono più flessibili, più facili e più facili da usare.
  4. Semplifica l'analisi dei dati: Il nuovo framework include una serie di metodi di praticità che consentono l'analisi rapida di file CSV o di testo e la loro conversione in oggetti del set di dati.
  5. Documentazione migliorata: Tutte le classi e i metodi pubblici / protetti del Framework sono documentati usando i commenti Javadoc. Inoltre, la nuova versione offre test JUnit migliorati che sono ottimi esempi di come utilizzare ogni algoritmo del framework.
  6. Nuova licenza Apache: La licenza software del framework è cambiata da "GNU General Public License v3.0"A"Licenza Apache, versione 2.0“. La nuova licenza è permissiva e consente la ridistribuzione all'interno del software commerciale.

Poiché gran parte del framework è stato riscritto per renderlo più efficiente e più facile da usare, la versione 0.6.0 è non compatibile con le versioni precedenti con le versioni precedenti del framework. Infine, il framework è passato da Alpha alla fase di sviluppo Beta e dovrebbe essere considerato più stabile.

Come si usa

In un precedente post sul blog, abbiamo fornito a guida dettagliata all'installazione su come installare il Framework. Questa guida è ancora valida per la nuova versione. Inoltre in questa nuova versione puoi trovarne diversi Esempi di codice su come utilizzare i modelli e gli algoritmi del Framework.

Passaggi successivi e roadmap

Lo sviluppo del framework continuerà e prima del rilascio della versione 1.0 dovrebbero essere apportati i seguenti miglioramenti:

  1. UsING Framework da console: Anche se l'obiettivo principale del framework è aiutare lo sviluppo di applicazioni di Machine Learning, dovrebbe essere reso più facile da usare da sviluppatori non Java. Seguendo un approccio simile a Mahout, il framework dovrebbe fornire accesso agli algoritmi usando i comandi della console. L'interfaccia dovrebbe essere semplice, facile da usare e i diversi algoritmi dovrebbero essere facilmente combinati.
  2. Supporto multi-threading: Il framework attualmente utilizza thread solo per processi di clean-up e scrittura asincrona su disco. Tuttavia alcuni algoritmi possono essere parallelizzati e questo ridurrà significativamente i tempi di esecuzione. La soluzione in questi casi dovrebbe essere elegante e dovrebbe modificare il meno possibile la logica interna / matematica degli algoritmi di apprendimento automatico.
  3. Riduci l'uso di array e matrici 2d: Un piccolo numero di algoritmi utilizza ancora matrici e matrici 2D. Questo fa sì che tutti i dati vengano caricati in memoria, il che limita la dimensione del set di dati che può essere utilizzato. Alcuni algoritmi (come PCA) dovrebbero essere reimplementati per evitare l'uso di matrici mentre per altri (come GaussianDPMM, MultinomialDPMM ecc.) Dovremmo usare matrici sparse.

Altre attività importanti che dovrebbero essere eseguite nelle prossime versioni:

  1. Includi nuovi algoritmi di Machine Learning: Il framework può essere esteso per supportare diversi grandi algoritmi come Miscela di gaussiani, processi gaussiani, k-NN, alberi decisionali, analisi fattoriale, SVD, PLSI, reti neurali artificiali ecc.
  2. Migliorare la documentazione, Copertura di prova & Esempi di codice: Creare una documentazione migliore, migliorare i test JUnit, migliorare i commenti sul codice, fornire esempi migliori su come utilizzare gli algoritmi ecc.
  3. Migliora l'architettura & Ottimizza il codice: Ulteriore semplificazione e miglioramenti dell'architettura del framework, razionalizzazione dell'astrazione, miglioramento della progettazione, ottimizzazione della velocità e del consumo di memoria ecc.

Come vedi è una lunga strada e potrei usare un po 'di aiuto. Se sei pronto per la sfida fammi uno squillo oppure invia la tua richiesta pull su github.

Ringraziamenti

vorrei ringraziare Eleftherios Bampaletakis per il suo prezioso contributo al miglioramento dell'architettura del Framework. Inoltre vorrei ringraziare ej-tecnologie GmbH per avermi fornito una licenza per il loro profilo Java. Inoltre i miei complimenti a Jan Kotek per il suo straordinario lavoro nel motore di archiviazione MapDB. Ultimo ma non meno importante, il mio amore per la mia ragazza Kyriaki per avermi sopportato.

Non dimenticare di scaricare il codice di Datumbox v0.6.0 da Github. La libreria è disponibile anche su Repository centrale di Maven. Per ulteriori informazioni su come utilizzare la libreria nel progetto Java, controllare quanto segue guida oppure leggi le istruzioni sulla pagina principale del nostro repository Github.

Non vedo l'ora di ricevere commenti e raccomandazioni. Le richieste pull sono sempre benvenute! 🙂

Timestamp:

Di più da Databox