ELKI - ELKI
Deweloper (y) | Politechnika w Dortmundzie ; początkowo Uniwersytet Ludwiga Maksymiliana w Monachium |
---|---|
Wersja stabilna | 0.7.5 / 15 lutego 2019 r .
|
Magazyn | |
Napisane w | Jawa |
System operacyjny | Microsoft Windows , Linux , Mac OS |
Platforma | Platforma Java |
Rodzaj | Eksploracja danych |
Licencja | AGPL (od wersji 0.4.0) |
Stronie internetowej | elki-project |
Elki (dla Środowiska za opracowanie KDD-Aplikacje Obsługiwane przez Indeksu Structures ) jest wyszukiwanie danych (KDD, odkrywanie wiedzy w bazach danych) ramowy program opracowany do stosowania w badaniach i nauczaniu. Początkowo znajdował się on w dziale badań systemów baz danych profesora Hansa-Petera Kriegela na Uniwersytecie Ludwiga Maksymiliana w Monachium , a obecnie jest kontynuowany na Uniwersytecie Technicznym w Dortmundzie w Niemczech. Jego celem jest umożliwienie rozwoju i oceny zaawansowanych algorytmów eksploracji danych oraz ich interakcji ze strukturami indeksów baz danych .
Opis
Framework ELKI jest napisany w Javie i zbudowany wokół architektury modułowej. Większość obecnie uwzględnionych algorytmów należy do grupowania , wykrywania wartości odstających i indeksów baz danych . Architektura zorientowana obiektowo umożliwia łączenie dowolnych algorytmów, typów danych, funkcji odległości , indeksów oraz środków oceny. Kompilator Java just-in-time optymalizuje wszystkie kombinacje w podobnym stopniu, dzięki czemu wyniki testów porównawczych są bardziej porównywalne, jeśli mają one wspólne duże części kodu. Podczas opracowywania nowych algorytmów lub struktur indeksów istniejące komponenty można łatwo ponownie wykorzystać, a bezpieczeństwo typu Java wykrywa wiele błędów programistycznych w czasie kompilacji.
ELKI został wykorzystany w nauce o danych, na przykład do grupowania kodonów kaszalotów , grupowania fonemów , wykrywania anomalii podczas lotów kosmicznych , redystrybucji współdzielenia rowerów oraz prognozowania ruchu.
Cele
Projekt uniwersytecki jest przeznaczony do użytku w nauczaniu i badaniach . Kod źródłowy jest napisany z myślą o rozszerzalności i możliwości ponownego wykorzystania, ale jest również zoptymalizowany pod kątem wydajności. Eksperymentalna ocena algorytmów zależy od wielu czynników środowiskowych, a szczegóły implementacji mogą mieć duży wpływ na czas wykonywania. ELKI ma na celu zapewnienie współużytkowanej bazy kodu z porównywalnymi implementacjami wielu algorytmów.
Jako projekt badawczy obecnie nie oferuje integracji z aplikacjami Business Intelligence ani interfejsu do popularnych systemów zarządzania bazami danych za pośrednictwem SQL . Copyleft ( AGPL ) pozwolenie może być przeszkodą dla integracji w komercyjnych; niemniej jednak można go użyć do oceny algorytmów przed opracowaniem własnej implementacji produktu komercyjnego. Ponadto zastosowanie algorytmów wymaga wiedzy na temat ich zastosowania, parametrów oraz zapoznania się z oryginalną literaturą. Odbiorcami są studenci , badacze , naukowcy zajmujący się danymi i inżynierowie oprogramowania .
Architektura
ELKI jest modelowany wokół rdzenia zainspirowanego bazą danych , który wykorzystuje pionowy układ danych, który przechowuje dane w grupach kolumn (podobnie jak rodziny kolumn w bazach danych NoSQL ). Ten rdzeń bazy danych zapewnia funkcje wyszukiwania najbliższego sąsiada, wyszukiwania zakresu / promienia i zapytania o odległość z przyspieszeniem indeksowania dla szerokiego zakresu miar niepodobieństwa . Algorytmy oparte na takich zapytaniach (np. Algorytm k-najbliższego sąsiada , lokalny współczynnik odstający i DBSCAN ) można łatwo zaimplementować i skorzystać z przyspieszenia indeksu. Rdzeń bazy danych zapewnia również szybkie i wydajne w pamięci kolekcje dla kolekcji obiektów i struktur asocjacyjnych, takich jak listy najbliższych sąsiadów.
ELKI w szerokim zakresie wykorzystuje interfejsy Java, dzięki czemu można go łatwo rozszerzyć w wielu miejscach. Na przykład niestandardowe typy danych, funkcje odległości, struktury indeksów, algorytmy, parsery wejściowe i moduły wyjściowe można dodawać i łączyć bez modyfikowania istniejącego kodu. Obejmuje to możliwość zdefiniowania niestandardowej funkcji odległości i wykorzystania istniejących wskaźników przyspieszenia.
ELKI wykorzystuje architekturę modułu ładującego usługi, aby umożliwić publikowanie rozszerzeń jako oddzielnych plików jar .
ELKI używa zoptymalizowanych kolekcji pod kątem wydajności zamiast standardowego interfejsu API języka Java. Na przykład pętle For są napisane podobnie do iteratorów C ++ :
for (DBIDIter iter = ids.iter(); iter.valid(); iter.advance()) {
relation.get(iter); // E.g., get the referenced object
idcollection.add(iter); // E.g., add the reference to a DBID collection
}
W przeciwieństwie do typowych iteratorów Java (które mogą wykonywać iterację tylko po obiektach), oszczędza to pamięć, ponieważ iterator może wewnętrznie używać wartości pierwotnych do przechowywania danych. Zmniejszone wyrzucanie elementów bezużytecznych poprawia czas wykonywania. Zoptymalizowane biblioteki kolekcji, takie jak GNU Trove3 , Koloboke i fastutil, stosują podobne optymalizacje. ELKI obejmuje struktury danych, takie jak kolekcje obiektów i sterty (np. Wyszukiwanie najbliższego sąsiada ), wykorzystując takie optymalizacje.
Wyobrażanie sobie
Moduł wizualizacji wykorzystuje SVG do skalowalnej grafiki, a Apache Batik do renderowania interfejsu użytkownika, a także bezstratny eksport do PostScript i PDF w celu łatwego włączenia do publikacji naukowych w LaTeX . Eksportowane pliki można edytować za pomocą edytorów SVG, takich jak Inkscape . Ponieważ stosowane są kaskadowe arkusze stylów , projekt graficzny można łatwo zmienić. Niestety Batik jest raczej powolny i wymaga dużej ilości pamięci, więc wizualizacje nie są zbyt skalowalne do dużych zestawów danych (w przypadku większych zestawów danych domyślnie wizualizowana jest tylko podpróbka danych).
Nagrody
Wersja 0.4, zaprezentowana na „Symposium on Spatial and Temporal Databases” 2011, obejmująca różne metody wykrywania przestrzennych wartości odstających, zdobyła na konferencji „nagrodę za najlepszy referat demonstracyjny”.
Dołączone algorytmy
Wybierz dołączone algorytmy:
-
Analiza skupień :
- Klastry K-średnich (w tym szybkie algorytmy, takie jak Elkan, Hamerly, Annulus i Exponion k-Means, oraz niezawodne warianty, takie jak k-średnie--)
- Klastry median K.
- Grupowanie K-medoidów (PAM) (w tym FastPAM i przybliżenia, takie jak CLARA, CLARANS)
- Algorytm maksymalizacji oczekiwań dla modelowania mieszanin Gaussa
- Klastrowanie hierarchiczne (w tym szybkie algorytmy SLINK, CLINK, NNChain i Anderberg)
- Klastrowanie z pojedynczym połączeniem
- Klastrowanie liderów
- DBSCAN (przestrzenne grupowanie aplikacji z szumem oparte na gęstości, z pełnym przyspieszeniem indeksu dla funkcji dowolnej odległości)
- OPTYKA (Punkty zamawiania w celu określenia struktury klastra), w tym rozszerzenia OPTICS-OF, DeLi-Clu, HiSC, HiCO i DiSH
- HDBSCAN
- Średni przesunięciem klastrów
- BRZOZA grupowanie
- SUBCLU ( klaster podprzestrzeni połączony z gęstością dla danych wysokowymiarowych)
- Klastrowanie CLIQUE
- Klastrowanie ORCLUS i PROCLUS
- Klastry COPAC, ERiC i 4C
- Klastrowanie CASH
- Klastry podprzestrzeni DOC i FastDOC
- Klastrowanie P3C
- Algorytm grupowania baldachimów
-
Wykrywanie anomalii :
- Wykrywanie wartości odstających k-najbliższego sąsiada
- LOF (lokalny współczynnik odstających)
- Pętla (lokalne prawdopodobieństwo odstające)
- OPTYKA -OF
- DB-wartości odstające (wartości odstające na podstawie odległości)
- LOCI (całka korelacji lokalnej)
- LDOF (lokalny współczynnik odstający oparty na odległości)
- EM -Outlier
- SOD (stopień odstający podprzestrzeni)
- COP (prawdopodobieństwa odstające korelacji)
-
Częste wyszukiwanie zestawów elementów i uczenie się reguł asocjacyjnych
- Algorytm Apriori
- Splendor
- Wzrost FP
- Redukcja wymiarowości
-
Przestrzenne struktury indeksów i inne indeksy wyszukiwania:
- R-drzewo
- R * -drzewo
- M-drzewo
- drzewo kd
- X-drzewo
- Drzewo okładkowe
- iDistance
- Zejście NN
- Mieszanie zależne od lokalizacji (LSH)
- Ocena:
- Precyzja i pamięć , wynik F1 , średnia precyzja
- Charakterystyka pracy odbiornika (krzywa ROC)
- Skumulowany zysk zdyskontowany (w tym NDCG)
- Indeks sylwetki
- Indeks Daviesa-Bouldina
- Indeks Dunna
- Walidacja klastra oparta na gęstości (DBCV)
- Wyobrażanie sobie
- Wykresy punktowe
- Histogramy
- Współrzędne równoległe (również w 3D, przy użyciu OpenGL )
- Inny:
- Rozkłady statystyczne i wiele estymatory parametrów , włącznie z wytrzymałej MAD oparciu i L-moment estymatorów oparciu
- Dynamiczne dopasowanie czasu
- Wykrywanie punktu zmiany w szeregach czasowych
- Estymatory wymiarowości wewnętrznej
Historia wersji
Wersja 0.1 (lipiec 2008) zawierała kilka algorytmów z analizy skupień i wykrywania anomalii , a także niektóre struktury indeksowe, takie jak drzewo R * . Pierwsze wydanie skupiało się na klastrowaniu podprzestrzeni i algorytmach korelacji .
Wersja 0.2 (lipiec 2009) dodała funkcjonalność do analizy szeregów czasowych , w szczególności funkcje odległości dla szeregów czasowych.
Wersja 0.3 (marzec 2010) poszerzyła wybór algorytmów wykrywania anomalii i modułów wizualizacji.
Wersja 0.4 (wrzesień 2011) dodała algorytmy do eksploracji danych geograficznych i obsługę multi-relacyjnych baz danych i struktur indeksów.
Wersja 0.5 (kwiecień 2012) skupia się na ocenie wyników analizy skupień , dodaniu nowych wizualizacji i kilku nowych algorytmów.
Wersja 0.6 (czerwiec 2013) wprowadza nową adaptację 3D równoległych współrzędnych do wizualizacji danych, oprócz zwykłych dodatków algorytmów i struktur indeksów.
Wersja 0.7 (sierpień 2015) dodaje obsługę niepewnych typów danych i algorytmy do analizy niepewnych danych.
Wersja 0.7.5 (luty 2019 r.) Dodaje dodatkowe algorytmy grupowania, algorytmy wykrywania anomalii, miary oceny i struktury indeksowania.
Podobne aplikacje
- Scikit-Learn : biblioteka uczenia maszynowego w Pythonie
- Weka : Podobny projekt Uniwersytetu Waikato, skupiający się na algorytmach klasyfikacji
- RapidMiner : aplikacja dostępna na rynku (ograniczona wersja jest dostępna jako open source)
- KNIME : platforma open source, która integruje różne komponenty do uczenia maszynowego i eksploracji danych
Zobacz też
Bibliografia
Zewnętrzne linki
- Oficjalna strona ELKI z plikami do pobrania i dokumentacją.