データ解析入門

大規模データ解析の基礎

内山 俊郎 - 北海道情報大学

データ解析入門

確率論と確率モデル(5章)

画面操作キー(全画面,ワイド表示,ソースコードハイライト)

確率論と確率モデル(5章)

  • ナイーブベイズ分類器を例として「確率モデル」を解説.データ解析が
  • 「モデルを用いて,データの背後にある特徴や関係を明らかにする」
    ことを示す
  • 分類器を構成する方法は2つ(本章では後者について解説)
    • 直接的に識別関数を学習する(4章)
    • クラスに属する特徴ベクトル(入力ベクトル)の生成モデルを用いて分類器構成
  • 理解に必要な「確率論」を概説(目標:「壺の問題」が解ける)
    • 同時確率,事前確率,事後確率.確率計算での対数の利用
  • 文書解析などで欠かせない多項モデルをフルーツポンチの例で解説

事象と確率

  • サイコロを投げて「偶数の目が出る確率」を考える
    • サイコロを投げることを試行という
    • 試行によって得られる結果を事象という
    • 「偶数の目が出る事象」を考え,これを記号Aで表し
    • 事象Aが起こる確率をP(A)と書く
    • A:偶数の目が出る事象,事象B:3の倍数が出る事象とし,
    • ABが同時に起こる確率をP(A,B)と書き,
    • P(A,B)を「事象Aと事象B同時確率」とよぶ
    • 対して,P(A)P(B)周辺確率とよぶ(表の周囲に出現)
  • 記号化は,考えを整理するために欠かせない手段

確率の表と周辺確率

「アンケート回答のうち,男子は7割で,男子かつコーヒーが好きという人は56%,女子かつコーヒーが好きという人は15%」→確率の表作成

  • 事象A1:男子の回答である,  事象A2:女子の回答である
    事象B1:好きという回答である, 事象B2:嫌いという回答である.
  • B1B2計(周辺)
    A1P(A1,B1)=0.56P(A1,B2)P(A1)=0.7
    A2P(A2,B1)=0.15P(A2,B2)P(A2)
    計(周辺)P(B1)P(B2)1
  • 確率の表ですが,度数を集計するクロス表と実質的に同じ
  • 演習問題5.2(表の完成,各マスの確率が何を意味するかを言う)

条件付き確率とベイズの定理(1)

  • 事象Bが起こった条件下で事象Aが起こる条件付き確率P(A|B)
  • P(A|B)=P(A,B)P(B)
    変形すると「確率の乗法の定理」になる
    P(A,B)=P(B|A)P(A), P(A,B)=P(A|B)P(B)
  • 式の読み方:「事象Aと事象Bが同時に起こる確率は,事象Aが起こり,さらにその条件下で事象Bが起こる確率に等しい」

条件付き確率とベイズの定理(2)

  • P(A|B)=P(A,B)P(B),P(A,B)=P(B|A)P(A)
  • 条件付き確率(左式)の分子を乗法の定理(右式)で置き換えたものが「ベイズの定理」「条件付き確率が左右逆になる」点が重要! P(A|B)=P(B|A)P(A)P(B)

条件付き確率とベイズの定理(3)

  • P(A|B)=P(B|A)P(A)P(B)
  • 「条件付き確率が左右逆になる」ことで,通常は難しい「結果から原因を推定する」
  • 探りたい原因を事象A,得られる結果を事象Bとするとき
  • P(A|B):事後確率(←これが知りたい事)
    • 結果であるBがわかった後に原因Aが起こっていた確率
  • P(A):事前確率
    • 結果であるBがわかる前に(関係なく)原因Aが起こる確率
  • P(B|A):尤度(←これは予測容易なことが多い)
    • 原因Aが起こるときに,結果Bが起こる確率(尤もらしさ)

条件付き確率とベイズの定理(4)

事象A1:男子の回答である,  事象A2:女子の回答である
事象B1:好きという回答である, 事象B2:嫌いという回答である.

