Datumbox Machine Learning Framework 0.6.0 je izdal PlatoBlockchain Data Intelligence. Navpično iskanje. Ai.

Datumbox Okvir strojnega učenja 0.6.0 Objavljen

Izšla je nova različica Datumbox Machine Learning Framework! Prenesite ga zdaj iz GitHub or Centralno skladišče Maven.

Kaj je novega?

Glavni poudarek različica 0.6.0 je razširiti okvir za obdelavo velikih podatkov, izboljšati arhitekturo kode in javne API-je, poenostaviti razčlenjevanje podatkov, izboljšati dokumentacijo in preiti na permisivno licenco.

Oglejmo si podrobneje spremembe te različice:

  1. Ravnajte z velikimi podatki: Izboljšano upravljanje pomnilnika in novi motorji za shranjevanje obstojnosti so ogrodju omogočili obdelavo velikih naborov podatkov v velikosti nekaj GB. Dodajanje podpore za MapDB mehanizem baze podatkov omogoča ogrodju, da se izogne ​​shranjevanju vseh podatkov v pomnilnik in tako lahko obravnava velike podatke. Privzeti mehanizem InMemory je preoblikovan tako, da je učinkovitejši, medtem ko je bil motor MongoDB odstranjen zaradi težav z zmogljivostjo.
  2. Izboljšana in poenostavljena arhitektura ogrodja: Raven abstrakcije je znatno zmanjšana in več ključnih komponent je preoblikovanih. Zlasti so prepisani mehanizmi za shranjevanje obstojnosti in odstranjenih je več nepotrebnih funkcij in podatkovnih struktur.
  3. Novi javni API-ji, podobni Scikitu: Vse javne metode algoritmov so spremenjene tako, da spominjajo na Pythonove API-je Scikit-Learn (paradigma prileganja/predvidevanja/pretvorbe). Nove javne metode so bolj prilagodljive, enostavnejše in prijaznejše za uporabo.
  4. Poenostavite razčlenjevanje podatkov: Novo ogrodje je opremljeno z nizom priročnih metod, ki omogočajo hitro razčlenjevanje datotek CSV ali besedilnih datotek in njihovo pretvorbo v objekte nabora podatkov.
  5. Izboljšana dokumentacija: Vsi javni/zaščiteni razredi in metode ogrodja so dokumentirani s komentarji Javadoc. Poleg tega nova različica zagotavlja izboljšane teste JUnit, ki so odlični primeri, kako uporabiti vsak algoritem ogrodja.
  6. Nova licenca Apache: Licenca programske opreme ogrodja se je spremenila iz »GNU General Public License v3.0"Da"Apache licenca, različica 2.0“. Nova licenca je permisivna in omogoča redistribucijo znotraj komercialne programske opreme.

Ker je bil velik del ogrodja prepisan, da bi bilo učinkovitejše in enostavnejše za uporabo, je različica 0.6.0 ni združljiv za nazaj s starejšimi različicami ogrodja. Končno je ogrodje prešlo iz alfa v beta razvojno fazo in ga je treba šteti za bolj stabilnega.

Kako uporabljati

V prejšnji objavi v blogu smo zagotovili a podroben vodnik za namestitev o tem, kako namestiti okvir. Ta vodnik še vedno velja za novo različico. Poleg tega v tej novi različici najdete več Primeri kode kako uporabljati modele in algoritme ogrodja.

Naslednji koraki in načrt

Razvoj ogrodja se bo nadaljeval in pred izdajo različice 1.0 je treba izvesti naslednje izboljšave:

  1. Using Ogrodje iz konzole: Čeprav je glavni cilj ogrodja pomoč pri razvoju aplikacij strojnega učenja, bi bilo treba omogočiti lažjo uporabo razvijalcem, ki ne uporabljajo Jave. Po podobnem pristopu kot Mahout bi moralo ogrodje zagotavljati dostop do algoritmov z ukazi konzole. Vmesnik mora biti preprost, enostaven za uporabo, različni algoritmi pa morajo biti zlahka kombinirani.
  2. Podpira večnitnost: Ogrodje trenutno uporablja niti samo za postopke čiščenja in asinhrono pisanje na disk. Kljub temu je mogoče nekatere algoritme vzporediti, kar bo znatno skrajšalo čas izvajanja. Rešitev v teh primerih mora biti elegantna in čim manj spreminjati notranjo logiko/matematiko algoritmov strojnega učenja.
  3. Zmanjšajte uporabo 2D nizov in matrik: Majhno število algoritmov še vedno uporablja 2d polja in matrike. To povzroči, da se vsi podatki naložijo v pomnilnik, kar omejuje velikost nabora podatkov, ki ga je mogoče uporabiti. Nekatere algoritme (kot je PCA) je treba znova implementirati, da se izognemo uporabi matrik, medtem ko bi morali za druge (kot so GaussianDPMM, MultinomialDPMM itd.) uporabiti redke matrike.

Druge pomembne naloge, ki jih je treba opraviti v prihajajočih različicah:

  1. Vključite nove algoritme strojnega učenja: Ogrodje je mogoče razširiti tako, da podpira več odličnih algoritmov, kot so mešanica Gaussovih algoritmov, Gaussovi procesi, k-NN, drevesa odločanja, faktorska analiza, SVD, PLSI, umetne nevronske mreže itd.
  2. Izboljšajte dokumentacijo, Pokritost s testom & Primeri kod: Ustvarite boljšo dokumentacijo, izboljšajte teste JUnit, izboljšajte komentarje kode, zagotovite boljše primere uporabe algoritmov itd.
  3. Izboljšajte arhitekturo & Optimizirajte kodo: Nadaljnja poenostavitev in izboljšave arhitekture ogrodja, racionalizacija abstrakcije, izboljšanje dizajna, optimizacija hitrosti in porabe pomnilnika itd.

Kot vidite, je pot dolga in dobro bi mi pomagala. Če ste pripravljeni na izziv spusti mi vrstico ali pošljite zahtevo za vlečenje na github.

Priznanja

Rad bi se zahvalil Eleftherios Bampaletakis za njegov neprecenljiv prispevek k izboljšanju arhitekture ogrodja. Prav tako bi se rad zahvalil ej-technologies GmbH ker ste mi zagotovili licenco za njihov Java Profiler. Še več, moja pohvala Jan Kotek za njegovo neverjetno delo v mehanizmu za shranjevanje MapDB. Nenazadnje, moja ljubezen do mojega dekleta Kyriaki, ker me je prenašala.

Ne pozabite prenesti kode Datumbox v0.6.0 iz GitHub. Knjižnica je na voljo tudi na Centralno skladišče Maven. Za več informacij o uporabi knjižnice v vašem projektu Java si oglejte naslednje vodi ali preberite navodila na glavni strani našega skladišča Github.

Veselim se vaših komentarjev in priporočil. Vlečne zahteve so vedno dobrodošle! 🙂

Časovni žig:

Več od Datumbox