ELKI - ELKI

Środowisko do tworzenia aplikacji KDD obsługiwanych przez struktury indeksu
Zrzut ekranu przedstawiający ELKI 0.4 wizualizujący analizę klastrów OPTICS.
Zrzut ekranu przedstawiający ELKI 0.4 wizualizujący analizę klastrów OPTICS .
Deweloper (y) Politechnika w Dortmundzie ; początkowo Uniwersytet Ludwiga Maksymiliana w Monachium
Wersja stabilna
0.7.5 / 15 lutego 2019 r . ; 23 miesiące temu  ( 2019-02-15 )
Magazyn Edytuj to w Wikidata
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 .github .io

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:

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

Zobacz też

Bibliografia

Zewnętrzne linki