Analiza dziennika serwera za pomocą uczenia maszynowego

10

Przydzielono mi to zadanie do analizy dzienników serwera naszej aplikacji, która zawiera dzienniki wyjątków, dzienniki zdarzeń w bazach danych itp. Jestem nowy w uczeniu maszynowym, używamy Spark z elastycznym wyszukiwaniem i Sparks MLlib (lub PredictionIO). Przykład pożądanego wynik byłby w stanie przewidzieć na podstawie zebranych dzienników wyjątków, aby móc przewidzieć, który użytkownik najprawdopodobniej spowoduje następny wyjątek i przy której funkcji (oraz wiele innych rzeczy do śledzenia i poprawy optymalizacji aplikacji).

Z powodzeniem mogłem pobierać dane z ElasticSearch do Spark i tworzyć DataFrames i mapować potrzebne dane. Chciałbym wiedzieć, w jaki sposób podchodzę do aspektu uczenia maszynowego w mojej implementacji. Przeglądałem artykuły i artykuły, które mówią o przetwarzaniu danych, szkoleniu modeli danych i tworzeniu etykiet, a następnie generowaniu prognoz.

Mam pytania

  • Jak podejść do przekształcania wychodzących danych dziennika w wektory numeryczne, których można użyć do szkolenia zestawów danych.

  • Jakich algorytmów używam do szkolenia mojego zestawu danych (mając ograniczoną wiedzę, którą zgromadziłem przez ostatnie kilka dni, myślałem o wdrożeniu regresji liniowej, proszę zasugerować, która implementacja byłaby najlepsza)

Po prostu szukam sugestii, jak podejść do tego problemu.

Dziękuję Ci.

elric
źródło
Jeśli miałbyś zdolność przewidywania, że ​​dany użytkownik ma wysokie prawdopodobieństwo wyjątku, co byś zrobił? Celem jest optymalizacja aplikacji. Czy próbujesz dopracować, na których błędach inżynierowie powinni spędzać czas, zamiast tylko naprawiać znane błędy w aplikacji? Inżynieria cech może być bardzo ważna dla tego zadania. Możesz także rozważyć regresję logistyczną, która da wartość 0..1, którą można interpretować jako prawdopodobieństwo.
5
Myślę, że przekraczasz cele. Nie traktuj ML jako czarnej skrzynki do robienia magii. Musisz zadać właściwe pytania (i mieć na to odpowiednie dane), aby uzyskać jakikolwiek wynik.
Ma ZAKOŃCZENIE - Anony-Mousse
Czy Twój problem został rozwiązany, aby przewidzieć, który użytkownik najprawdopodobniej spowoduje następny wyjątek i przy której funkcji (oraz kilka innych rzeczy do śledzenia i poprawy optymalizacji aplikacji) ? Jeśli tak, czy możesz podzielić się swoim podejściem do rozwiązania lub czy ktoś inny może to zrobić?
Ashish Tyagi,

Odpowiedzi:

12

Nie sądzę, że musisz koniecznie przekonwertować poszczególne wpisy dziennika na wektory do użycia w algorytmie. Sądzę, że interesuje Cię sekwencja wpisów do dziennika, które reprezentują szereg zdarzeń uporządkowanych w czasie, które razem składają się na serię „przypadków”. Ważna jest tutaj relacja między serią zebranych wpisów do dziennika.

W takim przypadku możesz rozważyć użycie technik Process Mining . Pozwala to budować modele procesu (wykorzystanie aplikacji) i określać wzorce etapów procesu wraz z błędami i etapami przeróbki.

Jest dobry kurs wprowadzenie na Coursera, tutaj . Istnieje nawet kilka opracowanych, komercyjnych pakietów, takich jak „dyskoteka”, które pomogą ci w analizie i wizualizacji

Oliver
źródło