ELKI ( Environment for Developing KDD-Applications Supported by Index-Structures ) es un marco de software para minería de datos (KDD, descubrimiento de conocimiento en bases de datos) desarrollado para su uso en investigación y docencia. Fue creado originalmente por la unidad de investigación de sistemas de bases de datos de la LMU de Múnich , Alemania, bajo la dirección del profesor Hans-Peter Kriegel . El proyecto ha continuado en la Universidad Técnica de Dortmund , Alemania. Su objetivo es permitir el desarrollo y la evaluación de algoritmos avanzados de minería de datos y su interacción con las estructuras de índices de las bases de datos .
Descripción
El marco ELKI está escrito en Java y se basa en una arquitectura modular. La mayoría de los algoritmos incluidos actualmente realizan agrupamiento , detección de valores atípicos [ 1 ] e índices de bases de datos . La arquitectura orientada a objetos permite la combinación de algoritmos, tipos de datos, funciones de distancia, índices y medidas de evaluación arbitrarias . El compilador justo a tiempo de Java optimiza todas las combinaciones en un grado similar, lo que hace que los resultados de las pruebas de rendimiento sean más comparables si comparten gran parte del código. Al desarrollar nuevos algoritmos o estructuras de índices, los componentes existentes se pueden reutilizar fácilmente, y la seguridad de tipos de Java detecta muchos errores de programación en tiempo de compilación.
ELKI es una herramienta gratuita para el análisis de datos, centrada principalmente en la detección de patrones y puntos de datos inusuales sin necesidad de etiquetas. Está escrita en Java y busca ser rápida y capaz de manejar grandes conjuntos de datos mediante el uso de estructuras especiales. Está diseñada para que investigadores y estudiantes puedan añadir sus propios métodos y comparar diferentes algoritmos fácilmente. [ 2 ]
ELKI se ha utilizado en ciencia de datos para agrupar codas de cachalotes , [ 3 ] para agrupar fonemas , [ 4 ] para la detección de anomalías en operaciones de vuelos espaciales , [ 5 ] para la redistribución de bicicletas compartidas , [ 6 ] y predicción de tráfico. [ 7 ]
Objetivos
El proyecto universitario se desarrolla para su uso en la docencia y la investigación . El código fuente se escribe teniendo en cuenta la extensibilidad y la reutilización, pero también se optimiza para el rendimiento. La evaluación experimental de los algoritmos depende de muchos factores ambientales y los detalles de implementación pueden tener un gran impacto en el tiempo de ejecución. [ 8 ] ELKI tiene como objetivo proporcionar una base de código compartida con implementaciones comparables de muchos algoritmos.
Como proyecto de investigación, actualmente no ofrece integración con aplicaciones de inteligencia empresarial ni interfaz con sistemas de gestión de bases de datos comunes mediante SQL . La licencia copyleft ( AGPL ) también puede dificultar su integración en productos comerciales; sin embargo, puede utilizarse para evaluar algoritmos antes de desarrollar una implementación propia para un producto comercial. Además, la aplicación de los algoritmos requiere conocimientos sobre su uso, parámetros y el estudio de la bibliografía original. El público objetivo son estudiantes , investigadores , científicos de datos e ingenieros de software .
Arquitectura
ELKI se basa en un núcleo inspirado en las bases de datos , que utiliza una disposición de datos vertical que almacena los datos en grupos de columnas (similar a las familias de columnas en las bases de datos NoSQL ). Este núcleo proporciona funcionalidades de búsqueda del vecino más cercano , búsqueda por rango/radio y consulta de distancia con aceleración de índices para una amplia gama de medidas de disimilitud . Los algoritmos basados en dichas consultas (por ejemplo, el algoritmo de k-vecinos más cercanos , el factor de valores atípicos locales y DBSCAN ) se pueden implementar fácilmente y se benefician de la aceleración de índices. El núcleo de la base de datos también proporciona colecciones rápidas y eficientes en memoria para colecciones de objetos y estructuras asociativas como listas de vecinos más cercanos.
ELKI utiliza ampliamente las interfaces de Java, lo que permite extenderlo fácilmente en muchos aspectos. Por ejemplo, se pueden añadir y combinar tipos de datos personalizados, funciones de distancia, estructuras de índices, algoritmos, analizadores de entrada y módulos de salida sin modificar el código existente. Esto incluye la posibilidad de definir una función de distancia personalizada y utilizar índices existentes para acelerar el proceso.
ELKI utiliza una arquitectura de cargador de servicios para permitir la publicación de extensiones como archivos jar separados .
ELKI utiliza colecciones optimizadas para mejorar el rendimiento en lugar de la API estándar de Java. [ 9 ] Los bucles for, por ejemplo, se escriben de forma similar a los iteradores de C++ :
for ( DBIDIter iter = ids . iter (); iter . valid (); iter . advance ()) { relation . get ( iter ); // Por ejemplo, obtener el objeto referenciado idcollection . add ( iter ); // Por ejemplo, agregar la referencia a una colección DBID }A diferencia de los iteradores típicos de Java (que solo pueden iterar sobre objetos), este método ahorra memoria, ya que el iterador puede usar internamente valores primitivos para el almacenamiento de datos. La reducción de la recolección de basura mejora el tiempo de ejecución. Bibliotecas de colecciones optimizadas como GNU Trove3 y Kolobokefastutil emplean optimizaciones similares. ELKI incluye estructuras de datos como colecciones de objetos y montículos (por ejemplo, para la búsqueda del vecino más cercano ) que utilizan dichas optimizaciones.
Visualización
El módulo de visualización utiliza SVG para la salida de gráficos escalables y Apache Batik para la representación de la interfaz de usuario, así como la exportación sin pérdida a PostScript y PDF para su fácil inclusión en publicaciones científicas en LaTeX . Los archivos exportados se pueden editar con editores SVG como Inkscape . Gracias al uso de hojas de estilo en cascada , el diseño gráfico se puede modificar fácilmente. Lamentablemente, Batik es bastante lento y consume mucha memoria, por lo que las visualizaciones no son muy escalables a grandes conjuntos de datos (para conjuntos de datos más grandes, solo se visualiza una submuestra de los datos por defecto).
Premios
La versión 0.4, presentada en el "Simposio sobre bases de datos espaciales y temporales" de 2011, que incluía varios métodos para la detección de valores atípicos espaciales, [ 10 ] ganó el premio al "mejor artículo de demostración" de la conferencia.
Algoritmos incluidos
Seleccionar algoritmos incluidos: [ 11 ]
- Análisis de clúster :
- Agrupamiento K-means (incluidos algoritmos rápidos como Elkan, Hamerly, Annulus y Exponion k-Means, y variantes robustas como k-means--)
- Agrupamiento K-medianas
- Agrupamiento K-medoides (PAM) (incluyendo FastPAM y aproximaciones como CLARA, CLARANS)
- Algoritmo de maximización de la esperanza para el modelado de mezclas gaussianas
- Agrupamiento jerárquico (incluidos los algoritmos rápidos SLINK, CLINK, NNChain y Anderberg)
- Agrupamiento de enlace simple
- Agrupación de líderes
- DBSCAN (Agrupamiento espacial basado en densidad de aplicaciones con ruido, con aceleración de índice completa para funciones de distancia arbitrarias)
- OPTICS (Ordering Points To Identify the Clustering Structure), incluyendo las extensiones OPTICS-OF, DeLi-Clu, HiSC, HiCO y DiSH.
- HDBSCAN
- Agrupamiento por desplazamiento de la media
- Agrupación BIRCH
- SUBCLU (Agrupación de subespacios conectados por densidad para datos de alta dimensión)
- Agrupación CLIQUE
- Agrupamiento ORCLUS y PROCLUS
- Agrupación de COPAC, ERiC y 4C
- Agrupación de efectivo
- Agrupación de subespacios DOC y FastDOC
- Agrupamiento P3C
- Algoritmo de agrupamiento de dosel
- Detección de anomalías :
- Detección de valores atípicos mediante el algoritmo k-vecinos más cercanos
- LOF (Factor de valores atípicos locales)
- LoOP (Probabilidades de valores atípicos locales)
- ÓPTICA -DE
- DB-Outlier (Valores atípicos basados en la distancia)
- LOCI (Integral de Correlación Local)
- LDOF (Factor de valores atípicos basado en la distancia local)
- EM - Valor atípico
- SOD (Grado de valores atípicos del subespacio)
- COP (Probabilidades de valores atípicos de correlación)
- Minería de conjuntos de elementos frecuentes y aprendizaje de reglas de asociación
- Algoritmo Apriori
- Brillo
- FP-crecimiento
- Reducción de dimensionalidad
- Estructuras de índices espaciales y otros índices de búsqueda:
- Evaluación:
- Precisión y exhaustividad , puntuación F1 , precisión media
- Características operativas del receptor (curva ROC)
- Ganancia acumulada descontada (incluida la NDCG)
- Índice de siluetas
- Índice de Davies-Bouldin
- Índice de Dunn
- Validación de clústeres basada en densidad (DBCV)
- Visualización
- Diagramas de dispersión
- Histogramas
- Coordenadas paralelas (también en 3D, usando OpenGL )
- Otro:
- Distribuciones estadísticas y numerosos estimadores de parámetros , incluidos estimadores robustos basados en MAD y en L-momentos.
- Distorsión temporal dinámica
- Detección de puntos de cambio en series temporales
- Estimadores de dimensionalidad intrínseca
Historial de versiones
La versión 0.1 (julio de 2008) contenía varios algoritmos de análisis de clústeres y detección de anomalías , así como algunas estructuras de índices como el árbol R* . El enfoque de la primera versión estaba en los algoritmos de agrupamiento de subespacios y agrupamiento de correlación . [ 12 ]
La versión 0.2 (julio de 2009) añadió funcionalidad para el análisis de series temporales , en particular funciones de distancia para series temporales. [ 13 ]
La versión 0.3 (marzo de 2010) amplió la selección de algoritmos de detección de anomalías y módulos de visualización. [ 14 ]
La versión 0.4 (septiembre de 2011) añadió algoritmos para la minería de datos geográficos y soporte para estructuras de índices y bases de datos multirrelacionales. [ 10 ]
La versión 0.5 (abril de 2012) se centra en la evaluación de los resultados del análisis de clústeres , añadiendo nuevas visualizaciones y algunos algoritmos nuevos. [ 15 ]
La versión 0.6 (junio de 2013) introduce una nueva adaptación 3D de coordenadas paralelas para la visualización de datos, además de las adiciones habituales de algoritmos y estructuras de índices. [ 16 ]
La versión 0.7 (agosto de 2015) añade soporte para tipos de datos inciertos y algoritmos para el análisis de datos inciertos. [ 17 ]
La versión 0.7.5 (febrero de 2019) añade algoritmos de agrupamiento adicionales, algoritmos de detección de anomalías, medidas de evaluación y estructuras de indexación. [ 18 ]
La versión 0.8 (octubre de 2022) agrega la creación automática de índices, la recolección de basura y la búsqueda de prioridad incremental, así como muchos más algoritmos como BIRCH . [ 19 ]
Aplicaciones similares
- scikit-learn : biblioteca de aprendizaje automático en Python
- Weka : Un proyecto similar de la Universidad de Waikato, centrado en algoritmos de clasificación .
- RapidMiner : Una aplicación disponible comercialmente (existe una versión restringida de código abierto).
- KNIME : Una plataforma de código abierto que integra varios componentes para el aprendizaje automático y la minería de datos.
Véase también
Referencias
- ↑ Hans-Peter Kriegel , Peer Kröger, Arthur Zimek (2009). "Técnicas de detección de valores atípicos (tutorial)" (PDF) . XIII Conferencia Asia-Pacífico sobre descubrimiento de conocimiento y minería de datos (PAKDD 2009) . Bangkok, Tailandia . Consultado el 26 de marzo de 2010 .
{{cite journal}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ "ELKI Data Mining Framework" . elki-project.github.io . Consultado el 30 de mayo de 2024 .
- ↑ Gero, Shane; Whitehead, Hal; Rendell, Luke (2016). "Indicadores de identidad a nivel individual, de unidad y de clan vocal en las codas de los cachalotes" . Royal Society Open Science . 3 (1) 150372. Bibcode : 2016RSOS....350372G . doi : 10.1098/rsos.150372 . ISSN 2054-5703 . PMC 4736920. PMID 26909165 .
- ↑ Stahlberg, Felix; Schlippe, Tim; Vogel, Stephan; Schultz, Tanja (2013). «Extracción de pronunciación a partir de secuencias de fonemas mediante alineación palabra-fonema interlingüística». Procesamiento estadístico del lenguaje y del habla . Notas de clase en informática. Vol. 7978. págs. 260–272 . doi : 10.1007/978-3-642-39593-2_23 . ISBN 978-3-642-39592-5ISSN 0302-9743
- ↑ Verzola, Ivano; Donati, Alessandro; Martínez, José; Schubert, Matías; Somodi, Laszlo (2016). «Proyecto Sibyl: Un sistema de detección de novedades para operaciones de vuelos espaciales tripulados». Conferencia Space Ops 2016. doi : 10.2514/6.2016-2405 . ISBN 978-1-62410-426-8.
- ↑ Adham, Manal T.; Bentley, Peter J. (2016). "Evaluación de métodos de agrupamiento dentro del algoritmo de ecosistema artificial y su aplicación a la redistribución de bicicletas en Londres". Biosystems . 146 : 43–59 . Bibcode : 2016BiSys.146...43A . doi : 10.1016/j.biosystems.2016.04.008 . ISSN 0303-2647 . PMID 27178785 .
- ↑ Wisely, Michael; Hurson, Ali; Sarvestani, Sahra Sedigh (2015). «Un marco de simulación extensible para evaluar algoritmos centralizados de predicción de tráfico». Conferencia Internacional sobre Vehículos Conectados y Exposición (ICCVE) de 2015. págs. 391–396 . doi : 10.1109/ICCVE.2015.86 . ISBN 978-1-5090-0264-1. S2CID 1297145 .
- ↑ Kriegel, Hans-Peter ; Schubert, Erich; Zimek, Arthur (2016). "El (oscuro) arte de la evaluación en tiempo de ejecución: ¿Estamos comparando algoritmos o implementaciones?". Knowledge and Information Systems . 52 (2): 341–378 . doi : 10.1007/s10115-016-1004-2 . ISSN 0219-1377 . S2CID 40772241 .
- ↑ "DBIDs" . Página principal de ELKI . Consultado el 13 de diciembre de 2016 .
- 1 2 Elke Achtert, Achmed Hettab, Hans-Peter Kriegel , Erich Schubert, Arthur Zimek (2011). Detección de valores atípicos espaciales: datos, algoritmos, visualizaciones . XII Simposio Internacional sobre Bases de Datos Espaciales y Temporales (SSTD 2011). Minneapolis, MN: Springer. doi : 10.1007/978-3-642-22922-0_41 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ extracto de "Algoritmos de minería de datos en ELKI" . Consultado el 17 de octubre de 2019 .
- ↑ Elke Achtert, Hans-Peter Kriegel , Arthur Zimek (2008). ELKI: Un sistema de software para la evaluación de algoritmos de agrupamiento de subespacios (PDF) . Actas de la 20.ª conferencia internacional sobre gestión de bases de datos científicas y estadísticas (SSDBM 08). Hong Kong, China: Springer. doi : 10.1007/978-3-540-69497-7_41 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ Elke Achtert, Thomas Bernecker, Hans-Peter Kriegel , Erich Schubert, Arthur Zimek (2009). ELKI en el tiempo: ELKI 0.2 para la evaluación del rendimiento de medidas de distancia para series temporales (PDF) . Actas del 11.º Simposio Internacional sobre Avances en Bases de Datos Espaciales y Temporales (SSTD 2010). Aalborg, Dinamarca: Springer. doi : 10.1007/978-3-642-02982-0_35 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ Elke Achtert, Hans-Peter Kriegel , Lisa Reichert, Erich Schubert, Remigius Wojdanowski, Arthur Zimek (2010). Visual Evaluation of Outlier Detection Models . 15th International Conference on Database Systems for Advanced Applications (DASFAA 2010). Tsukuba, Japón: Springer. doi : 10.1007/978-3-642-12098-5_34 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ Elke Achtert, Sascha Goldhofer, Hans-Peter Kriegel , Erich Schubert, Arthur Zimek (2012). Evaluación de métricas de agrupamiento y soporte visual . 28.ª Conferencia Internacional sobre Ingeniería de Datos (ICDE). Washington, DC. doi : 10.1109/ICDE.2012.128 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ Elke Achtert, Hans-Peter Kriegel , Erich Schubert, Arthur Zimek (2013). Minería de datos interactiva con árboles de coordenadas paralelas 3D . Actas de la Conferencia Internacional ACM sobre Gestión de Datos ( SIGMOD ). Ciudad de Nueva York, NY. doi : 10.1145/2463676.2463696 .
{{cite conference}}: CS1 maint: varios nombres: lista de autores ( enlace ) - ↑ Erich Schubert; Alexander Koos; Tobias Emrich; Andreas Züfle; Klaus Arthur Schmid; Arthur Zimek (2015). "Un marco para la agrupación de datos inciertos" (PDF) . Actas de la Fundación VLDB . 8 (12): 1976– 1987. doi : 10.14778/2824032.2824115 .
- ↑ Schubert, Erich; Zimek, Arthur (10 de febrero de 2019). "ELKI: Una gran biblioteca de código abierto para el análisis de datos - ELKI Release 0.7.5 "Heidelberg"". arXiv : 1902.03616 [ cs.LG ].
- ↑ Schubert, Erich (2022). Indexación automática para la búsqueda de similitud en ELKI . Búsqueda de similitud y aplicaciones. pp. 205–213 . doi : 10.1007/978-3-031-17849-8_16 .
Enlaces externos
- Página web oficial de ELKI con descargas y documentación.
- Software de minería de datos y aprendizaje automático
- Aplicaciones gratuitas de inteligencia artificial
- Software gratuito para análisis de datos
- Software científico gratuito
- Software libre programado en Java.
- Software que utiliza la Licencia Pública General Affero de GNU.