Automatyczny wybór funkcji do wykrywania anomalii

11

Jaki jest najlepszy sposób automatycznego wybierania funkcji do wykrywania anomalii?

Zazwyczaj traktuję Wykrywanie Anomalii jako algorytm, w którym cechy są wybierane przez ludzkich ekspertów: liczy się zakres wyjściowy (jak w „nienormalnym wejściu - nienormalnym wyjściu”), więc nawet przy wielu funkcjach można uzyskać znacznie mniejszy podzbiór, łącząc funkcje.

Zakładając jednak, że w ogólnym przypadku lista funkcji może być ogromna, być może czasem preferowane jest automatyczne uczenie się. O ile widzę, istnieją pewne próby:

  • „Automatyczny wybór funkcji do wykrywania anomalii” ( pdf ), który uogólnia opis danych wektorowych wsparcia
  • „Szybki system wykrywania włamań oparty na hoście, wykorzystujący teorię zbiorów wstępnych” (brak pliku pdf?), Który, jak sądzę, wykorzystuje teorię zbiorów wstępnych
  • „Zasady uczenia się dotyczące anomalii w wykrywaniu wrogiego ruchu sieciowego” ( pdf , wideo ), w którym zastosowano podejście statystyczne

Zastanawiam się teraz, czy ktokolwiek może powiedzieć - zakładając wykrywanie anomalii i naprawdę duży (setki?) Zestaw funkcji:

  1. Czy te ogromne zestawy funkcji mają w ogóle sens? Czy nie powinniśmy po prostu ograniczać konfiguracji funkcji, powiedzmy, o kilkadziesiąt i to wszystko?
  2. Jeśli ogromne zestawy funkcji mają sens, które z powyższych podejść dałoby lepsze przewidywania i dlaczego? Czy jest coś nie wymienionego, co jest znacznie lepsze?
  3. Dlaczego mieliby dawać lepsze wyniki w porównaniu, powiedzmy, ze zmniejszeniem wymiarów lub konstruowaniem cech poprzez grupowanie / ranking / etc?
andreister
źródło
Twój link nie przyniósł mi żadnego konkretnego pytania. Czy możesz podać krótki opis problemu? Jaki jest cel? Czy jest to problem uczenia się pod nadzorem lub bez nadzoru?
AdamO,
Pytanie pochodzi od ML.SE, które jest teraz zamknięte - najwyraźniej administratorzy nie połączyli wszystkich pytań. Zredagowałem teraz tekst, aby wyraźnie określić problem!
andreister

Odpowiedzi:

1

Jednym praktycznym podejściem (przynajmniej w przypadku nadzorowanego uczenia się) jest uwzględnienie wszystkich możliwie istotnych cech i zastosowanie (uogólnionego) modelu liniowego (regresja logistyczna, liniowy svm itp.) Z regularyzacją (L1 i / lub L2). Istnieją narzędzia typu open source (np. Vowpal Wabbit), które radzą sobie z bilionami kombinacji przykład / funkcja dla tego typu modeli, więc skalowalność nie stanowi problemu (poza tym zawsze można użyć podpróbkowania). Regularyzacja pomaga radzić sobie z wyborem funkcji.

Jewgienij
źródło
Ale jak wybrać funkcje w nienadzorowanych ustawieniach (bez potrzeby korzystania z modeli liniowych itp., Aby wymyślić ważne funkcje)? Jednym ze sposobów, w jaki mogę wymyślić, jest użycie PCA, aby zachować pewną wariancję i zmniejszyć rozmiar danych. Ale znowu zmniejszenie danych w problemach z wykrywaniem anomalii wydaje się niebezpieczne, ponieważ może się okazać, że brakuje rzeczywistych wartości odstających, które chciałbyś przewidzieć. Stąd zamieszanie.
exAres