Wyjaśnienie koncepcji łańcuchów Markowa [z przykładem]
Opublikowany: 2020-12-18Spis treści
Wstęp
Łańcuchy Markowa są dość powszechne, intuicyjne i były używane w wielu dziedzinach, takich jak automatyzacja tworzenia treści, generowanie tekstu, modelowanie finansów, systemy tempomatu itp. Znana marka Google używa łańcucha Markowa w swoim algorytmie rankingu stron do określenia kolejności wyszukiwania .
Łańcuchy Markowa są stosunkowo proste i nie wymagają do wdrożenia żadnej koncepcji matematycznej ani zaawansowanej wiedzy statystycznej. Jeśli dobrze rozumiesz łańcuchy Markowa, łatwiej jest nauczyć się modelowania probabilistycznego i technik analizy danych.
Ten artykuł pozwoli ci dogłębnie zrozumieć, czym są łańcuchy Markowa i jak działają, za pomocą przykładów.
Co to jest łańcuch Markowa?
Łańcuch Markowa to model matematyczny, który dostarcza prawdopodobieństwa lub prognozy dla następnego stanu oparte wyłącznie na poprzednim stanie zdarzenia. Prognozy generowane przez łańcuch Markowa są tak dobre, jak gdyby obserwując całą historię tego scenariusza.
Jest to model, w którym następuje przejście z jednego stanu do drugiego w oparciu o pewne warunki prawdopodobieństwa. Jedną z cech, która definiuje łańcuch Markowa, jest to, że bez względu na to, w jaki sposób zostanie osiągnięty stan obecny, stany przyszłe są stałe. Możliwy wynik następnego stanu zależy wyłącznie od stanu obecnego i czasu między stanami.
Przeczytaj: Samouczek dotyczący łańcucha Markowa w Pythonie
Koncepcja łańcucha Markowa z przykładami
Załóżmy, że chcesz przewidzieć warunki pogodowe na jutro. Ale już wiesz, że mogą istnieć tylko dwa możliwe stany pogody, tj. pochmurno i słonecznie. Jak przewidzisz pogodę na następny dzień za pomocą łańcuchów Markowa?
Cóż, zaczniesz obserwować aktualny stan pogody i może być słonecznie lub pochmurno. Załóżmy, że dzisiaj jest słonecznie. Warunki klimatyczne zawsze przechodzą kilka zmian. Zbierzesz dane pogodowe z ostatnich lat i obliczysz, że szanse na pochmurny dzień po słonecznym dniu wynoszą 0,35.
Zauważyłeś również, że szanse na uzyskanie słonecznego dnia po słonecznym dniu wynoszą 0,65. Ten rozkład pomoże Ci przewidzieć, że następny dzień również będzie słoneczny. W ten sposób aktualny stan pogody pomaga w przewidywaniu przyszłego stanu i możesz zastosować tę samą logikę do przewidywania warunków pogodowych na nadchodzące dni.
Powyższy przykład ilustruje właściwość Markowa, że łańcuch Markowa jest bezpamięciowy. Warunki pogodowe następnego dnia nie są zależne od kroków, które doprowadziły do warunków pogodowych dnia bieżącego. Rozkład prawdopodobieństwa uzyskuje się dopiero po przejściu z dnia bieżącego na dzień następny.
Innym przykładem łańcucha Markowa są nawyki żywieniowe osoby, która je tylko owoce, warzywa lub mięso. Nawyki żywieniowe rządzą się następującymi zasadami:
- Osoba je tylko raz dziennie.
- Jeśli ktoś dzisiaj jadł owoce, to jutro z równym prawdopodobieństwem będzie jadł warzywa lub mięso.
- Jeśli dziś zjadł warzywa, to jutro zje warzywa z prawdopodobieństwem 1/10, owoce z prawdopodobieństwem 1/40 i mięso z prawdopodobieństwem 1/50.
- Jeśli dziś zjadł mięso, to jutro zje warzywa z prawdopodobieństwem 4/10, owoce z prawdopodobieństwem 6/10. Jutro już nie będzie jadł mięsa.
Możesz łatwo wymodelować jego nawyki żywieniowe za pomocą łańcuszków Markowa, ponieważ jego wybór na następny dzień zależy wyłącznie od tego, co jadł dzisiaj, niezależnie od tego, co jadł wczoraj lub przedwczoraj.
Przeczytaj także: Wprowadzenie do łańcuchów Markowa
Macierz przejścia łańcucha Markowa
Do tej pory widzieliśmy, jak możemy przewidzieć prawdopodobieństwo przejścia z jednego stanu do drugiego. Ale co powiesz na znalezienie rozkładu prawdopodobieństwa przejść zachodzących w kilku krokach. Możesz znaleźć rozkład prawdopodobieństwa przejść w wielu krokach za pomocą macierzy przejścia łańcucha Markowa.

