12
データマイニング クラス分類(II) - ナイーブベイズ 瀬々 潤 [email protected]

Datamining 3rd naivebayes

  • Upload
    sesejun

  • View
    510

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Datamining 3rd naivebayes

データマイニングクラス分類(II) - ナイーブベイズ

瀬々 潤[email protected]

Page 2: Datamining 3rd naivebayes

ベイズ分類器Bayes Classification / Bayesian

• ベイズの定理を利用したクラス分類手法の総称• ここでは,最も単純で,全てのベイズ分類器の基礎となるNaive

Bayesを紹介する• Spam filterなどに利用されている

• 発展版としてはベイジアンネットワーク(Bayesian network)がある• 利用例:遺伝子ネットワーク(遺伝子間の相互関係解析)や脳機

能解析(脳のどの部位がどの部位に影響を与えているか)など• A Tutorial on Learning With Bayesian Networks. David

Heckerman. 1995. http://research.microsoft.com/research/pubs/view.aspx?msr_tr_id=MSR-TR-95-06

2

Page 3: Datamining 3rd naivebayes

Naive Bayesで利用するデータ• 決定木同様の形式• Spamfilterの場合は,各サンプル=メール,各属性=特定の単語

が含まれているか(無料,高収入,当選,etc...),クラス=Spamかどうか.

3

ID C:コンタクト T1:30才未満 T2:近視 T3:乱視 T4:ドライアイ

A ○ YES YES YES NOB ○ YES YES NO NOC ○ NO YES YES NOD ○ NO YES NO NOE × YES YES YES YESF × YES YES NO YESG × NO NO NO YESH × NO NO NO NOI × NO NO NO YESJ × NO NO NO NO

Page 4: Datamining 3rd naivebayes

ベイズの定理• n個の属性(テスト) T1~Tnを考える.• n個の属性の結果を含むクラス不明のデータX(=テス

トデータ)を次のように記述する

•  をテストデータXから予測されるクラスとする• ベイズの定理は次式で表される

152 第 5章 離散値のクラス分類問題法でも C4.573) ではグループを分割せず,統計的な信頼区間の情報を基に枝刈りを行っている.決定木の構築はMurthy63)に,構築した木を適切な大きさに刈る方法はBres-

lowと Aha13) に詳しい.

5.5 ベイズ分類器本節では訓練データにおける確率を利用したクラス分類方法であるベイズ分類器 (Bayes Classification)25) を紹介する.本節で紹介,実装するのは最も単純なベイズ分類のナイーブベイズ (Naıve Bayes)である.この手法はテストが互いに独立であることを仮定している.発展版として,テストが独立であることを仮定しない代わりに,事前にテスト間の依存を与えたり,計算時間を使ってテスト間の依存も求めるベイジアンネットワーク (Bayesian network)33, 64)

があり,遺伝子間の制御関係を調査するために利用されている.