B1B2計(周辺)
A1P(A1,B1)=0.56P(A1,B2)P(A1)=0.7
A2P(A2,B1)=0.15P(A2,B2)P(A2)
計(周辺)P(B1)P(B2)1
  • 問:「回答が男子からであるときに,コーヒーを好きと答えている確率」(ヒント:本問については,ベイズの定理不要,演習問題5.3)
  • P(B1|A1)=P(A1,B1)P(A1)=0.560.7=0.8

壺の問題(1)その1

2つの壺があり,第1の壺には赤玉が2個と白玉が1個,第2の壺には赤玉が1個と白玉が2個入っている.第1の壺と第2の壺は,2:1の確率で選ばれる.今,いずれかの壺を選んで玉を取り出したところ,白玉であった.第1の壺が選ばれていた確率を求めよ.

  • A1:第1の壺が選ばれる事象,A2:第2の壺が選ばれる事象,
    B1:赤玉が選ばれる事象,B2:白玉が選ばれる事象
  • 求めるべき確率は,P(A1|B2)
    • P(A1|B2)=P(A1)P(B2|A1)P(B2),   
      問題文より P(A1)=2/3P(B2|A1)=1/3
    • 周辺確率は P(B2)=P(B2,A1)+P(B2,A2)
      =P(B2|A1)P(A1)+P(B2|A2)P(A2)
      =1/32/3+2/31/3=4/9
    • 式に代入 P(A1|B2)=2/31/34/9=1/2(答え)

壺の問題(1)その2

2つの壺があり,第1の壺には赤玉が2個と白玉が1個,第2の壺には赤玉が1個と白玉が2個入っている.第1の壺と第2の壺は,2:1の確率で選ばれる.今,いずれかの壺を選んで玉を取り出したところ,白玉であった.第1の壺が選ばれていた確率を求めよ.与えられているのは条件付き確率と一部の周辺確率.確率の表作成
A1:第1の壺が選ばれる事象,A2:第2の壺が選ばれる事象,(←既知)
B1:赤玉が選ばれる事象,B2:白玉が選ばれる事象(←未知)

B1B2計(周辺)
A1P(A1,B1)=P(B1|A1)P(A1)P(A1,B2)=P(B2|A1)P(A1)P(A1)
A2P(A2,B1)=P(B1|A2)P(A2)P(A2,B2)=P(B2|A2)P(A2)P(A2)
計(周辺)P(B1)P(B2)1
求めるものP(A1|B2)=P(A1,B2)/P(B2)

壺の問題(2)

[演習5.5]2つの壺a,bがあり,aの壺には赤玉が2個と白玉が3個,bの壺には赤玉が4個と白玉 が8個入っている.今,どちらかの壺を選んで玉を取り出したところ,赤玉であった.aの壺が選ばれていた確率を求めよ(ヒント:壺aと壺bが選ばれる確率は同じ)

[演習5.6]赤と青の2つの箱があり,赤の箱にはりんごが2個とオレンジが6個,青の箱にはり んごが3個とオレンジが1個入っている.赤い箱は40%,青い箱は60%の確率で選ばれる.今,箱の1つをランダムに選び,フルーツをランダムに1個取り出したところ,オレンジであった.青い箱が選ばれていた確率を求めよ.

  • いずれの問題も,尤度(壺や箱がわかっている時に赤玉やオレンジが選ばれる確率)はすぐわかる
  • ところが,原因(どの壺を選んだか)の確率を求めるには,工夫が必要
  • 世の中で必要なのは,こちら(=結果から原因を推定すること)
  • 確率の表を頭に思い描き,ベイズの定理を使って解くのが最終目標.最初は表を作成して解いてもOK.

ナイーブベイズ分類器

  • 文書の生成モデルを考え,文書が与えられたとき,その文書のクラスあるいはカテゴリ(政治,経済,スポーツ)を推定する方法を解説
  • ナイーブベイズ分類器は,生成モデルを使って分類を行う
  • 「事象の条件付き独立」の仮定をつかう
    • フルーツポンチなら「あるフルーツが選択されることは,別のフルーツが選択されることに影響されない」(容易に納得できる)
    • 文書なら「ある単語の出現は,他の単語の出現に影響されない」(これは大胆な仮定)

