###### tags: `opendev`
# マルコフ性(Markov property)
## マルコフ過程(Markov process)
未来の挙動が現在の値だけで決定され、過去の挙動と無関係であるという性質を**マルコフ性**と言う。
また、マルコフ性を持つ**確率過程**(時間とともに変化する確率変数)を**マルコフ過程**という。
---
状態遷移図で表される↓

よくある問題が、
```
ある日の天気が雨のとき、2日後の天気が晴れになる確率は幾らか。
```
今日→明日→2日後
雨→ ? →晴れ
雨の日の2日後が晴れであるとき、$3$ 通りある。
雨→晴れ→晴れ
$0.3×0.4=0.12$
雨→曇り→晴れ
$0.5×0.3=0.15$
雨→雨 →晴れ
$0.2×0.3=0.06$
$0.12+0.15+0.06=0.33$
ある日の天気が雨のとき、2日後の天気が晴れになる確率は ==$0.33$==
:::info
:book: Note:
このように、ただ1つの状態から次に起こる事象が決定されるマルコフ過程を**単純マルコフ過程**という。
:::
## マルコフ連鎖(Markov Chain)
マルコフ過程のうち、とりうる状態が離散的(有限または可算)なものを言う(**有限状態マルコフ過程**, **離散状態マルコフ過程**)
---
文章生成の場合、
「`吾輩は猫である。`」 という文章を
単語ベース(分かち書き)
「吾輩」→「は」→「猫」→「で」→「ある」→「。」
「吾輩」→「は」 のように文章は単語が遷移することで構成されている。
出現する単語がどのように出現するか(遷移確率)を蓄積させていくで、様々な文章を生成することができる。
**N階マルコフ連鎖**では、N個にまとめた単語の遷移確率を求める。
$N=2$ の場合、
「吾輩は」→「猫で」→「ある。」
単語を2つにまとめ、それぞれの遷移確率を求める。
$N=1$ の場合、**単純マルコフ連鎖**という。
[N階マルコフ連鎖のリンク(colab)](https://colab.research.google.com/drive/1JrWNBFD10UpwOYR4sITUN1YE14aeozp1?usp=sharing)
:::info
:book: Note:
**分かち書き**(文章を語の区切りで空白を挟み分割すること)↓
```
import sys
import MeCab
mecab = MeCab.Tagger ("-Ochasen")
text = mecab.parse ("吾輩は猫である")
print(text)
```
```
吾輩は猫である
吾輩 名詞,代名詞,一般,*,*,*,吾輩,ワガハイ,ワガハイ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
猫 名詞,一般,*,*,*,*,猫,ネコ,ネコ
で 助動詞,*,*,*,特殊・ダ,連用形,だ,デ,デ
ある 助動詞,*,*,*,五段・ラ行アル,基本形,ある,アル,アル
EOS
```
:::