ELKI ( Environment for DeveLoping KDD-Applications Supported by Index-Structures ) es un marco de software de minería de datos (KDD, descubrimiento de conocimiento en bases de datos) desarrollado para su uso en investigación y enseñanza. Originalmente estaba en la unidad de investigación de sistemas de bases de datos del profesor Hans-Peter Kriegel en la Universidad Ludwig Maximilian de Munich , Alemania, y ahora continúa 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 estructuras de índices de bases de datos .
Desarrollador (es) | Universidad Técnica de Dortmund ; inicialmente Universidad Ludwig Maximilian de Munich |
---|---|
Lanzamiento estable | 0.7.5 / 15 de febrero de 2019 |
Repositorio | |
Escrito en | Java |
Sistema operativo | Microsoft Windows , Linux , Mac OS |
Plataforma | Plataforma Java |
Tipo | Procesamiento de datos |
Licencia | AGPL (desde la versión 0.4.0) |
Sitio web | proyecto |
Descripción
El marco ELKI está escrito en Java y construido alrededor de una arquitectura modular. La mayoría de los algoritmos incluidos en la actualidad pertenecen a la agrupación en clústeres , la detección de valores atípicos [1] y los índices de bases de datos . La arquitectura orientada a objetos permite la combinación de algoritmos arbitrarios, tipos de datos, funciones de distancia , índices y medidas de evaluación. El compilador Just -In-Time de Java optimiza todas las combinaciones en un grado similar, haciendo que los resultados de la evaluación comparativa sean más comparables si comparten una 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 el momento de la compilación.
ELKI se ha utilizado en ciencia de datos, por ejemplo, para agrupar codas de cachalotes , [2] agrupamiento de fonemas , [3] para detección de anomalías en operaciones de vuelos espaciales , [4] para redistribución de bicicletas compartidas , [5] y predicción de tráfico. [6]
Objetivos
El proyecto universitario está desarrollado para su uso en la docencia y la investigación . El código fuente está escrito teniendo en cuenta la extensibilidad y la reutilización, pero también está optimizado para el rendimiento. La evaluación experimental de algoritmos depende de muchos factores ambientales y los detalles de implementación pueden tener un gran impacto en el tiempo de ejecución. [7] 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 o una interfaz a sistemas de administración de bases de datos comunes a través de SQL . La licencia copyleft ( AGPL ) también puede ser un obstáculo para la integración en productos comerciales; sin embargo, se puede utilizar para evaluar algoritmos antes de desarrollar una implementación propia para un producto comercial. Además, la aplicación de los algoritmos requiere conocimiento sobre su uso, parámetros y estudio de la literatura original. La audiencia son estudiantes , investigadores , científicos de datos e ingenieros de software .
Arquitectura
ELKI se modela en torno a un núcleo inspirado en una base de datos , que utiliza un diseño de datos vertical que almacena datos en grupos de columnas (similar a las familias de columnas en las bases de datos NoSQL ). Este núcleo de base de datos proporciona funciones de búsqueda de vecino más cercano, búsqueda de rango / radio y consulta de distancia con aceleración de índice para una amplia gama de medidas de disimilitud . Los algoritmos basados en tales consultas (por ejemplo , algoritmo de vecino más cercano k , factor de valor atípico local y DBSCAN ) se pueden implementar fácilmente y beneficiarse de la aceleración del índice. 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 hace un uso extensivo de las interfaces Java, por lo que se puede extender fácilmente en muchos lugares. Por ejemplo, se pueden agregar y combinar tipos de datos personalizados, funciones de distancia, estructuras de índice, 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 la aceleración.
ELKI utiliza una arquitectura de cargador de servicios para permitir la publicación de extensiones como archivos jar separados .
ELKI utiliza colecciones optimizadas para el rendimiento en lugar de la API estándar de Java. [8] Los bucles for, por ejemplo, se escriben de forma similar a los iteradores de C ++ :
para ( DBIDIter iter = ids . iter (); iter . valid (); iter . advance ()) { relación . obtener ( iter ); // Por ejemplo, obtenga el objeto referenciado idcollection . agregar ( iter ); // Por ejemplo, agregue la referencia a una colección DBID }
A diferencia de los iteradores Java típicos (que solo pueden iterar sobre objetos), esto conserva memoria, porque el iterador puede usar internamente valores primitivos para el almacenamiento de datos. La recolección de basura reducida mejora el tiempo de ejecución. Las bibliotecas de colecciones optimizadas como GNU Trove3 , Koloboke y fastutil emplean optimizaciones similares. ELKI incluye estructuras de datos tales como colecciones de objetos y montones (para, por ejemplo, la búsqueda del vecino más cercano ) usando tales 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érdidas a PostScript y PDF para una fácil inclusión en publicaciones científicas en LaTeX . Los archivos exportados se pueden editar con editores SVG como Inkscape . Dado que se utilizan hojas de estilo en cascada , el diseño gráfico puede rediseñarse fácilmente. Desafortunadamente, 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 una submuestra de los datos se visualiza de forma predeterminada).
Premios
La versión 0.4, presentada en el "Simposio sobre bases de datos espaciales y temporales" 2011, que incluyó varios métodos para la detección de valores atípicos espaciales, [9] ganó el premio al "mejor trabajo de demostración" de la conferencia.
Algoritmos incluidos
Seleccione los algoritmos incluidos: [10]
- Análisis de conglomerados :
- Agrupación de K-medias (incluidos algoritmos rápidos como Elkan, Hamerly, Annulus y Exponion k-Means, y variantes robustas como k-means--)
- Agrupación de medianas K
- Agrupación de K-medoides (PAM) (incluido FastPAM y aproximaciones como CLARA, CLARANS)
- Algoritmo de maximización de expectativas para el modelado de mezclas gaussianas
- Agrupación jerárquica (incluidos los algoritmos rápidos SLINK, CLINK, NNChain y Anderberg)
- Agrupación en clústeres de enlace único
- Agrupación de líderes
- DBSCAN (agrupamiento espacial de aplicaciones con ruido basado en densidad, con aceleración de índice total para funciones de distancia arbitrarias)
- OPTICS (puntos de pedido para identificar la estructura de agrupamiento), incluidas las extensiones OPTICS-OF, DeLi-Clu, HiSC, HiCO y DiSH
- HDBSCAN
- Media de cambio de agrupamiento
- Agrupación de abedul
- SUBCLU (agrupamiento subespacial conectado por densidad para datos de alta dimensión)
- Agrupación CLIQUE
- Agrupación de ORCLUS y PROCLUS
- Agrupación COPAC, ERiC y 4C
- Agrupación de EFECTIVO
- Agrupación subespacial DOC y FastDOC
- Agrupación en clústeres P3C
- Algoritmo de agrupación en clústeres de dosel
- Detección de anomalías :
- k-Detección de valores atípicos del vecino más cercano
- LOF (factor atípico local)
- 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 valor atípico basado en la distancia local)
- EM -Outlier
- SOD (grado atípico subespacial)
- COP (probabilidades de valores atípicos de correlación)
- Minería de elementos frecuente y aprendizaje de reglas de asociación
- Algoritmo a priori
- Brillo
- FP-crecimiento
- Reducción de dimensionalidad
- Análisis de componentes principales
- Escalamiento multidimensional
- Incrustación de vecinos estocásticos distribuidos en T (t-SNE)
- Estructuras de índices espaciales y otros índices de búsqueda:
- Árbol R
- R * -árbol
- Árbol M
- árbol kd
- Árbol X
- Árbol de la cubierta
- iDistance
- Descenso NN
- Hash sensible a la localidad (LSH)
- Evaluación:
- Precisión y recuperación , puntuación F1 , precisión media
- Característica de funcionamiento del receptor (curva ROC)
- Ganancia acumulada descontada (incluido NDCG)
- Índice de silueta
- Índice de Davies-Bouldin
- Índice de Dunn
- Validación de clústeres basada en densidad (DBCV)
- Visualización
- Gráfico de dispersión
- Histogramas
- Coordenadas paralelas (también en 3D, usando OpenGL )
- Otro:
- Distribuciones estadísticas y muchas estimadores de parámetros , incluyendo robusta MAD basada y L-momento estimadores basados
- Deformación de tiempo dinámica
- Cambiar la detección de puntos en series de tiempo
- Estimadores de dimensionalidad intrínseca
Historial de versiones
La versión 0.1 (julio de 2008) contenía varios algoritmos de análisis de conglomerados y detección de anomalías , así como algunas estructuras de índice como el árbol R * . La primera versión se centró en la agrupación subespacial y los algoritmos de agrupación de correlación . [11]
La versión 0.2 (julio de 2009) agregó funcionalidad para el análisis de series de tiempo , en particular funciones de distancia para series de tiempo. [12]
La versión 0.3 (marzo de 2010) amplió la elección de algoritmos de detección de anomalías y módulos de visualización. [13]
La versión 0.4 (septiembre de 2011) agregó algoritmos para la minería de datos geográficos y soporte para estructuras de índices y bases de datos relacionales múltiples. [9]
La versión 0.5 (abril de 2012) se centra en la evaluación de los resultados del análisis de conglomerados , agregando nuevas visualizaciones y algunos algoritmos nuevos. [14]
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. [15]
La versión 0.7 (agosto de 2015) agrega soporte para tipos de datos inciertos y algoritmos para el análisis de datos inciertos. [dieciséis]
La versión 0.7.5 (febrero de 2019) agrega algoritmos de agrupación en clústeres, algoritmos de detección de anomalías, medidas de evaluación y estructuras de indexación adicionales. [17]
Aplicaciones similares
- Scikit-learn : biblioteca de aprendizaje automático en python
- Weka : un proyecto similar de la Universidad de Waikato, con un enfoque en algoritmos de clasificación
- RapidMiner : una aplicación disponible comercialmente (una versión restringida está disponible como 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
Ver también
- Comparación de paquetes estadísticos
Referencias
- ^ Hans-Peter Kriegel , Peer Kröger, Arthur Zimek (2009). "Técnicas de detección de valores atípicos (Tutorial)" (PDF) . 13ª Conferencia de Asia Pacífico sobre descubrimiento de conocimientos y minería de datos (PAKDD 2009) . Bangkok, Tailandia . Consultado el 26 de marzo de 2010 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Gero, Shane; Whitehead, Hal; Rendell, Luke (2016). "Señales de identidad de nivel individual, de unidad y de clan vocal en codas de cachalote" . Ciencia Abierta de la Royal Society . 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 de secuencias de fonemas a través de alineación de palabra a fonema en varios idiomas". Procesamiento estadístico del lenguaje y el habla . Apuntes de conferencias en Ciencias de la Computación. 7978 . págs. 260–272. doi : 10.1007 / 978-3-642-39593-2_23 . ISBN 978-3-642-39592-5. ISSN 0302-9743 .
- ^ Verzola, Ivano; Donati, Alessandro; Martínez, José; Schubert, Matthias; Somodi, Laszlo (2016). "Proyecto Sibila: un sistema de detección novedoso para operaciones de vuelos espaciales humanos". 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". Biosistemas . 146 : 43–59. doi : 10.1016 / j.biosystems.2016.04.008 . ISSN 0303-2647 . PMID 27178785 .
- ^ Sabiamente, Michael; Hurson, Ali; Sarvestani, Sahra Sedigh (2015). "Un marco de simulación extensible para evaluar algoritmos de predicción de tráfico centralizados". 2015 Conferencia Internacional sobre Vehículos Conectados y Exposición (ICCVE) . 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 arte (negro) de la evaluación en tiempo de ejecución: ¿estamos comparando algoritmos o implementaciones?". Sistemas de conocimiento e información . 52 (2): 341–378. doi : 10.1007 / s10115-016-1004-2 . ISSN 0219-1377 . S2CID 40772241 .
- ^ "DBID" . Página de inicio de ELKI . Consultado el 13 de diciembre de 2016 .
- ^ a b Elke Achtert, Achmed Hettab, Hans-Peter Kriegel , Erich Schubert, Arthur Zimek (2011). Detección de valores atípicos espaciales: datos, algoritmos, visualizaciones . 12º Simposio Internacional sobre Bases de Datos Espaciales y Temporales (SSTD 2011). Minneapolis, MN: Springer. doi : 10.1007 / 978-3-642-22922-0_41 .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 agrupación en clústeres subespaciales (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 .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 desempeño de medidas de distancia para series de tiempo (PDF) . Actas del XI Simposio Internacional sobre Avances en Bases de Datos Espaciales y Temporales (SSTD 2010). Aalborg, Dänemark: Springer. doi : 10.1007 / 978-3-642-02982-0_35 .CS1 maint: varios nombres: lista de autores ( enlace )
- ^ Elke Achtert, Hans-Peter Kriegel , Lisa Reichert, Erich Schubert, Remigius Wojdanowski, Arthur Zimek (2010). Evaluación visual de modelos de detección de valores atípicos . XV Congreso Internacional sobre Sistemas de Bases de Datos para Aplicaciones Avanzadas (DASFAA 2010). Tsukuba, Japón: Springer. doi : 10.1007 / 978-3-642-12098-5_34 .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 Clusterings y Soporte Visual . 28º Congreso Internacional de Ingeniería de Datos (ICDE). Washington DC. doi : 10.1109 / ICDE.2012.128 .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 .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 agrupar datos inciertos" (PDF) . Actas de la Dotació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 ].
enlaces externos
- Sitio web oficial de ELKI con descarga y documentación.