確率変数と確率分布

  • 確率変数は,「確率的に値が決まる変数」で,サイコロを投げたときに出る目の値は,確率変数の例.
  • 「サイコロを投げた時に出る目の値を確率変数Xとする」のように使い,確率変数には,それがとる値に対し確率が与えられる
  • サイコロの場合でいえば,
    • P(X=1)=1/6,P(X=2)=1/6,
  • 確率変数が,それぞれの値をとるときの確率 P(X=xk)=f(xk)
    X確率分布という
  • 確率変数および確率分布を,「サイコロの例」で覚えてください

2項分布と多項分布(2項分布,参考)

  • コインを3回投げ,結果は「表→裏→表」でした
  • このように出る確率は? 答えは1/8
  • では,表が2回,裏が1回出る確率はどうでしょうか? 答えは3/8
  • 確率が変わるのは,表が2回で裏が1回の組み合わせが3通りのため
    • 表表裏,表裏表,裏表表
    • 3回のうち表が2回出る組み合わせは, 3C2=3221=3
  • コインを10回投げて,表が3回出る確率は,
    10C3(0.5)3(10.5)103
  • 試行に成功する確率がpのとき,n回繰り返してx回成功する確率は P(X=x)=f(x)=nCxpx(1p)nx
  • f(x)が,確率変数Xを「成功する回数」としたときの確率分布(この場合は2項分布

2項分布と多項分布(多項分布,重要

  • 巨大フルーツポンチの壺から,果物を10粒すくってボウルに入れる
  • フルーツポンチの壺には,{ぶどう,白桃,ナタデココ,いちご}がq1,q2,q3,q4の割合(=確率)で入っている
  • ボウルの中を見たところ,それぞれが{2,3,4,1}個入っていた
  • 組み合わせを考えなければ,起こる確率は q21q32q43q4
  • 「同時確率が掛け算になる」のは,果物を取り出す各事象が独立ゆえ
    • 事象の独立:取り出した果物は,取り出す果物に影響しない
  • 各果物の出現確率がqm,出現個数が(x1,,xM)である確率は, 確率変数Xm(m=1,,M)m番目の果物が出現する個数としたときの確率分布(この場合は多項分布)で表される(組み合わせの数をAと表記)
  • f(x1,,xM)=AMm=1qxmm

フルーツポンチ(1)

トロピカル,クラシック,山形,山梨というラベルが付いた壺があり,それぞれ特徴的なフルーツポンチ.オーダーにより壺を選び,選んだ壺からフルーツポンチをすくい,ボウルに入れて提供.

果物\壺
トロピカルクラシック山形山梨
マンゴー
0.50.050.030.05
ナタデココ
0.10.10.10.1
いちご
0.030.30.050.05
ぶどう
0.030.10.150.5
さくらんぼ
0.040.10.40.05
もも
0.10.30.250.2
アロエ
0.20.050.020.05
  • のフルーツ(=果物)のブレンド割合(縦方向の和は1)
  • ブレンド割合=壺が選ばれたときに各果物が選ばれる条件付き確率.例:P(|)=0.5 ←トロピカルの壺で,マンゴーが選ばれるのは50%

フルーツポンチ(2)

  • k番目の壺のm番目のフルーツの割合をqkmと表す(表の4x7データ)
  • ボウル中の果物数が(x1,,x7)である事象をXk番目の壺を選ぶ事象をCkとするとき,k番目の壺からXが取り出される確率は, P(X1=x1,X2=x2,,X7=x7|Ck)=A7m=1(qkm)xm
  • 結果から原因を探る問題を考える.結果(ボウルの中身X)がk番目の壺から取り出される確率(事後確率)は下記(ベイズの定理より).これを最大化するkを探す(MAP推定)のが妥当な解決法. P(Ck|X)=P(Ck)P(X|Ck)P(X),
    ここでP(Ck)k番目の壺が選ばれる事前確率

フルーツポンチ(3)

P(Ck|X)=P(Ck)P(X|Ck)P(X)

  • 式を最大化するkを考える.まず,両辺の対数をとると logP(Ck|X)=logP(Ck)+logP(X|Ck)logP(X)
  • 右辺第2項を前述の式A7m=1(qkm)xmで置き換えると logP(Ck)+logA+7m=1xmlogqkmlogP(X)
  • 第2,4項は定数.よって事後確率の最大化は下式による logP(Ck)+7m=1xmlogqkm
  • 式の第2項を対数尤度とよび,これの最大化による推定は最尤推定

フルーツポンチ(4)

logP(Ck)+7m=1xmlogqkm

  • 演習問題5.7.壺kのMAP推定(すべての壺の事前確率は等しい).
    • ボウル1:マンゴー3,ナタデココ2,もも2,アロエ3
    • ボウル2:マンゴー1,ナタデココ1,ぶどう2,さくらんぼ6
    • ボウル3:いちご1,ぶどう4,さくらんぼ1,もも3,アロエ1
    • ボウル4:自分で考えたフルーツの組み合わせ
  • プログラム(JavaScriptアプリケーション)での対数事後確率の計算
    • 手作業(電卓)による演習問題5.7をプログラム(アプリ)で実施
    • 教科書にある,ボウルの生成(乱数が異なるので結果は異なる)
    • ボウルの推定実験(演習5.8)

フルーツポンチ(5)

  • フルーツの割合qkmや事前確率P(Ck)は,生成モデルパラメータ
  • 実世界(文書解析)では,パラメータの値も推定対象
  • 山形の壺から取り出した果物100個のうち23個→q36=0.23
  • ボウル100個のうち30個山形→P(C3)=0.30
  • 観測値からパラメータの値が推定できる
  • ゼロ頻度問題(出現回数がゼロでも本当にゼロかは不明)の回避
  • 出現回数(各壺,各果物の)に1を加えることで回避(ラプラス法)
  • 演習問題5.9(パラメータの推定実験)の実施
    • 「それぞれのパラメータの値の推定精度は,何に依存するのか」

現象(観測値)とモデル(1)

  • 現実世界の現象は複雑.何らかの抽象化/単純化を行ってモデル
  • モデルのパラメータは,観測値をモデルにあてはめることで推定する
  • 生成モデルがあれば,
    • 観測値を予測することができる
    • 観測値をシミュレーションとして生成できる
  • モデルは唯一ではない.より良いモデル化は本質的な課題

現象(観測値)とモデル(2)

  • ナイーブベイズ分類器における現象とモデルについて
  • フルーツが出現する事象Xを束ねたものをX(入力ベクトル)k番目の壺が選択される事象Ckを束ねたものをC(クラスラベル),モデルパラメータ全体をQとする
  • クラスラベルCとモデルパラメータQから入力ベクトルXを生成したり,モデルパラメータQと入力ベクトルXからクラスラベルCを推定したり,など互いに推定しあう関係にある

平方和最小基準クラスタリング(1)

平方和最小基準クラスタリングには生成モデルがあり,観測値をモデルに当てはめてモデルパラメータを推定していた(以下の導出は参考)

  • Ckに属する入力ベクトルxiが「重心ベクトルがμk,分散がσ2で,次元間に相関がない多次元正規分布」にしたがう(生成モデルとする)なら,確率密度関数pp(xi|xiCk)=1(2πσ2)M/2exp(xiμk22σ2)
  • 入力ベクトル集合Xの同時確率密度関数P(X|C)P(X|C)=Kk=1xiCk1(2πσ2)M/2exp(xiμk22σ2)

平方和最小基準クラスタリング(2)

続き

  • P(X|C)=Kk=1xiCk1(2πσ2)M/2exp(xiμk22σ2)
  • 対数を取る(大小関係は変わらず)と右辺は, NM2log(2πσ2)12σ2Kk=1xiCkxiμk2
  • 式の最大化はKk=1xiCkxiμk2=JWの最小化
  • 平方和最小基準クラスタリングも,実は多次元正規分布モデルを用いて,データの背後にある特徴や関係性を明らかにする」解析である

<Thank You!>

データ解析入門(第5章) 内山俊郎