単純ベイズ分類器
単純ベイズ分類器(たんじゅんベイズぶんるいき、Naive Bayes classifier)は、単純な確率的分類器である。
単純ベイズ分類器の元となる確率モデルは強い(単純な)独立性仮定と共にベイズの定理を適用することに基づいており、より正確に言えば「独立特徴モデル; independent feature model」と呼ぶべきものである。
確率モデルの性質に基づいて、単純ベイズ分類器は教師あり学習の設定で効率的に訓練可能である。多くの実用例では、単純ベイズ分類器のパラメータ推定には最尤法が使われる。つまり、単純ベイズ分類器を使用するにあたって、ベイズ確率やその他のベイズ的手法を使う必要はない。
設計も仮定も非常に単純であるにもかかわらず、単純ベイズ分類器は複雑な実世界の状況において、期待よりもずっとうまく働く。近頃、ベイズ分類問題の注意深い解析によって、単純ベイズ分類器の効率性に理論的理由があることが示された。単純ベイズ分類器の利点は、分類に不可欠なパラメータ(変数群の平均と分散)を見積もるのに、訓練例データが少なくて済む点である。変数群は独立であると仮定されているため、各クラスについての変数の分散だけが必要であり、共分散行列全体は不要である。
抽象的には、分類器の確率モデルは次のような依存クラス変数 C についての条件付きモデルである。クラスは、いくつかの特徴変数 F_1 から F_n までに依存している。
p(C \vert F_1,\dots,F_n)\,
問題は、特徴数 n が大きいとき、あるいは特徴がとりうる値の範囲が大きいとき、確率表に基づいたようなモデルは現実的でなくなることである。そこで、モデルをより扱いやすく変形する。
ベイズの定理を使えば、次のようになる。
p(C \vert F_1,\dots,F_n) = \frac{p(C) \ p(F_1,\dots,F_n\vert C)}{p(F_1,\dots,F_n)} \,
この式を英語で表すと次のようになる(Posterior = 事後、Prior = 事前、Likelihood = 尤度、Evidence = 証拠)。
Posterior = \frac{Prior \times Likelihood}{Evidence} \,
実際には、分母は C に依存しておらず、分母が実質的に一定であるように F_i が与えられるため、分子だけを考慮すればよい。分子は、次のように表される同時確率モデルと等価である。
p(C, F_1, \dots, F_n)\,
これに条件付き確率の定義を繰り返し適用すると、次のように書き換えられる。
p(C, F_1, \dots, F_n)\,
= p(C) \ p(F_1,\dots,F_n\vert C)
= p(C) \ p(F_1\vert C) \ p(F_2,\dots,F_n\vert C, F_1)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C, F_1) \ p(F_3,\dots,F_n\vert C, F_1, F_2)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C, F_1) \ p(F_3\vert C, F_1, F_2) \ p(F_4,\dots,F_n\vert C, F_1, F_2, F_3)
ここで、「単純」な条件付き独立性を仮定する。すなわち、各特徴変数 F_1, \dots, F_n が条件付きで独立であるとする。独立性より、次の式が成り立つ。
p(F_i \mid C, F_{1}, \ldots ,F_{i-1} ) = p(F_i \mid C)\,
すると、同時モデルは次のように表される。
p(C, F_1, \dots, F_n)
= p(C) \ p(F_1\vert C) \ p(F_2\vert C) \ p(F_3\vert C) \ \cdots\,
= p(C) \prod_{i=1}^n p(F_i \vert C)\,
つまり、上述のような独立性の仮定のもとで、クラス変数 C の条件付き分布は次のように表される。
p(C \vert F_1,\dots,F_n) = \frac{1}{Z}  p(C) \prod_{i=1}^n p(F_i \vert C)
ここで、Z は F_1,\dots,F_n にのみ依存する係数であり、特徴変数群の値が既知であれば定数となる。
このようなモデルの方が扱いやすい。いわゆる「クラス事前確率」p(C) と独立確率分布 p(F_i\vert C) に分かれているからである。k 個のクラスがあり、p(F_i) のモデルを r 個のパラメータで表現できるとき、対応する単純ベイズモデルは (k − 1) + n r k 個のパラメータを持つ。二項分類では k=2 であり、n は予測に使われる2値の特徴の個数である。
全てのモデルパラメータ(すなわち、クラス事前確率と特徴確率分布)は、訓練例の集合から相対度数によって見積もることができる。それらは確率の最尤推定量である。離散的でない特徴の場合、離散化を事前に行う必要がある。離散化には教師なし(場当たり的な手法)と教師あり(訓練データに基づいた手法)の手法がある。
あるクラスとある特徴値の組合せが訓練例では出現しない場合、度数に基づいた確率推定はゼロとなる。これを乗算に用いると積がゼロになってしまうという問題が生じる。これを防ぐため、確率値の推定をわずかに修正してどの組合せの確率値もゼロにならないようにすることが行われる(擬似カウント)。
ここまでの説明で、独立特徴モデル、すなわち単純ベイズ確率モデルが導出された。単純ベイズ分類器はそのモデルに決定規則を合わせたものである。よく使われる決定規則は、最も事後確率が高い仮説を採用するというもので、最大事後確率(MAP)決定規則と呼ばれている。そのような分類器を関数 \mathrm{classify} とすると、次のように表される。
\mathrm{classify}(f_1,\dots,f_n) = \mathop{\mathrm{argmax}_c \ p(C=c) \prod_{i=1}^n p(F_i=f_i\vert C=c)
独立性を仮定することで、事後確率の計算結果が予期しないものとなる可能性を懸念する場合がある。観測結果に依存性がある状況では、確率に関する第二の公理、すなわち確率は常に 1 以下でなければならないという公理に反する結果が得られる可能性がある。
独立性の仮定を広範囲に適用することが正確性に欠けるという事実があるにもかかわらず、単純ベイズ分類器は実際には驚くほど有効である。特に、クラスの条件付き特徴分布を分離することは、各分布を1次元の分布として見積もることができることを意味している。そのため、特徴数が増えることで指数関数的に必要なデータ集合が大きくなるという「次元の呪い」から生じる問題を緩和できる。MAP 規則を使った確率的分類器の常として、正しいクラスが他のクラスより尤もらしい場合に限り、正しいクラスに到達する。それゆえ、クラス確率はうまく見積もられていなくてもよい。言い換えれば、根底にある単純な確率モデルの重大な欠陥を無効にするほど、分類器は全体として十分に頑健である。単純ベイズ分類器がうまく機能する理由についての議論は、後述の参考文献にもある。
単純ベイズ分類機で、あるクラスに属さない補集合(Complement)を用いて学習させる拡張をComplement Naive Bayesという。
たとえば文章分類で純粋な単純ベイズ分類器では文章中のそのクラスに属する単語の出現率が大きくなってしまうが、属さない確率が最も低いクラスとして識別することで文章中のこのばらつきを最低限に抑えられる。これによってよい識別が可能になる。