Datumbox Machine Learning Framework 0.6.0 a publié PlatoBlockchain Data Intelligence. Recherche verticale. Aï.

Lancement de Datumbox Machine Learning Framework 0.6.0

La nouvelle version de Datumbox Machine Learning Framework est sortie! Téléchargez-le maintenant sur Github or Dépôt central de Maven.

Ce qui est nouveau?

L'objectif principal de Version 0.6.0 est d'étendre le Framework pour gérer les Big Data, améliorer l'architecture du code et les API publiques, simplifier l'analyse des données, améliorer la documentation et passer à une licence permissive.

Voyons en détail les changements de cette version:

  1. Gérer des données volumineuses: La gestion améliorée de la mémoire et les nouveaux moteurs de stockage de persistance ont permis au framework de gérer de grands ensembles de données de plusieurs Go. Ajout de la prise en charge du MapDB Le moteur de base de données permet au framework d'éviter de stocker toutes les données en mémoire et ainsi de pouvoir gérer des données volumineuses. Le moteur InMemory par défaut est repensé pour être plus efficace tandis que le moteur MongoDB a été supprimé en raison de problèmes de performances.
  2. Architecture de Framework améliorée et simplifiée: Le niveau d'abstraction est considérablement réduit et plusieurs composants de base sont repensés. En particulier, les mécanismes de stockage de persistance sont réécrits et plusieurs fonctionnalités et structures de données inutiles sont supprimées.
  3. Nouvelles API publiques «de type Scikit-Learn»: Toutes les méthodes publiques des algorithmes sont modifiées pour ressembler aux API Scikit-Learn de Python (le paradigme fit / prédire / transformer). Les nouvelles méthodes publiques sont plus flexibles, plus faciles et plus conviviales à utiliser.
  4. Simplifiez l'analyse des données: Le nouveau framework est livré avec un ensemble de méthodes pratiques qui permettent l'analyse rapide des fichiers CSV ou texte et leur conversion en objets Dataset.
  5. Documentation améliorée: Toutes les classes et méthodes publiques / protégées du Framework sont documentées à l'aide de commentaires Javadoc. De plus, la nouvelle version fournit des tests JUnit améliorés qui sont d'excellents exemples d'utilisation de chaque algorithme du framework.
  6. Nouvelle licence Apache: La licence du logiciel du framework a changé de "GNU General Public License v3.0"Pour"Apache License, Version 2.0«. La nouvelle licence est permissive et permet la redistribution au sein d'un logiciel commercial.

Puisqu'une grande partie du framework a été réécrite pour le rendre plus efficace et plus facile à utiliser, la version 0.6.0 est pas rétrocompatible avec les versions antérieures du framework. Enfin, le framework est passé de la phase de développement Alpha à la phase de développement Beta et il devrait être considéré comme plus stable.

Comment l'utiliser

Dans un précédent article de blog, nous avons fourni un guide d'installation détaillé sur la façon d'installer le Framework. Ce guide est toujours valable pour la nouvelle version. De plus, dans cette nouvelle version, vous pouvez trouver plusieurs Exemples de code sur la façon d'utiliser les modèles et les algorithmes du Framework.

Prochaines étapes et feuille de route

Le développement du framework se poursuivra et les améliorations suivantes doivent être apportées avant la sortie de la version 1.0:

  1. Usingurgiter Framework de la console: Même si l'objectif principal du framework est d'aider au développement d'applications d'apprentissage automatique, il devrait être plus facile à utiliser par des développeurs non Java. Suivant une approche similaire à Mahout, le framework devrait fournir un accès aux algorithmes à l'aide des commandes de la console. L'interface doit être simple, facile à utiliser et les différents algorithmes doivent être facilement combinés.
  2. Prise en charge du multi-threading: Le framework utilise actuellement des threads uniquement pour les processus de nettoyage et l'écriture asynchrone sur le disque. Néanmoins, certains algorithmes peuvent être parallélisés, ce qui réduira considérablement les temps d'exécution. La solution dans ces cas doit être élégante et modifier le moins possible la logique / mathématique interne des algorithmes d'apprentissage automatique.
  3. Réduisez l'utilisation de tableaux et matrices 2D: Un petit nombre d'algorithmes utilise encore des tableaux et des matrices 2D. Cela entraîne le chargement de toutes les données en mémoire, ce qui limite la taille du jeu de données pouvant être utilisé. Certains algorithmes (tels que PCA) devraient être réimplémentés pour éviter l'utilisation de matrices tandis que pour d'autres (comme GaussianDPMM, MultinomialDPMM, etc.), nous devrions utiliser des matrices clairsemées.

Autres tâches importantes à effectuer dans les versions à venir:

  1. Incluez de nouveaux algorithmes d'apprentissage automatique: Le cadre peut être étendu pour prendre en charge plusieurs excellents algorithmes tels que le mélange de gaussiens, les processus gaussiens, k-NN, les arbres de décision, l'analyse factorielle, SVD, PLSI, les réseaux de neurones artificiels, etc.
  2. Améliorer la documentation, Couverture de test & Exemples de code: Créez une meilleure documentation, améliorez les tests JUnit, améliorez les commentaires de code, fournissez de meilleurs exemples sur la façon d'utiliser les algorithmes, etc.
  3. Améliorer l'architecture & Optimiser le code: Poursuite de la simplification et des améliorations de l'architecture du framework, rationalisation de l'abstraction, amélioration de la conception, optimisation de la vitesse et de la consommation de mémoire, etc.

Comme vous pouvez le voir, le chemin est long et je pourrais avoir besoin d'aide. Si vous êtes prêt à relever le défi laissez moi un mot ou envoyez votre pull request sur github.

Remerciements

Je tiens à remercier Eleftherios Bampaletakis pour sa contribution inestimable à l'amélioration de l'architecture du cadre. Je tiens également à remercier ej-technologies GmbH pour m'avoir fourni une licence pour leur Java Profiler. De plus mes félicitations à Jan Kotek pour son travail incroyable dans le moteur de stockage MapDB. Dernier point mais non le moindre, mon amour pour ma petite amie Kyriaki pour m'avoir supporté.

N'oubliez pas de télécharger le code de Datumbox v0.6.0 depuis Github. La bibliothèque est également disponible sur Dépôt central de Maven. Pour plus d'informations sur l'utilisation de la bibliothèque dans votre projet Java, consultez ce qui suit guide ou lisez les instructions sur la page principale de notre dépôt Github.

J'attends vos commentaires et recommandations avec impatience. Les demandes de tirage sont toujours les bienvenues! 🙂

Horodatage:

Plus de Boîte de données