5.5.1 ベイズの定理ベイズ分類を説明するために,ベイズ分類で利用するベイズの定理 (Bayes

Theorem)を導入する.n個のテストの結果を含むクラス不明のテストデータをX = (T1 = x1)!(T2 = x2)! · · ·!(Tn = xn)とする.予測CH をテストデータX がクラス C = {C1, C2, ...}のどれに属するかの予測とする.P (CH |X)はテストデータX が与えられた時クラスがCH になる確率である.この P (CH |X)を,条件 X の基での CH の事後確率と呼ぶ.表 5.3の発病予測の例を考えよう.CH を発病する事象 (C = "),今回テストするサンプルを A とすると,P (CH |A)は,サンプル Aが発病する確率である.この事後確率 P (CH |X)を計算するために,ベイズの定理を利用する.

定義 5.4 ベイズの定理は次式で表される.

P (CH |X) =P (CH # X)

P (X)=

P (X|CH)P (CH)P (X)

ここで P (CH)は事象 CH の事前確率と呼ばれ,どのサンプルがテストされるか分からない状況で,今までの経験から一般的に事象 CH が起こる確率を表している.CH を発病する事象とすると P (CH)は一般にガン化する確率を示

P (CH | X) =P (CH ∩X)

P (X)=

P (X | CH)P (CH)P (X)

CH

事前確率事後確率

P (CH ∩X) = P (CH | X)P (X) = P (X | CH)P (CH)上の式は以下の式から分かる

4

Page 5: Datamining 3rd naivebayes

P (CH | X) =P (CH ∩X)

P (X)=

P (X | CH)P (CH)P (X)

一般にコンタクトをする確率(事前確率)

テストデータの属性集合Xが与えられた時,コンタクトである確率(事後確率, CHはコンタクトをする事象とする)

属性の値がCHの人に対してテストデータの属性がXになる確率

例のデータでは・・・

一般にテストデータの属性の値がXになる確率

ID コンタクト 30才未満 近視 乱視 ドライアイ

K ? No No Yes YesL ? No Yes No No

Page 6: Datamining 3rd naivebayes

ナイーブベイズ分類器のアイディア• 事後確率が大きくなるクラスを選択する• 属性の集合Xが与えられていると仮定すると,

• 属性の集合Xが与えられた場合に,クラスが×である事後確率より,○である事後確率の方が大きいので,Xのサンプルのクラスは○と考える方が妥当

• 属性の集合Xが与えられた場合に,クラスが○である事後確率より,×である事後確率の方が大きいので,Xのサンプルのクラスは×と考える方が妥当

P (C =� | X) > P (C = × | X)

P (C =� | X) < P (C = × | X)

6

Page 7: Datamining 3rd naivebayes

事後確率の計算

ここでと表記する.

ベイズの定理よりP (C� | X) =

P (X | C�)P (C�)P (X)

P (C�) = N�/N

X = (T1 = x1) ∧ (T2 = x2) ∧ · · · ∧ (Tn = xn)= x1 ∧ x2 ∧ · · · ∧ x3

P (X | C�) = P (x1 ∧ x2 ∧ · · · ∧ xn | C�)= P (x1 | C�)P (x2 | C�) · · · P (xn | C�)

=n�

k=1

P (xk | C�)

P (X) は,仮定CHに因らないので,ここでは,計算の必要なし

各テストが互いに独立であると仮定をすると,次式が成立

Page 8: Datamining 3rd naivebayes

具体例で計算してみる

• 例としてサンプルKのクラスを予測する

8

ID C:コンタクト T1:30才未満 T2:近視 T3:乱視 T4:ドライアイA ○ YES YES YES NOB ○ YES YES NO NOC ○ NO YES YES NOD ○ NO YES NO NOE × YES YES YES YESF × YES YES NO YESG × NO NO NO YESH × NO NO NO NOI × NO NO NO YESJ × NO NO NO NO

K ? NO NO YES YESL ? NO YES NO NO

P (C�) = 4/10 = 0.4, P (C×) = 6/10 = 0.6X = (T1 = No) ∧ (T2 = No) ∧ (T3 = Yes) ∧ (T4 = Yes)

Page 9: Datamining 3rd naivebayes

クラスが○の予測より

訓練データより,各確率を計算すると,

各テストが互いに独立であると仮定すると,

以上より,

X = (T1 = No) ∧ (T2 = No) ∧ (T3 = Yes) ∧ (T4 = Yes)

P (T1 = No | C�) = 2/4 = 0.5P (T2 = No | C�) = 0/4 = 0.0P (T3 = Yes | C�) = 2/4 = 0.5P (T4 = Yes | C�) = 0/4 = 0.0

P (X|C�) = 0.5× 0.0× 0.5× 0.0 = 0.0P (X | C�) · P (C�) = 0.0× 0.4 = 0.0

P (X | C�) = P (T1 = No | C�)× P (T2 = No | C�)×P (T3 = Yes) | C�)× P (T4 = Yes | C�)

Page 10: Datamining 3rd naivebayes

クラスが×の予測各テストが互いに独立であると仮定すると,

より

訓練データより,各確率を計算すると,

以上より,

X = (T1 = No) ∧ (T2 = No) ∧ (T3 = Yes) ∧ (T4 = Yes)P (X | C×) = P (T1 = No | C×)× P (T2 = No | C×)×

P (T3 = Yes | C×)× P (T4 = Yes | C×)

P (T1 = No | C×) = 4/6 = 0.667P (T2 = No | C×) = 4/6 = 0.667P (T3 = Yes | C×) = 1/6 = 0.167P (T4 = Yes | C×) = 4/6 = 0.667

P (X|C×) = 0.667× 0.667× 0.167× 0.667 = 0.0494P (X | C×) · P (C×) = 0.0494× 0.4 = 0.0198

Page 11: Datamining 3rd naivebayes

予測及び計算上の注意

なので

よって,Xのクラスの予測はC=×となる.

• テストの数が増えると,P(X|C)は非常に小さい数となる.• これを避けるため,Log P(X|C)を計算することが多い

11

P (X | C�) · P (C�) = 0.0P (X | C×) · P (C×) = 0.0198

P (X | C�) · P (C�) < (X | C×) · P (C×)

Page 12: Datamining 3rd naivebayes

Naive Bayesのまとめ

• Naive Bayesの予測は,テストが全て独立なら最適な回答となっている.• でも,その仮定が満たされることは,まれ.

• 対象となるクラスが{A,B,AB,O}の様に3個以上のクラスの場合にも,同様にP(C=A|X), P(C=B|X), P(C=AB|X), P(C=O|X) をそれぞれ計算し,最も大きな確率のクラスを選択すれば良い

• テスト間に独立性が無い場合には,テスト間の相関(遷移確率)を求める必要が有る

• ベイジアンネットワーク

12