Datumbox Machine Learning Framework 0.6.0 släppt PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Datumbox Machine Learning Framework 0.6.0 släppt

Den nya versionen av Datumbox Machine Learning Framework har släppts! Ladda ner det nu från Github or Maven Central Repository.

Vad är nytt?

Huvudfokus för version 0.6.0 är att utöka ramverket för att hantera stora data, förbättra kodarkitekturen och de offentliga API: erna, förenkla dataparsning, förbättra dokumentationen och flytta till en tillåtande licens.

Låt oss se i detalj ändringarna av denna version:

  1. Hantera stora data: Den förbättrade minneshanteringen och de nya persistensmotorerna gjorde det möjligt för ramverket att hantera stora datamängder på flera GB i storlek. Lägga till stöd för MapDB databasmotorn gör det möjligt för ramverket att undvika att lagra all data i minnet och därmed kunna hantera stora data. Standardmotorn för InMemory har redesignats för att vara effektivare medan MongoDB-motorn togs bort på grund av prestandaproblem.
  2. Förbättrad och förenklad ramarkitektur: Abstraktionsnivån minskas avsevärt och flera kärnkomponenter har redesignats. I synnerhet skrivs ut lagringsmekanismerna för uthållighet och flera onödiga funktioner och datastrukturer tas bort.
  3. Nya ”Scikit-Learn-like” offentliga API: er: Alla allmänna metoder för algoritmerna ändras så att de liknar Pythons Scikit-Learn API: er (passform / förutsäga / omvandla paradigmet). De nya offentliga metoderna är mer flexibla, lättare och mer användarvänliga.
  4. Förenkla dataparsning: Det nya ramverket kommer med en uppsättning bekvämlighetsmetoder som möjliggör snabb analys av CSV- eller textfiler och deras konvertering till datasatsobjekt.
  5. Förbättrad dokumentation: Alla offentliga / skyddade klasser och metoder i ramverket dokumenteras med Javadoc-kommentarer. Dessutom ger den nya versionen förbättrade JUnit-tester som är bra exempel på hur man använder alla algoritmer i ramverket.
  6. Ny Apache-licens: Programvarulicensen för ramverket ändrades från “GNU General Public License v3.0"Att"Apache-licens, version 2.0“. Den nya licensen är tillåten och tillåter omfördelning inom kommersiell programvara.

Eftersom en stor del av ramverket skrevs om för att göra det mer effektivt och lättare att använda, är version 0.6.0 inte bakåtkompatibel med tidigare versioner av ramverket. Slutligen flyttade ramverket från Alpha till Beta-utvecklingsfasen och det bör betraktas som mer stabilt.

Användning

I ett tidigare blogginlägg har vi tillhandahållit en detaljerad installationsguide om hur du installerar ramverket. Den här guiden gäller fortfarande för den nya versionen. Dessutom kan du hitta flera i den här nya versionen Kodsexempel om hur man använder modellerna och algoritmerna i ramverket.

Nästa steg och färdplan

Utvecklingen av ramverket kommer att fortsätta och följande förbättringar bör göras innan version 1.0 släpps:

  1. Usanvändning Ram från konsolen: Även om ramverkets huvudsakliga mål är att hjälpa utvecklingen av maskininlärningsapplikationer, bör det göras lättare att använda från icke-Java-utvecklare. Efter ett liknande tillvägagångssätt som Mahout bör ramverket ge åtkomst till algoritmerna med hjälp av konsolkommandon. Gränssnittet ska vara enkelt, lätt att använda och de olika algoritmerna bör enkelt kombineras.
  2. Stöd Multi-threading: Ramverket använder för närvarande endast trådar för rensningsprocesser och asynkron skrivning till disk. Ändå kan en del av algoritmerna parallelliseras och detta kommer att minska körningstiderna avsevärt. Lösningen i dessa fall bör vara elegant och bör ändra så lite som möjligt den interna logiken / matematiken i maskininlärningsalgoritmerna.
  3. Minska användningen av 2d-matriser och matriser: Ett litet antal algoritmer använder fortfarande 2d-matriser och matriser. Detta gör att all data laddas in i minnet vilket begränsar storleken på datamängden som kan användas. Vissa algoritmer (som PCA) bör implementeras på nytt för att undvika matriser medan vi för andra (som GaussianDPMM, MultinomialDPMM etc) bör använda glesa matriser.

Andra viktiga uppgifter som ska göras i de kommande versionerna:

  1. Inkludera nya maskininlärningsalgoritmer: Ramverket kan utökas för att stödja flera fantastiska algoritmer som blandning av Gaussianer, Gaussiska processer, k-NN, beslutsträd, faktoranalys, SVD, PLSI, artificiella neuronätverk etc.
  2. Förbättra dokumentationen, Testtäckning & Kodexempel: Skapa en bättre dokumentation, förbättra JUnit-tester, förbättra kodkommentarer, ge bättre exempel på hur man använder algoritmerna etc.
  3. Förbättra arkitekturen & Optimera kod: Ytterligare förenkling och förbättringar av ramens arkitektur, rationalisera abstraktion, förbättra designen, optimera hastighet och minnesförbrukning etc.

Som du ser är det en lång väg och jag kan använda lite hjälp. Om du är redo för utmaningen hör av dig eller skicka din dragförfrågan på github.

Tack

jag skulle vilja tacka Eleftherios Bampaletakis för hans ovärderliga bidrag för att förbättra ramverkets arkitektur. Jag vill också tacka till ej-Technologies GmbH för att ge mig en licens för deras Java Profiler. Dessutom mina kudos till Jan Kotek för hans fantastiska arbete i MapDB-lagringsmotor. Sist men inte minst, min kärlek till min flickvän Kyriaki för att ha tålt mig.

Glöm inte att ladda ner koden till Datumbox v0.6.0 från Github. Biblioteket finns också tillgängligt på Maven Central Repository. För mer information om hur du använder biblioteket i ditt Java-projekt, kolla följande styra eller läs instruktionerna på huvudsidan i vårt Github-repo.

Jag ser fram emot dina kommentarer och rekommendationer. Pull-förfrågningar är alltid välkomna! 🙂

Tidsstämpel:

Mer från Datumbox