Datumbox Machine Learning Framework 0.6.0 Lanzado PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Lanzamiento de Datumbox Machine Learning Framework 0.6.0

¡Se ha lanzado la nueva versión de Datumbox Machine Learning Framework! Descárgalo ahora desde Github or Repositorio central de Maven.

¿Que es nuevo?

El foco principal de Versión 0.6.0 es extender el marco para manejar grandes datos, mejorar la arquitectura del código y las API públicas, simplificar el análisis de datos, mejorar la documentación y pasar a una licencia permisiva.

Veamos en detalle los cambios de esta versión:

  1. Manejar grandes datos: La gestión de memoria mejorada y los nuevos motores de almacenamiento de persistencia permitieron que el marco manejara grandes conjuntos de datos de varios GB de tamaño. Añadiendo soporte de la MapaDB El motor de base de datos permite que el marco evite almacenar todos los datos en la memoria y así poder manejar datos grandes. El motor InMemory predeterminado se rediseñó para ser más eficiente, mientras que el motor MongoDB se eliminó debido a problemas de rendimiento.
  2. Arquitectura de marco mejorada y simplificada: El nivel de abstracción se reduce significativamente y se rediseñan varios componentes centrales. En particular, se reescriben los mecanismos de almacenamiento de persistencia y se eliminan varias características y estructuras de datos innecesarias.
  3. Nuevas API públicas de tipo "Scikit-Learn": Todos los métodos públicos de los algoritmos se cambian para parecerse a las API de Scikit-Learn de Python (el paradigma de ajuste / predicción / transformación). Los nuevos métodos públicos son más flexibles, más fáciles y más amigables de usar.
  4. Simplifique el análisis de datos: El nuevo marco viene con un conjunto de métodos convenientes que permiten el análisis rápido de archivos CSV o de texto y su conversión a objetos de conjunto de datos.
  5. Documentación mejorada: Todas las clases y métodos públicos / protegidos del Framework se documentan mediante comentarios de Javadoc. Además, la nueva versión proporciona pruebas JUnit mejoradas que son excelentes ejemplos de cómo usar todos los algoritmos del marco.
  6. Nueva licencia de Apache: La licencia de software del marco cambió de "GNU General Public License v3.0" a "Licencia de Apache, versión 2.0“. La nueva licencia es permisiva y permite la redistribución dentro del software comercial.

Dado que una gran parte del marco se reescribió para hacerlo más eficiente y más fácil de usar, la versión 0.6.0 es no compatible con versiones anteriores con versiones anteriores del marco. Finalmente, el marco pasó de la fase de desarrollo Alfa a la Beta y debería considerarse más estable.

Cómo usarlo

En una publicación de blog anterior, proporcionamos una guía de instalación detallada sobre cómo instalar el Framework. Esta guía sigue siendo válida para la nueva versión. Adicionalmente en esta nueva versión puedes encontrar varios Ejemplos de código sobre cómo utilizar los modelos y los algoritmos del Framework.

Próximos pasos y hoja de ruta

El desarrollo del marco continuará y se deben realizar las siguientes mejoras antes del lanzamiento de la versión 1.0:

  1. UsIng. Marco desde la consola: Aunque el objetivo principal del marco es ayudar al desarrollo de aplicaciones de aprendizaje automático, debería facilitar su uso por parte de desarrolladores que no sean de Java. Siguiendo un enfoque similar al de Mahout, el marco debería proporcionar acceso a los algoritmos mediante comandos de consola. La interfaz debe ser simple, fácil de usar y los diferentes algoritmos deben combinarse fácilmente.
  2. Soporte de subprocesos múltiples: El marco actualmente usa subprocesos solo para procesos de limpieza y escritura asincrónica en el disco. Sin embargo, algunos de los algoritmos pueden paralelizarse y esto reducirá significativamente los tiempos de ejecución. La solución en estos casos debe ser elegante y debe modificar lo menos posible la lógica / matemática interna de los algoritmos de aprendizaje automático.
  3. Reduzca el uso de matrices y matrices 2d: Un pequeño número de algoritmos todavía utiliza matrices y matrices 2d. Esto hace que todos los datos se carguen en la memoria, lo que limita el tamaño del conjunto de datos que se puede usar. Algunos algoritmos (como PCA) deben volver a implementarse para evitar el uso de matrices, mientras que para otros (como GaussianDPMM, MultinomialDPMM, etc.) debemos usar matrices dispersas.

Otras tareas importantes que deberían realizarse en las próximas versiones:

  1. Incluya nuevos algoritmos de aprendizaje automático: El marco se puede ampliar para admitir varios algoritmos excelentes, como mezcla de gaussianos, procesos gaussianos, k-NN, árboles de decisión, análisis factorial, SVD, PLSI, redes neuronales artificiales, etc.
  2. Mejorar la documentación, Cobertura de prueba & Ejemplos de código: Cree una mejor documentación, mejore las pruebas de JUnit, mejore los comentarios de código, proporcione mejores ejemplos sobre cómo usar los algoritmos, etc.
  3. Mejorar la arquitectura & Optimizar código: Mayor simplificación y mejoras en la arquitectura del marco, racionalizar la abstracción, mejorar el diseño, optimizar la velocidad y el consumo de memoria, etc.

Como puede ver, es un camino largo y me vendría bien un poco de ayuda. Si estás preparado para el desafío déjame una línea o envíe su solicitud de extracción en github.

Agradecimientos

Me gustaría agradecer a Eleftherios Bampaletakis por su invaluable contribución a la mejora de la arquitectura del Marco. También me gustaría agradecer a ej-tecnologías GmbH por proporcionarme una licencia para su Java Profiler. Además, mis felicitaciones a Jan Kotek por su increíble trabajo en el motor de almacenamiento MapDB. Por último, pero no menos importante, mi amor por mi novia Kyriaki por aguantarme.

No olvide descargar el código de Datumbox v0.6.0 desde Github. La biblioteca también está disponible en Repositorio central de Maven. Para obtener más información sobre cómo usar la biblioteca en su proyecto Java, consulte lo siguiente guía o lea las instrucciones en la página principal de nuestro repositorio de Github.

Espero sus comentarios y recomendaciones. ¡Las solicitudes de extracción son siempre bienvenidas! 🙂

Sello de tiempo:

Mas de Caja de datos