Machine Learning Toolkit (dalej MLTK) to aplikacja na platformę Splunk, poszerzająca i tak spore jej możliwości w obszarze analityki, w szczególności zaś w obszarze uczenia maszynowego. MLTK jako bezpłatne rozszerzenie platformy Splunk stanowić może dobry punkt wyjścia do budowy w firmie analityki predykcyjnej.
W artykule dokonam krótkiego przeglądu funkcjonalności aplikacji MLTK. Opiszę wersję 5.0 MLTK na platformę Splunk w wersji 8.0. Odpowiedni dobór wersji platformy Splunk i jej rozszerzeń ma znaczenie także z uwagi na zależności powiązane – chodzi o dodatek techniczny (ang. technical ad-on) Python for Scientific Computing – wymagany tu w wersji nie niższej niż 2.0. Dzięki uważnemu doborowi komponentów zaoszczędzimy sobie już na starcie niepotrzebnej frustracji związanej z koniecznością ponownej instalacji w razie niezgodności.
Aplikację można pobrać ze strony http://splunkbase.splunk.com
Macierz zgodności wersji platformy Splunk i wersji jej rozszerzeń znajduje się pod adresem: https://docs.splunk.com/Documentation/MLApp/5.0.0/User/MLTKversiondepends
Splunk od początku starał się być platformą przyjazną użytkownikowi, lecz MLTK wprowadza te starania na kolejny poziom: otwartej, wpisanej w narzędzie edukacji potencjalnego użytkownika końcowego. Obniża to znacząco barierę wejścia w obszar uczenia maszynowego.
Splunk osiągnął ten cel dzięki serii przewodników, pokazujących przypadki zastosowania zaawansowanych algorytmów w wybranych obszarach biznesu. Mamy tu kompletne ilustracje procesu tworzenia modeli predykcyjnych począwszy od przykładowych danych z konkretnej branży (np. telekomunikacja, internet rzeczy, bezpieczeństwo – w sumie 37 zbiorów), poprzez wybór proporcji próby uczącej i walidacyjnej, skalowanie i standaryzację danych, aż po wskaźniki dopasowania modelu i wizualizację predykcji.
Przygotowany w tym celu interfejs prowadzi użytkownika dosłownie za rękę przez kolejne etapy procesu. Na każdym z tych etapów można zobaczyć treść komend SPL (ang. Search Processing Language) odpowiadających za efekty przetwarzania danych, a następnie wykorzystać je do analiz na własnych danych w domenie aktywności swojej firmy.
Główna idea MLTK
Splunk udostępnił na poziomie własnego języka komend kilka kluczowych funkcji biblioteki scikit-learn, dedykowanej uczeniu maszynowemu. Są to, m.in., komendy: fit (inicjuje proces trenowania modelu na danych z próby uczącej), apply (sprawdza na próbie walidacyjnej, jak trafny jest model) i summary (zestawia wskaźniki adekwatności modelu). Scikit-learn to najbardziej rozbudowana biblioteka analityczna ekosystemu języka Python, rozwijana przez społeczność. Aktualnie biblioteka ta zawiera ponad trzysta algorytmów, z czego czterdzieści dwa najpopularniejsze dostępne są w MLTK. Istnieje API, które umożliwia wzbogacanie SPL o kolejne algorytmy obecne w scikit-learn.
Biblioteka wraz z dokumentacją dostępna jest po adresem: https://scikit-learn.org/stable/
Podstawowe funkcjonalności MLTK
Interfejs aplikacji zorganizowany jest w kilka sekcji funkcjonalnych. Najbardziej przyjazna z nich to wspomniane już przewodniki (ang. Showcases), ilustrujące proces tworzenia modeli predykcyjnych. Z przewodników można korzystać albo w trybie prezentacji konkretnych grup metod analitycznych, albo w rybie analizy przypadków dla poszczególnych branż. Ten ostatni filtr przypadł mi szczególnie do gustu, gdyż użytkownik zaczynający przygodę z analityką może tu łatwo odnaleźć własny przypadek problemu biznesowego.
Jak pokazuje powyższy zrzut ekranu z interfejsu omawianej sekcji, mamy tu przykłady zastosowań uczenia maszynowego w domenie administracji systemami IT, takie jak np. budowa modelu przewidującego natężenie ruchu sieciowego, intensywność korzystania z aplikacji korporacyjnych, określenie wyznaczników zużycia energii elektrycznej w serwerowni, wykrywanie anomalii w zakresie czasu odpowiedzi serwerów www etc.
Kolejna klasa przykładów to domena bezpieczeństwa, gdzie znajdziemy ilustracje zastosowań uczenia maszynowego do wykrywania anomalii w liczbie logowań, czy też wykrywanie obecności złośliwego oprogramowania w zdarzeniach sieciowych.
Trzecia klasa przykładów dotyczy analityki biznesowej. Znajdziemy tu takie casy jak budowa modeli przewidujących odejścia klientów na podstawie ich wzorców korzystania z usług operatorów telekomunikacyjnych, wykrywanie anomalii w zakupach dokonywanych przez klientów sklepów wielkopowierzchniowych, czy też prognozowanie ilości sprzedaży miesięcznej lub ilości połączeń do Call Center. Pozostałe obszary ilustrowane przykładami to Internet Rzeczy, Opieka Medyczna i branża finansów. W sumie ponad czterdzieści praktycznych problemów biznesowych z sześciu branż.
Kolejna interesująca i wysoce funkcjonalna sekcja to Experiments, gdzie jak wskazuje nazwa mamy możliwość eksperymentowania z własnymi danymi w przyjaznej przestrzeni intuicyjnego interfejsu, znanego z poprzedniej sekcji przewodników. W sekcji tej możemy wskazać dane, na których zamierzamy pracować, wybrać algorytm, którego chcemy użyć do budowy modelu, a także swobodnie poruszać się pomiędzy historią własnych eksperymentów (alternatywnymi parametrami modeli, algorytmów, proporcji prób uczących i walidacyjnych), gdyż MLTK oferuje nam tu wersjonowanie naszych poczynań. Wszystko w prostym schemacie sekwencji trzech komend: fit, apply i summary.
Jeśli jesteśmy zadowolenie z efektów naszej pracy, to znaczy, gdy model dobrze przewiduje właściwości nowych zdarzeń (zachowania użytkowników, awaryjność dysków, wielkość sprzedaży), możemy go zachować i wykorzystywać (funkcja publish). Model taki trafia do sekcji Models.
Od chwili publikacji modelu możemy na jego podstawie po prostu działać, np. podejmować akcje prewencyjne związane z obecnością malware w monitorowanym ruchu sieciowym, czy też projektować działania utrzymaniowe, dotyczące klientów o dużej wartości dla firmy, w stosunku do których oszacowano duże ryzyko odejścia. Co jest szczególnie wygodne, możemy także zlecać automatyczny proces douczania modeli (jako efekt zaprogramowanego alertu) na podstawie nowych danych – w momencie, gdy jego wskaźniki trafności pogarszają się!
Kolejne warte uwagi sekcje aplikacji to wspaniała dokumentacja, stanowiąca zbiór odnośników do API MLTK (opis zaimplementowanych funkcji wraz z przykładami ich wowołań w języku SPL), a także do materiałów wideo, gdzie w ramach dedykowanego kanału na YouTube możemy obejrzeć MLTK w akcji (ang. Docs, Video Tutorials).
Ostatnia sekcja, Ustawienia (ang. Settings), daje nam możliwość parametryzowania sposobu działania funkcji fit i apply dla każdego z ponad czterdziestu zaimplementowanych algorytmów.
Podsumowując, użytkownicy platformy Splunk, którzy zdecydują się rozszerzyć jej możliwości o aplikację MLTK, zyskują bezpłatne narzędzie, o wysokich walorach edukacyjnych, dzięki któremu mogą skutecznie wpisać analitykę predykcyjną w swe procesy biznesowe.