Datumbox Machine Learning Framework 0.6.0 utgitt PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Datumbox Machine Learning Framework 0.6.0 utgitt

Den nye versjonen av Datumbox Machine Learning Framework er utgitt! Last ned den nå fra Github or Maven sentrale depot.

Hva er nytt?

Hovedfokus for versjon 0.6.0 er å utvide rammeverket til å håndtere store data, forbedre kodearkitekturen og de offentlige API-ene, forenkle parsing av data, forbedre dokumentasjonen og gå til en tillatelig lisens.

La oss se detaljert endringene i denne versjonen:

  1. Håndter store data: Den forbedrede minnestyringen og de nye lagringsmotorene for utholdenhet gjorde det mulig for rammene å håndtere store datasett med flere GB i størrelse. Legger til støtte for KartDB databasemotor gjør det mulig for rammene å unngå å lagre alle dataene i minnet og dermed kunne håndtere store data. Standard InMemory-motoren er omdesignet for å være mer effektiv mens MongoDB-motoren ble fjernet på grunn av ytelsesproblemer.
  2. Forbedret og forenklet rammearkitektur: Abstraksjonsnivået er betydelig redusert, og flere kjernekomponenter blir omgjort. Spesielt blir persistenslagringsmekanismene skrevet om og flere unødvendige funksjoner og datastrukturer blir fjernet.
  3. Nye “Scikit-Learn-like” offentlige API-er: Alle de offentlige metodene for algoritmene blir endret for å ligne Pythons Scikit-Learn API-er (passform / forutsi / transformere paradigmet). De nye offentlige metodene er mer fleksible, enklere og mer vennlige å bruke.
  4. Forenkle parsing av data: Det nye rammeverket har et sett bekvemmelighetsmetoder som gjør det mulig å raskt analysere CSV- eller tekstfiler og konvertere dem til Datasett-objekter.
  5. Forbedret dokumentasjon: Alle de offentlige / beskyttede klassene og metodene i rammene er dokumentert ved hjelp av Javadoc-kommentarer. I tillegg gir den nye versjonen forbedrede JUnit-tester som er gode eksempler på hvordan du bruker enhver algoritme i rammen.
  6. Ny Apache-lisens: Programvarelisensen til rammen endret fra “GNU General Public License v3.0"Til"Apache-lisens, versjon 2.0“. Den nye lisensen er tillatende, og den tillater omfordeling innen kommersiell programvare.

Siden en stor del av rammeverket ble skrevet om for å gjøre det mer effektivt og enklere å bruke, er versjonen 0.6.0 ikke bakoverkompatibel med tidligere versjoner av rammeverket. Til slutt flyttet rammeverket fra Alpha til Beta-utviklingsfasen, og det bør betraktes som mer stabilt.

Hvordan bruke det

I et tidligere blogginnlegg har vi gitt en detaljert installasjonsveiledning om hvordan du installerer Framework. Denne guiden er fortsatt gyldig for den nye versjonen. I tillegg i denne nye versjonen kan du finne flere Kodeeksempler om hvordan du bruker modellene og algoritmene til Framework.

Neste trinn og veikart

Utviklingen av rammeverket vil fortsette, og følgende forbedringer bør gjøres før utgivelsen av versjon 1.0:

  1. Using Rammeverk fra konsoll: Selv om hovedmålet for rammene er å hjelpe utviklingen av Machine Learning-applikasjoner, bør det gjøres lettere å bli brukt fra ikke-Java-utviklere. Etter en lignende tilnærming som Mahout, bør rammeverket gi tilgang til algoritmene ved å bruke konsollkommandoer. Grensesnittet skal være enkelt, enkelt å bruke og de forskjellige algoritmene skal enkelt kombineres.
  2. Støtte flertråd: Rammeverket bruker for tiden tråder bare for opprydningsprosesser og asynkron skriving til disk. Likevel kan noen av algoritmene parallelliseres, og dette vil redusere utførelsestidene betydelig. Løsningen i disse tilfellene skal være elegant og bør endre så lite som mulig den interne logikken / matematikken til maskinlæringsalgoritmene.
  3. Reduser bruken av 2d-matriser og matriser: Et lite antall algoritmer bruker fortsatt 2d-matriser og matriser. Dette fører til at alle dataene blir lagt inn i minnet som begrenser størrelsen på datasettet som kan brukes. Noen algoritmer (for eksempel PCA) bør implementeres på nytt for å unngå bruk av matriser, mens for andre (for eksempel GaussianDPMM, MultinomialDPMM osv.) Bør vi bruke sparsomme matriser.

Andre viktige oppgaver som bør gjøres i de kommende versjonene:

  1. Inkluder nye maskinlæringsalgoritmer: Rammeverket kan utvides til å støtte flere gode algoritmer som blanding av gaussere, gaussiske prosesser, k-NN, beslutningstrær, faktoranalyse, SVD, PLSI, kunstige nevrale nettverk etc.
  2. Forbedre dokumentasjonen, Testdekning & Kodeeksempler: Lag en bedre dokumentasjon, forbedrer JUnit-tester, forbedrer kodekommentarer, gir bedre eksempler på hvordan du bruker algoritmene osv.
  3. Forbedre arkitektur & Optimaliser koden: Ytterligere forenkling og forbedringer av arkitektur av rammeverket, rasjonalisere abstraksjon, forbedre designen, optimalisere hastighet og minneforbruk etc.

Som du ser er det en lang vei, og jeg kan bruke litt hjelp. Hvis du er oppe for utfordringen send meg en linje eller send trekkforespørselen din på github.

Takk til

jeg vil gjerne takke Eleftherios Bampaletakis for hans uvurderlige innspill til å forbedre arkitekturen i Framework. Også vil jeg takke til ej-Technologies GmbH for å gi meg en lisens for deres Java Profiler. Dessuten mine kudos til Jan Kotek for hans fantastiske arbeid i MapDB lagringsmotor. Sist, men ikke minst, min kjærlighet til kjæresten min Kyriaki for å ha oppfylt meg.

Ikke glem å laste ned koden til Datumbox v0.6.0 fra Github. Biblioteket er også tilgjengelig på Maven sentrale depot. For mer informasjon om hvordan du bruker biblioteket i din Java-prosjektkasse følgende veilede eller les instruksjonene på hovedsiden i vår Github-repo.

Jeg ser frem til dine kommentarer og anbefalinger. Trekkforespørsler er alltid velkomne! 🙂

Tidstempel:

Mer fra Datoboks