Datumbox Machine Learning Framework 0.6.0 PlatoBlockchain Data Intelligence uitgebracht. Verticaal zoeken. Ai.

Datumbox Machine Learning Framework 0.6.0 vrijgegeven

De nieuwe versie van Datumbox Machine Learning Framework is uitgebracht! Download het nu vanaf GitHub or Maven Centrale Repository.

Wat is nieuw?

De belangrijkste focus van versie 0.6.0 is het uitbreiden van het raamwerk voor het afhandelen van grote gegevens, het verbeteren van de codearchitectuur en de openbare API's, het vereenvoudigen van het ontleden van gegevens, het verbeteren van de documentatie en het overgaan op een permissieve licentie.

Laten we de wijzigingen van deze versie in detail bekijken:

  1. Omgaan met grote gegevens: Het verbeterde geheugenbeheer en de nieuwe persistentie-opslagengines zorgden ervoor dat het framework grote datasets van enkele GB kon verwerken. Ondersteuning toevoegen van de KaartDB Met de database-engine kan het framework voorkomen dat alle gegevens in het geheugen worden opgeslagen en dus grote gegevens kunnen verwerken. De standaard InMemory-engine is opnieuw ontworpen om efficiënter te zijn, terwijl de MongoDB-engine is verwijderd vanwege prestatieproblemen.
  2. Verbeterde en vereenvoudigde Framework-architectuur: Het abstractieniveau wordt aanzienlijk verminderd en verschillende kerncomponenten worden opnieuw ontworpen. Met name de persistentieopslagmechanismen worden herschreven en verschillende onnodige functies en gegevensstructuren worden verwijderd.
  3. Nieuwe "Scikit-Learn-like" openbare API's: Alle openbare methoden van de algoritmen zijn gewijzigd om te lijken op Python's Scikit-Learn API's (het fit / predict / transform-paradigma). De nieuwe openbare methoden zijn flexibeler, gemakkelijker en vriendelijker in het gebruik.
  4. Vereenvoudig het ontleden van gegevens: Het nieuwe framework wordt geleverd met een reeks gemaksmethoden waarmee CSV- of tekstbestanden snel kunnen worden geparseerd en omgezet in Dataset-objecten.
  5. Verbeterde documentatie: Alle openbare / beschermde klassen en methoden van het Framework zijn gedocumenteerd met Javadoc-opmerkingen. Bovendien biedt de nieuwe versie verbeterde JUnit-tests die geweldige voorbeelden zijn van het gebruik van elk algoritme van het framework.
  6. Nieuwe Apache-licentie: De softwarelicentie van het framework is gewijzigd van "GNU General Public License v3.0' als 'Apache-licentie, versie 2.0'. De nieuwe licentie is permissief en maakt herverdeling binnen commerciële software mogelijk.

Omdat een groot deel van het framework herschreven is om het efficiënter en gebruiksvriendelijker te maken, is versie 0.6.0 dat wel niet achterwaarts compatibel met eerdere versies van het framework. Ten slotte is het raamwerk van Alpha overgegaan naar de bètafase en moet het als stabieler worden beschouwd.

Hoe te gebruiken

In een eerdere blogpost hebben we een gedetailleerde installatiehandleiding over hoe het Framework te installeren. Deze gids is nog steeds geldig voor de nieuwe versie. Daarnaast zijn er in deze nieuwe versie meerdere te vinden Code voorbeelden over het gebruik van de modellen en de algoritmen van het Framework.

Volgende stappen en roadmap

De ontwikkeling van het framework wordt voortgezet en de volgende verbeteringen moeten worden aangebracht vóór de release van versie 1.0:

  1. UsING Framework van console: Hoewel het belangrijkste doel van het framework is om de ontwikkeling van Machine Learning-applicaties te ondersteunen, moet het gemakkelijker worden gemaakt om door niet-Java-ontwikkelaars te worden gebruikt. Volgens een vergelijkbare aanpak als Mahout zou het raamwerk toegang moeten bieden tot de algoritmen met console-opdrachten. De interface moet eenvoudig en gebruiksvriendelijk zijn en de verschillende algoritmen moeten gemakkelijk kunnen worden gecombineerd.
  2. Ondersteuning voor multi-threading: Het framework gebruikt momenteel alleen threads voor opschoningsprocessen en asynchroon schrijven naar schijf. Desalniettemin kunnen sommige algoritmen parallel worden geschakeld en dit zal de uitvoeringstijden aanzienlijk verkorten. De oplossing moet in deze gevallen elegant zijn en de interne logica / wiskunde van de machine learning-algoritmen zo min mogelijk wijzigen.
  3. Verminder het gebruik van 2D-arrays en matrices: Een klein aantal algoritmen gebruikt nog steeds 2D-arrays en matrices. Dit zorgt ervoor dat alle gegevens in het geheugen worden geladen, wat de grootte van de dataset beperkt die kan worden gebruikt. Sommige algoritmen (zoals PCA) moeten opnieuw worden geïmplementeerd om het gebruik van matrices te vermijden, terwijl we voor andere (zoals GaussianDPMM, MultinomialDPMM enz.) Spaarzame matrices moeten gebruiken.

Andere belangrijke taken die in de komende versies moeten worden gedaan:

  1. Voeg nieuwe Machine Learning-algoritmen toe: Het raamwerk kan worden uitgebreid om verschillende geweldige algoritmen te ondersteunen, zoals Mixture of Gaussians, Gaussian Processes, k-NN, Decision Trees, Factor Analysis, SVD, PLSI, Artificial Neural Networks etc.
  2. Documentatie verbeteren, Test dekking & Code voorbeelden: Maak een betere documentatie, verbeter JUnit-tests, verbeter code-opmerkingen, geef betere voorbeelden over hoe de algoritmen te gebruiken enz.
  3. Architectuur verbeteren & Optimaliseer code: Verdere vereenvoudiging en verbeteringen aan de architectuur van het raamwerk, abstractie rationaliseren, het ontwerp verbeteren, snelheid en geheugengebruik optimaliseren enz.

Zoals je kunt zien is het een lange weg en ik kan wel wat hulp gebruiken. Als je klaar bent voor de uitdaging stuur me een lijn of stuur uw pull-verzoek op github.

Danksagung

ik zou graag bedanken Eleftherios Bampaletakis voor zijn waardevolle inbreng in het verbeteren van de architectuur van het Framework. Ik wil ook graag bedanken ej-technologieën GmbH voor het verstrekken van een licentie voor hun Java Profiler. Bovendien mijn complimenten Jan Kotek voor zijn geweldige werk in de MapDB-opslagmotor. Last but not least, mijn liefde voor mijn vriendin Kyriaki voor het verdragen van mij.

Vergeet niet de code van Datumbox v0.6.0 te downloaden van GitHub. De bibliotheek is ook beschikbaar op Maven Centrale Repository. Bekijk het volgende voor meer informatie over het gebruik van de bibliotheek in uw Java-project gids of lees de instructies op de hoofdpagina van onze Github-repo.

Ik kijk uit naar uw opmerkingen en aanbevelingen. Pull-aanvragen zijn altijd welkom! 🙂

Tijdstempel:

Meer van Datumbox