Jeśli masz do czynienia z dość trywialnym schematem, w którym litery są oparte tylko na poprzednim, to jesteś na miejscu, że Hidden Markov Model (HMM) rozwiąże go - w rzeczywistości coś tak prostego, jak a Markov Chain będzie działać.
Jeśli chcesz się trochę zabawić, oto niestandardowe rozwiązanie oparte na HMM, z którym możesz się bawić.
Przejrzyj przykładowe dane i utwórz połączoną listę każdego elementu w kolejności, w jakiej zostały wstawione. Teraz utwórz kolejną listę dla każdego innego znaku i umieść indeks każdego elementu listy, do którego należy. Oto (bardzo źle sporządzone) Wizualna reprezentacja połączonej listy i wiadra pod nim:
Teraz, kiedy są przedstawiane sekwencję, i poprosił, aby przewidzieć następny znak, wszystko co musisz zrobić, to spojrzenie na najnowsze znaki X i zobacz, jak działały pod-sekwencje, które były podobne.
Aby użyć powyższego przykładu, spójrz na najnowsze (ostatnie) 3 znaki, aby uzyskać BAC
. Chcesz sprawdzić, czy sekwencja BAC
kiedykolwiek się wydarzyła i co przyszło po niej, kiedy to się stało. Jeśli sprawdzisz wiadro dla pierwszej litery z BAC
(B
), zobaczysz, że litera B
pojawiła się wcześniej. Na szczęście postępuje zgodnie z kolejnością - i po nim przyszedł A
, więc będzie to przewidywanie.
Możesz chcieć sprawdzić nie tylko sekwencje minionym X, ale również każda liczba poniżej X, dając każdemu z nich mniejszą wagę, jeżeli sekwencja zapałki, aby stworzyć lepsze heurystyki.
Trudną częścią jest określenie, jak daleko w tyle - jeśli spojrzysz za daleko, zajmie to zbyt dużo czasu i możesz nie uzyskać żadnych dopasowań. Jeśli wyglądasz zbyt krótko, możesz pominąć wzór i musisz zgadywać.
Powodzenia - mam nadzieję, że jest to ładne i łatwe do wdrożenia i działa dla Ciebie.
Czy podstawowy wzór sekwencji jest stały? (lub zmienia wzór na sekwencję/dane wejściowe) –
Nie znam wzoru, jest to coś, czego chcę się nauczyć. – suzee
Ile znaków jest w alfabecie? Po prostu "A" i "B"? Czy możesz przesłać swoje dane? – Hossein