Biorąc pod uwagę sekwencję danych wejściowych, muszę ustalić, czy sekwencja ta ma pewną pożądaną właściwość. Właściwość może być tylko prawdą lub fałszem, tzn. Istnieją tylko dwie możliwe klasy, do których może należeć sekwencja.
Dokładny związek między sekwencją a właściwością jest niejasny, ale uważam, że jest bardzo spójny i powinien podlegać klasyfikacji statystycznej. Mam wiele przypadków trenowania klasyfikatora, chociaż może to być nieco głośne, w tym sensie, że istnieje niewielkie prawdopodobieństwo, że sekwencja zostanie przypisana niewłaściwej klasie w tym zestawie treningowym.
Przykładowe dane treningowe:
Sequence 1: (7 5 21 3 3) -> true
Sequence 2: (21 7 5 1) -> true
Sequence 3: (12 21 7 5 11 1) -> false
Sequence 4: (21 5 7 1) -> false
...
Z grubsza, właściwość jest określona przez zestaw wartości w sekwencji (np. Obecność „11” oznacza, że właściwość prawie na pewno będzie fałszywa), a także kolejność wartości (np. „21 7 5 „znacznie zwiększa szansę, że właściwość jest prawdziwa).
Po treningu powinienem być w stanie nadać klasyfikatorowi wcześniej niewidoczną sekwencję, na przykład (1 21 7 5 3)
, i powinien dać pewność, że właściwość jest prawdziwa. Czy istnieje dobrze znany algorytm szkolenia klasyfikatora z tego rodzaju wejściami / wyjściami?
Rozważyłem naiwny klasyfikator bayesowski (który tak naprawdę nie da się dostosować do faktu, że kolejność ma znaczenie, przynajmniej nie bez poważnego złamania założenia, że dane wejściowe są niezależne). Zbadałem również podejście ukrytego modelu Markowa, które wydaje się nie mieć zastosowania, ponieważ dostępne jest tylko jedno wyjście, zamiast jednego wyjścia na wejście. Co mnie ominęło?
źródło
Odpowiedzi:
Można wypróbować podejście probabilistyczne podobne do naiwnego klasyfikatora Bayesa, ale przy słabszych założeniach. Na przykład zamiast silnego założenia niezależności, należy przyjąć założenie Markowa:
to etykieta twojej klasy, x to twoja sekwencja. Musisz oszacować dwa rozkłady warunkowe, jeden dla c = 1 i jeden dla c = 0 .c x c=1 c=0
Zgodnie z regułą Bayesa:
Które rozkłady wybrać dlap(xt∣xt−1,c) zależy od innych założeń dotyczących sekwencji i ilości dostępnych danych.
Na przykład możesz użyć:
Przy takich rozkładach, jeśli w twoich sekwencjach występuje 21 różnych liczb, musisz oszacować parametry π ( x t , x t , c ) plus 21 ⋅ 2 = 42 parametry dla p ( x 0 ∣ c ) plus 2 parametry dla p ( c ) .21⋅21⋅2=882 π(xt,xt,c) 21⋅2=42 p(x0∣c) 2 p(c)
Jeśli założenia modelu nie są spełnione, może pomóc w precyzyjnym dostrojeniu parametrów bezpośrednio w odniesieniu do wydajności klasyfikacji, na przykład poprzez zminimalizowanie średniej utraty logarytmu
za pomocą opadania gradientu.
źródło
Sugeruję zdefiniowanie niektórych funkcji, a następnie wybranie algorytmu uczenia maszynowego w celu zastosowania do tych funkcji.
Cechy: Zasadniczo każda cecha powinna być czymś, co można obliczyć z określonej sekwencji, i które Twoim zdaniem może mieć znaczenie dla tego, czy sekwencja ma właściwość, czy nie. Na podstawie opisu możesz rozważyć takie funkcje, jak:
„Worek liczb”. Możesz policzyć, ile razy każda możliwa liczba pojawia się w sekwencji. Załóżmy na przykład, że każda sekwencja składa się tylko z liczb 1-30. Następnie możesz wygenerować 30 funkcji; z TH funkcja liczy, ile razy liczba i pojawia się w sekwencji. Na przykład sekwencjai i
(7 5 21 3 3)
generuje wektor cech (0,0,2,0,1,0,1,0, ..., 0,1,0, ..., 0).(7 5 21 3 3)
7 5
5 21
21 3
3 3
„Worek trygramów”. Można również rozważyć trygramy, które są podsekwencją trzech kolejnych liczb z oryginalnej sekwencji. Możesz zrobić to samo co powyżej.
źródło
To, co skutecznie robisz, to testowanie hipotez na szeregach czasowych. HMM będą dla Ciebie działać, ale będziesz musiał dostosować je do konkretnego przypadku.
Szczerze mówiąc, jeśli nie możesz zapisać jakiegoś matematycznego opisu tego, co próbujesz wykryć, nie zajdziesz daleko. Być może możesz nam powiedzieć o tym, jakiej funkcji oczekujesz?
źródło
Biorąc pod uwagę maksymalną długość 12 w sekwencji, sieć neuronowa z 12 wejściami i jednym wyjściem może działać, ale będziesz musiał uzupełnić koniec każdej sekwencji zerami lub pewną obojętną wartością.
źródło
Czy próbowałeś korzystać z sieci bayesowskich? To pierwsza rzecz, o której myślę, kiedy muszę połączyć wiele danych (przychodzących pojedynczo), aby dojść do prawdopodobieństwa zmiennej losowej.
Sieci bayesowskie nie opierają się na założeniu niezależności, jakie robi naiwny Bayes.
BTW, ukryte modele Markowa są szczególnym przypadkiem sieci bayesowskich.
źródło