ELKI (también en GitHub ) es un proyecto de código abierto de minería de datos y ciencia de datos. Es único con respecto a su arquitectura modular: puede combinar algoritmos, funciones de distancia e índices de aceleración con muy pocas limitaciones (por supuesto, los algoritmos que no usan distancias no se pueden combinar con distancias). No es el código más fácil debido a la eficiencia. Para la minería de datos, debe tener cuidado con la memoria: no se debe usar ArrayList<Integer>
si desea escalabilidad.
Debido a la arquitectura modular, es fácil contribuir con módulos pequeños, como una función o algoritmo de distancia única.
Mantenemos una lista de ideas de proyectos de minería de datos , aproximadamente agrupadas por dificultad. La mayoría de los proyectos son la implementación de alguna variante de un algoritmo. ELKI tiene como objetivo permitir estudios comparativos de algoritmos, por lo que tratamos de permitir cualquier combinación y cubrir también variantes de algoritmos. Por ejemplo, con k-means, no solo tenemos el algoritmo Lloyds, sino 10 variantes del tema general k-means. Más de 220 artículos han sido (al menos parcialmente) reimplementados en ELKI.
Al implementar todo en la misma herramienta, obtenemos resultados mucho más comparables. Si usa R para la evaluación comparativa, generalmente está comparando manzanas y naranjas. k-means en R en sí mismo es en realidad un viejo programa Fortran, y muy rápido. k-significa en R pero en el paquete "flexclust" es 100 veces más lento, porque está escrito en código R real. Por lo tanto, no confíe en un punto de referencia en R ... también, los módulos R tienden a ser incompatibles, por lo que a menudo no puede usar la distancia A desde los módulos A con el algoritmo B desde el módulo B. En ELKI intentamos compartir tanto código como posible a través de las implementaciones para reducir tales artefactos (por supuesto, nunca será posible tener un punto de referencia 100% justo, siempre hay espacio para la optimización), sino también para permitir la combinación de módulos fácilmente.
Puede comenzar con algo pequeño, como la variante k-means de Hartigan & Wong, y luego continuar con k-means esféricos (que están destinados a datos escasos, donde pueden ser necesarias diferentes optimizaciones de rendimiento) y continuar agregando un mejor soporte para datos categóricos; o agregando funcionalidad de indexación.
También me encantaría ver una mejor interfaz de usuario para ELKI , pero eso es un gran esfuerzo.