Datumbox Machine Learning Framework 0.6.0 frigivet PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Datumbox Machine Learning Framework 0.6.0 udgivet

Den nye version af Datumbox Machine Learning Framework er blevet frigivet! Download det nu fra Github or Maven Central Repository.

Hvad er nyt?

Det primære fokus for udgave 0.6.0 er at udvide rammen til at håndtere store data, forbedre kodearkitekturen og de offentlige API'er, forenkle dataparsing, forbedre dokumentationen og flytte til en tilladelig licens.

Lad os se i detaljer ændringerne af denne version:

  1. Håndter store data: Den forbedrede hukommelsesstyring og de nye persistenslagringsmotorer gjorde det muligt for rammen at håndtere store datasæt på flere GB i størrelse. Tilføjelse af støtte til KortDB databasemotor gør det muligt for rammerne at undgå at gemme alle data i hukommelsen og dermed være i stand til at håndtere store data. Standard InMemory-motoren er redesignet til at være mere effektiv, mens MongoDB-motoren blev fjernet på grund af ydeevneproblemer.
  2. Forbedret og forenklet Framework-arkitektur: Abstraktionsniveauet er væsentligt reduceret, og flere kernekomponenter er redesignet. Især persistenslagringsmekanismerne omskrives, og adskillige unødvendige funktioner og datastrukturer fjernes.
  3. Nye "Scikit-Learn-like" offentlige API'er: Alle de offentlige metoder for algoritmerne er ændret til at ligne Pythons Scikit-Learn API'er (pasnings-/forudsig-/transform-paradigmet). De nye offentlige metoder er mere fleksible, nemmere og mere venlige at bruge.
  4. Forenkle dataparsing: Den nye ramme kommer med et sæt bekvemmelighedsmetoder, som tillader hurtig parsing af CSV- eller tekstfiler og deres konvertering til datasætobjekter.
  5. Forbedret dokumentation: Alle de offentlige/beskyttede klasser og metoder i Framework er dokumenteret ved hjælp af Javadoc-kommentarer. Derudover giver den nye version forbedrede JUnit-tests, som er gode eksempler på, hvordan man bruger enhver algoritme i rammeværket.
  6. Ny Apache-licens: Softwarelicensen for rammeværket blev ændret fra "GNU General Public License v3.0"Til"Apache-licens, Version 2.0“. Den nye licens er tilladelig, og den tillader omfordeling inden for kommerciel software.

Da en stor del af rammeværket blev omskrevet for at gøre det mere effektivt og nemmere at bruge, er version 0.6.0 ikke bagudkompatibel med tidligere versioner af rammen. Til sidst flyttede rammen fra Alpha til Beta-udviklingsfasen, og den bør betragtes som mere stabil.

Hvordan man bruger det

I et tidligere blogindlæg har vi givet en detaljeret installationsvejledning hvordan man installerer Framework. Denne vejledning er stadig gyldig for den nye version. Derudover kan du i denne nye version finde flere Kodeeksempler om, hvordan man bruger modellerne og algoritmerne i Framework.

Næste trin & køreplan

Udviklingen af ​​rammeværket vil fortsætte, og følgende forbedringer bør foretages inden udgivelsen af ​​version 1.0:

  1. UsING Ramme fra konsollen: Selvom hovedmålet med rammeværket er at hjælpe med udviklingen af ​​Machine Learning-applikationer, bør det gøres lettere at bruge fra ikke-Java-udviklere. Efter en lignende tilgang som Mahout, skulle rammen give adgang til algoritmerne ved hjælp af konsolkommandoer. Grænsefladen skal være enkel, nem at bruge, og de forskellige algoritmer skal let kombineres.
  2. Understøtter multi-threading: Frameworket bruger i øjeblikket kun tråde til oprydningsprocesser og asynkron skrivning til disk. Ikke desto mindre kan nogle af algoritmerne paralleliseres, og dette vil reducere eksekveringstiden betydeligt. Løsningen i disse tilfælde bør være elegant og bør modificere så lidt som muligt den interne logik/matematik i maskinlæringsalgoritmerne.
  3. Reducer brugen af ​​2d-arrays og matricer: Et lille antal algoritmer bruger stadig 2d-arrays og matricer. Dette får alle data til at blive indlæst i hukommelsen, hvilket begrænser størrelsen af ​​datasættet, der kan bruges. Nogle algoritmer (såsom PCA) bør genimplementeres for at undgå brugen af ​​matricer, mens vi for andre (såsom GaussianDPMM, MultinomialDPMM osv.) bør bruge sparsomme matricer.

Andre vigtige opgaver, der bør udføres i de kommende versioner:

  1. Medtag nye Machine Learning-algoritmer: Rammerne kan udvides til at understøtte flere gode algoritmer såsom blanding af gaussere, gaussiske processer, k-NN, beslutningstræer, faktoranalyse, SVD, PLSI, kunstige neurale netværk osv.
  2. Forbedre dokumentation, Testdækning & Kode eksempler: Skab en bedre dokumentation, forbedre JUnit-tests, forbedre kodekommentarer, giv bedre eksempler på, hvordan man bruger algoritmerne osv.
  3. Forbedre arkitekturen & Optimer kode: Yderligere forenkling og forbedringer af rammeværkets arkitektur, rationalisere abstraktion, forbedre designet, optimere hastighed og hukommelsesforbrug osv.

Som du kan se, er det en lang vej, og jeg kunne godt bruge lidt hjælp. Hvis du er klar til udfordringen kast mig en linje eller send din pull-anmodning på github.

Anerkendelser

jeg vil gerne takke Eleftherios Bampaletakis for hans uvurderlige input til forbedring af rammeværkets arkitektur. Jeg vil også gerne takke ej-Technologies GmbH for at give mig en licens til deres Java Profiler. Desuden min kudos til Jan Kotek for hans fantastiske arbejde i MapDB storage engine. Sidst, men ikke mindst, min kærlighed til min kæreste Kyriaki for at holde ud med mig.

Glem ikke at downloade koden til Datumbox v0.6.0 fra Github. Biblioteket er også tilgængeligt på Maven Central Repository. For mere information om, hvordan du bruger biblioteket i dit Java-projekt, kan du se følgende vejlede eller læs instruktionerne på hovedsiden af ​​vores Github-repo.

Jeg ser frem til dine kommentarer og anbefalinger. Pull-anmodninger er altid velkomne! 🙂

Tidsstempel:

Mere fra Datumboks