Macierz przejścia łańcucha Markowa to nic innego jak rozkład prawdopodobieństwa przejść z jednego stanu do drugiego. Nazywa się to macierzą przejść, ponieważ wyświetla przejścia między różnymi możliwymi stanami.
Prawdopodobieństwo związane z każdym stanem nazywa się rozkładem prawdopodobieństwa tego stanu. Jest to najważniejsze narzędzie wykorzystywane do analizy łańcucha Markowa. Na przykład, jeśli istnieje N możliwych stanów, to macierz przejścia (P) wyglądałaby następująco
P = N x N macierz
Gdzie wpis w wierszu (I, J) reprezentuje prawdopodobieństwo przejścia ze stanu I do stanu J. Każdy wiersz macierzy przejść P powinien sumować się do 1.
Aby przedstawić łańcuch Markowa, będziesz także potrzebował wektora stanu początkowego, który opisuje początek każdego z N możliwych stanów. Możesz przedstawić wektor stanu początkowego (X) jako
X = N x 1 macierz
Załóżmy, że chcesz poznać prawdopodobieństwo przejścia ze stanu I do stanu J w wielu M krokach. Podałeś trzy możliwe stany, tj. hossę, bessę i stagnację.
W powyższym przykładzie pierwsza kolumna macierzy przejścia wskazuje na hossę, druga bessę, a trzecia na stagnację. W podobny sposób korespondują również rzędy.
W macierzy przejścia prawdopodobieństwo przejścia jest obliczane przez podniesienie P do potęgi liczby kroków (M). W przypadku przejścia 3-etapowego prawdopodobieństwo można określić, podnosząc P do 3.
Mnożąc powyższą macierz P3, można obliczyć rozkład prawdopodobieństwa przejścia z jednego stanu do drugiego.
Wniosek
Ponieważ rozumiesz, jak działa łańcuch Markowa, możesz je łatwo zaimplementować w dowolnym stwierdzeniu problemu, aby znaleźć rozwiązanie lub zautomatyzować. Łańcuchy Markowa są bardzo wydajne i stanowią podstawę dla innych, bardziej zaawansowanych technik modelowania.
Zrozumienie łańcucha Markowa może pomóc w zdobyciu głębszej wiedzy w zakresie kilku technik, takich jak krótkie modelowanie i próbkowanie.
Jeśli chcesz dowiedzieć się czegoś o Pythonie, nauce o danych, sprawdź dyplom PG IIIT-B i upGrad w dziedzinie Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, Indywidualnie z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.
Czy istnieją jakieś ciekawe, rzeczywiste przypadki użycia łańcucha Markowa?
Tak, istnieje wiele interesujących, rzeczywistych przypadków użycia łańcuchów Markowa, od tworzenia tekstów po modelowanie finansowe. Większość generatorów tekstu korzysta z sieci Markowa. System łańcuchowy jest szeroko stosowany do generowania fałszywych tekstów, zbyt dużych artykułów i kompilacji przemówień. Generatory nazw, które zwykle widzimy w Internecie, również korzystają z łańcucha Markowa. Innym znanym zastosowaniem łańcuchów Markowa jest przewidywanie nadchodzących słów. Są również pomocne przy autouzupełnianiu i rekomendacjach. Google PageRank i Subreddit Simulator to wybitne przykłady, które wykorzystują łańcuchy Markowa do automatyzacji produkcji materiału dla całego subreddita.
Czy łańcuch Markowa ma kluczowe znaczenie podczas nauki Data Science?
Chociaż łańcuchy Markowa nie są obowiązkowe dla uczniów Data Science, mogą zapewnić doskonałe podejście do nauki modelowania probabilistycznego i technik analizy danych. Łańcuchy Markowa są teoretycznie dość proste i można je wdrożyć bez potrzeby jakichkolwiek skomplikowanych pomysłów statystycznych lub matematycznych. Najbardziej znanym zastosowaniem nauki o danych jest tworzenie prognoz, a naukowcy zajmujący się danymi wykorzystują prawdopodobieństwo warunkowe łańcuchów Markowa do tworzenia tych prognoz. Jego nazwa pochodzi od bezpamięciowej cechy procesów stochastycznych, która mówi, że rozkład przyszłych stanów dowolnego procesu jest determinowany tylko przez bieżący stan tych procesów.
W jaki sposób łańcuch Markowa pomaga w algorytmie Google PageRank?
Algorytm Google PageRank jest dobrze znanym algorytmem rankingowym opartym na linkach. Zamiast oceniać strony na podstawie ich zawartości, PageRank ocenia je na podstawie ich połączonej struktury. Poprzez proste zbadanie obecnego stanu, łańcuch Markowa może pomóc w przewidywaniu zachowania systemu w przejściu z jednego stanu do drugiego.
Gdy użytkownik wprowadza zapytanie do wyszukiwarki, algorytm PageRank identyfikuje witryny w sieci, które pasują do słowa zapytania i wyświetla te strony użytkownikowi w kolejności ich rankingu PageRank, korzystając z sieci Markowa. Algorytm PageRank określa znaczenie witryny wyłącznie na podstawie struktury linków, a nie treści strony.