Datumbox Machine Learning Framework 0.6.0 a lansat PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Datumbox Machine Learning Framework 0.6.0 Publicat

Noua versiune a Cadrului de învățare automată Datumbox a fost lansată! Descărcați-l acum de la Github or Depozitul central Maven.

Ce mai e nou?

Principalul obiectiv al Versiunea 0.6.0 este de a extinde cadrul pentru a gestiona date mari, de a îmbunătăți arhitectura codului și API-urile publice, de a simplifica analizarea datelor, de a îmbunătăți documentația și de a trece la o licență permisivă.

Să vedem în detaliu modificările acestei versiuni:

  1. Gestionați date mari: Gestionarea îmbunătățită a memoriei și noile motoare de stocare cu persistență au permis cadrului să gestioneze seturi mari de date de mai mulți GB. Adăugarea suportului pentru MapDB Motorul de baze de date permite cadrului să evite stocarea tuturor datelor în memorie și astfel să poată gestiona date mari. Motorul implicit InMemory este reproiectat pentru a fi mai eficient, în timp ce motorul MongoDB a fost eliminat din cauza problemelor de performanță.
  2. Arhitectură cadru îmbunătățită și simplificată: Nivelul de abstractizare este redus semnificativ și mai multe componente de bază sunt reproiectate. În special, mecanismele de stocare a persistenței sunt rescrise și câteva caracteristici și structuri de date inutile sunt eliminate.
  3. Noi API-uri publice „Scikit-Learn-like”: Toate metodele publice ale algoritmilor sunt modificate pentru a se asemăna cu API-urile Scikit-Learn ale Python (paradigma fit/predict/transform). Noile metode publice sunt mai flexibile, mai ușor și mai prietenos de utilizat.
  4. Simplificați analiza datelor: Noul cadru vine cu un set de metode convenabile care permit analizarea rapidă a fișierelor CSV sau Text și conversia acestora în obiecte Dataset.
  5. Documentație îmbunătățită: Toate clasele și metodele publice/protejate ale cadrului sunt documentate folosind comentarii Javadoc. În plus, noua versiune oferă teste JUnit îmbunătățite, care sunt exemple excelente de utilizare a fiecărui algoritm al cadrului.
  6. Noua licenta Apache: Licența software a cadrului s-a schimbat din „GNU General Public License v3.0"La"Licență Apache, versiunea 2.0„. Noua licență este permisivă și permite redistribuirea în cadrul software-ului comercial.

Deoarece o mare parte a cadrului a fost rescris pentru a-l face mai eficient și mai ușor de utilizat, versiunea 0.6.0 este nu este compatibil cu înapoi cu versiuni anterioare ale cadrului. În cele din urmă, cadrul s-a mutat din faza de dezvoltare Alpha în faza de dezvoltare Beta și ar trebui să fie considerat mai stabil.

Cum să-l folosească

Într-o postare anterioară pe blog, am oferit un ghid detaliat de instalare despre cum se instalează Framework. Acest ghid este încă valabil pentru noua versiune. În plus, în această nouă versiune puteți găsi mai multe Exemple de cod despre modul de utilizare a modelelor și algoritmilor Cadrului.

Următorii pași și foaie de parcurs

Dezvoltarea cadrului va continua și următoarele îmbunătățiri ar trebui făcute înainte de lansarea versiunii 1.0:

  1. UsING Framework din consolă: Chiar dacă ținta principală a cadrului este de a sprijini dezvoltarea aplicațiilor de învățare automată, ar trebui să fie mai ușor de utilizat de la dezvoltatori non-Java. Urmând o abordare similară cu cea a lui Mahout, cadrul ar trebui să ofere acces la algoritmi folosind comenzile consolei. Interfața ar trebui să fie simplă, ușor de utilizat, iar diferiții algoritmi ar trebui să fie ușor combinați.
  2. Suport multi-threading: Cadrul utilizează în prezent fire de execuție numai pentru procesele de curățare și scrierea asincronă pe disc. Cu toate acestea, unii dintre algoritmi pot fi paralelizați și acest lucru va reduce semnificativ timpul de execuție. Soluția în aceste cazuri ar trebui să fie elegantă și să modifice cât mai puțin posibil logica/matematica internă a algoritmilor de învățare automată.
  3. Reduceți utilizarea matricelor și matricelor 2d: Un număr mic de algoritmi utilizează încă matrice și matrice 2d. Acest lucru face ca toate datele să fie încărcate în memorie, ceea ce limitează dimensiunea setului de date care poate fi utilizat. Unii algoritmi (cum ar fi PCA) ar trebui reimplementați pentru a evita utilizarea matricelor, în timp ce pentru alții (cum ar fi GaussianDPMM, MultinomialDPMM etc) ar trebui să folosim matrici rare.

Alte sarcini importante care ar trebui făcute în versiunile viitoare:

  1. Includeți noi algoritmi de învățare automată: Cadrul poate fi extins pentru a suporta mai mulți algoritmi grozavi, cum ar fi amestecul de gaussieni, procesele gaussiene, k-NN, arbori de decizie, analiza factorială, SVD, PLSI, rețele neuronale artificiale etc.
  2. Îmbunătățiți documentația, Testați acoperirea & Exemple de cod: Creați o documentație mai bună, îmbunătățiți testele JUnit, îmbunătățiți comentariile de cod, oferiți exemple mai bune despre cum să utilizați algoritmii etc.
  3. Îmbunătățiți arhitectura & Optimizați codul: Simplificare și îmbunătățiri suplimentare ale arhitecturii cadrului, raționalizarea abstracției, îmbunătățirea designului, optimizarea vitezei și a consumului de memorie etc.

După cum puteți vedea, este un drum lung și mi-ar fi nevoie de ajutor. Dacă ești pregătit pentru provocare da-mi un vers sau trimiteți cererea dvs. de extragere pe github.

Mulţumiri

mi-ar placea sa multumesc Eleftherios Bampaletakis pentru contribuția sa neprețuită privind îmbunătățirea arhitecturii Cadrului. De asemenea, aș dori să îi mulțumesc ej-technologies GmbH pentru că mi-a oferit o licență pentru Java Profiler. În plus, felicitările mele pentru Jan Kotek pentru munca sa uimitoare în motorul de stocare MapDB. Nu în ultimul rând, dragostea mea pentru iubita mea Kyriaki pentru că m-a suportat.

Nu uitați să descărcați codul Datumbox v0.6.0 de pe Github. Biblioteca este disponibilă și pe Depozitul central Maven. Pentru mai multe informații despre cum să utilizați biblioteca în proiectul Java, consultați următoarele ghida sau citiți instrucțiunile de pe pagina principală a depozitului nostru Github.

Astept cu interes comentariile si recomandarile voastre. Solicitările de tragere sunt întotdeauna binevenite! 🙂

Timestamp-ul:

Mai mult de la Datumbox