単純ベイズ分類器のソースを表示
←
単純ベイズ分類器
ナビゲーションに移動
検索に移動
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
'''単純ベイズ分類器'''(たんじゅんベイズぶんるいき、{{lang-en-short|Naive Bayes classifier}})は、単純な確率的[[分類 (統計学)|分類]]器である。 == 概要 == 単純ベイズ分類器の元となる確率モデルは強い(単純な)[[確率論的独立性|独立性]]仮定と共に[[ベイズの定理]]を適用することに基づいており、より正確に言えば「独立特徴モデル; independent feature model」と呼ぶべきものである。 確率モデルの性質に基づいて、単純ベイズ分類器は[[教師あり学習]]の設定で効率的に訓練可能である。多くの実用例では、単純ベイズ分類器のパラメータ推定には[[最尤法]]が使われる。つまり、単純ベイズ分類器を使用するにあたって、[[ベイズ確率]]やその他のベイズ的手法を使う必要はない。 設計も仮定も非常に単純であるにもかかわらず、単純ベイズ分類器は複雑な実世界の状況において、期待よりもずっとうまく働く。近頃、ベイズ分類問題の注意深い解析によって、単純ベイズ分類器の効率性に理論的理由があることが示された<ref>[http://www.cs.unb.ca/profs/hzhang/publications/FLAIRS04ZhangH.pdf The Optimality of Naive Bayes] Harry Shang</ref>。単純ベイズ分類器の利点は、分類に不可欠なパラメータ(変数群の平均と分散)を見積もるのに、訓練例データが少なくて済む点である。変数群は独立であると仮定されているため、各クラスについての変数の分散だけが必要であり、[[共分散行列]]全体は不要である。 == 単純ベイズ確率モデル == 抽象的には、分類器の確率モデルは次のような依存クラス変数 <math>C</math> についての[[条件付きモデル]]である。クラスは、いくつかの特徴変数 <math>F_1</math> から <math>F_n</math> までに依存している。 :<math>p(C \vert F_1,\dots,F_n)\,</math> 問題は、特徴数 <math>n</math> が大きいとき、あるいは特徴がとりうる値の範囲が大きいとき、確率表に基づいたようなモデルは現実的でなくなることである。そこで、モデルをより扱いやすく変形する。 [[ベイズの定理]]を使えば、次のようになる。 :<math>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)} \,</math> この式を英語で表すと次のようになる(Posterior = 事後、Prior = 事前、Likelihood = 尤度、Evidence = 証拠)。 :<math>Posterior = \frac{Prior \times Likelihood}{Evidence} \,</math> 実際には、分母は <math>C</math> に依存しておらず、分母が実質的に一定であるように <math>F_i</math> が与えられるため、分子だけを考慮すればよい。分子は、次のように表される[[同時分布|同時確率]]モデルと等価である。 :<math>p(C, F_1, \dots, F_n)\,</math> これに[[条件付き確率]]の定義を繰り返し適用すると、次のように書き換えられる。 :<math>p(C, F_1, \dots, F_n)\,</math> ::<math>= p(C) \ p(F_1,\dots,F_n\vert C)</math> ::<math>= p(C) \ p(F_1\vert C) \ p(F_2,\dots,F_n\vert C, F_1)</math> ::<math>= 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)</math> ::<math>= 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)</math> ここで、「単純」な[[条件付き独立|条件付き独立性]]を仮定する。すなわち、各特徴変数 <math>F_1, \dots, F_n</math> が条件付きで[[確率論的独立性|独立]]であるとする。独立性より、次の式が成り立つ。 :<math>p(F_i \mid C, F_{1}, \ldots ,F_{i-1} ) = p(F_i \mid C)\,</math> すると、同時モデルは次のように表される。 :<math>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\,</math> :<math>= p(C) \prod_{i=1}^n p(F_i \vert C)\,</math> つまり、上述のような独立性の仮定のもとで、クラス変数 <math>C</math> の条件付き分布は次のように表される。 :<math>p(C \vert F_1,\dots,F_n) = \frac{1}{Z} p(C) \prod_{i=1}^n p(F_i \vert C)</math> ここで、<math>Z</math> は <math>F_1,\dots,F_n</math> にのみ依存する係数であり、特徴変数群の値が既知であれば定数となる。 このようなモデルの方が扱いやすい。いわゆる「クラス事前確率」<math>p(C)</math> と独立確率分布 <math>p(F_i\vert C)</math> に分かれているからである。<math>k</math> 個のクラスがあり、<math>p(F_i)</math> のモデルを <math>r</math> 個のパラメータで表現できるとき、対応する単純ベイズモデルは (''k'' − 1) + ''n'' ''r'' ''k'' 個のパラメータを持つ。[[二項分類]]では <math>k=2</math> であり、<math>n</math> は予測に使われる2値の特徴の個数である。 == パラメータ推定 == 全てのモデルパラメータ(すなわち、クラス事前確率と特徴確率分布)は、訓練例の集合から相対度数によって見積もることができる。それらは確率の最尤推定量である。離散的でない特徴の場合、[[離散化]]を事前に行う必要がある。離散化には教師なし(場当たり的な手法)と教師あり(訓練データに基づいた手法)の手法がある。 あるクラスとある特徴値の組合せが訓練例では出現しない場合、度数に基づいた確率推定はゼロとなる。これを乗算に用いると積がゼロになってしまうという問題が生じる。これを防ぐため、確率値の推定をわずかに修正してどの組合せの確率値もゼロにならないようにすることが行われる({{仮リンク|擬似カウント|en|Pseudocount}})。 == 確率モデルからの分類器構築 == ここまでの説明で、独立特徴モデル、すなわち単純ベイズ確率モデルが導出された。単純ベイズ分類器はそのモデルに決定規則を合わせたものである。よく使われる決定規則は、最も事後確率が高い仮説を採用するというもので、[[最大事後確率判定法|最大事後確率]](MAP)決定規則と呼ばれている。そのような分類器を関数 <math>\mathrm{classify}</math> とすると、次のように表される。 :<math>\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)</math> == 議論 == 独立性を仮定することで、事後確率の計算結果が予期しないものとなる可能性を懸念する場合がある。観測結果に依存性がある状況では、確率に関する第二の公理、すなわち確率は常に 1 以下でなければならないという公理に反する結果が得られる可能性がある。 独立性の仮定を広範囲に適用することが正確性に欠けるという事実があるにもかかわらず、単純ベイズ分類器は実際には驚くほど有効である。特に、クラスの条件付き特徴分布を分離することは、各分布を1次元の分布として見積もることができることを意味している。そのため、特徴数が増えることで指数関数的に必要なデータ集合が大きくなるという「[[次元の呪い]]」から生じる問題を緩和できる。MAP 規則を使った確率的分類器の常として、正しいクラスが他のクラスより尤もらしい場合に限り、正しいクラスに到達する。それゆえ、クラス確率はうまく見積もられていなくてもよい。言い換えれば、根底にある単純な確率モデルの重大な欠陥を無効にするほど、分類器は全体として十分に[[ロバストネス|頑健]]である。単純ベイズ分類器がうまく機能する理由についての議論は、後述の参考文献にもある。 == 例: 文書分類 == 単純ベイズ分類器を[[文書分類]]問題に適用した例を示す。文書群をその内容によって分類する問題であり、例えば、[[電子メール]]を[[スパム (メール)|スパム]] (C=0) とスパムでないもの (C=1) に分類する。文書は、単語群としてモデル化できるいくつかのクラスから取り出されるものとする。ここで、文書のi番目の単語 <math>w_i</math> が、クラス ''C'' から取り出された文書に出現する(独立な)確率は、次のように書き表せる。 :<math>p(w_i \vert C)\,</math> ただしこの式では、問題をより簡単にするため、単語は文書中にランダムに分布すると仮定している。すなわち、単語の出現確率は、文書の長さ、文書中での他の単語との位置関係、その他の文脈には依存しないものとする。 すると、あるクラス''C''が与えられた時、文書''D'' が取り出される確率は次のようになる。 :<math>p(D\vert C)=\prod_i p(w_i \vert C)\,</math> 解きたい問題は、「ある文書 ''D'' が、あるクラス ''C'' に属する確率」であり、言い換えれば <math>p(C \vert D)\,</math> の値である。 ここで、定義から([[確率空間]]参照) :<math>p(D\vert C)={p(D\cap C)\over p(C)}</math> かつ :<math>p(C\vert D)={p(D\cap C)\over p(D)}</math> となる。ベイズの定理によれば、[[尤度関数]]を使って確率が次のように表される。 :<math>p(C\vert D)={p(C)\over p(D)}\,p(D\vert C)</math> ここで、クラスは ''S'' と ¬''S'' の2つしかないと仮定する(例えば、スパムかそうでないか)。 :<math>p(D\vert S)=\prod_i p(w_i \vert S)\,</math> かつ :<math>p(D\vert\neg S)=\prod_i p(w_i\vert\neg S)\,</math> となる。上記のベイズの結果を使うと、次のようになる。 :<math>p(S\vert D)={p(S)\over p(D)}\,\prod_i p(w_i \vert S)</math> :<math>p(\neg S\vert D)={p(\neg S)\over p(D)}\,\prod_i p(w_i \vert\neg S)</math> 一方を他方で割ると、次のようになる。 :<math>{p(S\vert D)\over p(\neg S\vert D)}={p(S)\,\prod_i p(w_i \vert S)\over p(\neg S)\,\prod_i p(w_i \vert\neg S)}</math> これを書き換えると、次の通り。 :<math>{p(S\vert D)\over p(\neg S\vert D)}={p(S)\over p(\neg S)}\,\prod_i {p(w_i \vert S)\over p(w_i \vert\neg S)}</math> 従って、確率比率 p(''S'' | ''D'') / p(¬''S'' | ''D'') は、一連の[[尤度比検定|尤度比]]を使って表される。実際の確率 p(''S'' | ''D'') は、p(''S'' | ''D'') + p(¬''S'' | ''D'') = 1 であることから、容易に log (p(''S'' | ''D'') / p(¬''S'' | ''D'')) から求められる。 これらの比を全て[[対数]]にすると、次の式が得られる。 :<math>\ln{p(S\vert D)\over p(\neg S\vert D)}=\ln{p(S)\over p(\neg S)}+\sum_i \ln{p(w_i\vert S)\over p(w_i\vert\neg S)}</math> 統計学では、このような尤度比の対数を使うのが一般的な技法である。この例のような二項分類では、その値は[[シグモイド関数|シグモイド曲線]]を描く([[ロジット]]参照)。 このようにして文書が分類される。<math>\ln{p(S\vert D)\over p(\neg S\vert D)} > 0</math> なら、その文書はスパムであり、そうでなければスパムではない。 == Complement Naive Bayes == 単純ベイズ分類機で、あるクラスに'''属さない'''補集合({{lang-en-short|Complement}})を用いて学習させる拡張を{{lang|en|Complement Naive Bayes}}という。 たとえば文章分類で純粋な単純ベイズ分類器では文章中のそのクラスに属する単語の出現率が大きくなってしまうが、属さない確率が最も低いクラスとして識別することで文章中のこのばらつきを最低限に抑えられる。これによってよい識別が可能になる。 == 脚注 == {{Reflist}} == 参考文献 == * Domingos, Pedro & Michael Pazzani (1997) "On the optimality of the simple Bayesian classifier under zero-one loss". ''Machine Learning'', 29:103–137. ''([http://citeseer.ist.psu.edu/ CiteSeer] にあるオンライン版: [http://citeseer.ist.psu.edu/domingos97optimality.html])'' * Rish, Irina. (2001). "An empirical study of the naive Bayes classifier". IJCAI 2001 Workshop on Empirical Methods in Artificial Intelligence. ''(オンライン版: [http://www.research.ibm.com/people/r/rish/papers/RC22230.pdf PDF], [http://www.research.ibm.com/people/r/rish/papers/ijcai-ws.ps PostScript])'' * Hand, DJ, & Yu, K. (2001). "Idiot's Bayes - not so stupid after all?" International Statistical Review. Vol 69 part 3, pages 385-399. ISSN 0306-7734. * Mozina M, Demsar J, Kattan M, & Zupan B. (2004). "Nomograms for Visualization of Naive Bayesian Classifier". In Proc. of PKDD-2004, pages 337-348. ''(オンライン版: [http://chem-eng.utoronto.ca/~datamining/dmc/docs/Nomograms.pdf PDF])'' * Maron, M. E. (1961). "Automatic Indexing: An Experimental Inquiry." Journal of the ACM (JACM) 8(3):404–417. ''(オンライン版: [http://delivery.acm.org/10.1145/330000/321084/p404-maron.pdf?key1=321084&key2=9636178211&coll=GUIDE&dl=ACM&CFID=56729577&CFTOKEN=37855803 PDF])'' * Minsky, M. (1961). "Steps toward Artificial Intelligence." Proceedings of the IRE 49(1):8-30. * McCallum, A. and Nigam K. "A Comparison of Event Models for Naive Bayes Text Classification". In AAAI/ICML-98 Workshop on Learning for Text Categorization, pp. 41-48. Technical Report WS-98-05. AAAI Press. 1998. ''(オンライン版: [http://www.kamalnigam.com/papers/multinomial-aaaiws98.pdf PDF])'' * Harry Zhang "The Optimality of Naive Bayes". (オンライン版: [http://www.cs.unb.ca/profs/hzhang/publications/FLAIRS04ZhangH.pdf PDF])'' * S.Kotsiantis, P. Pintelas, Increasing the Classification Accuracy of Simple Bayesian Classifier, Lecture Notes in Artificial Intelligence, AIMSA 2004, Springer-Verlag Vol 3192, pp. 198-207, 2004 ([http://www.math.upatras.gr/~esdlab/en/members/kotsiantis/improvingNB.pdf PDF]) * S. Kotsiantis, P. Pintelas, Logitboost of Simple Bayesian Classifier, Computational Intelligence in Data mining Special Issue of the Informatica Journal, Vol 29 (1), pp. 53-59, 2005 ([http://www.math.upatras.gr/~esdlab/en/members/kotsiantis/05_Kotsiantis-Logitboost%20of%20simble%20bayesian..._No%205.pdf PDF]) == 関連項目 == * [[サポートベクターマシン]] * [[ニューラルネットワーク]] * [[パーセプトロン]] * [[ファジィ論理]] * [[ブースティング]] * [[ベイジアンネットワーク]] * [[ベイズ推定]] * [[最大事後確率|MAP推定]] * [[ロジスティック回帰]] * [[線形分類器]] * [[予測分析]] == 外部リンク == * [http://www.biomedcentral.com/1471-2105/7/514 Hierarchical Naive Bayes Classifiers for uncertain data] 単純ベイズ分類器の拡張の一種 * [http://www.convo.co.uk/x02/ 単純ベイズ分類器を使ったオンラインアプリケーション] Emotion Modelling === ソフトウェア === * [http://paul.luminos.nl/documents/show_document.php?d=198 Naive Bayes implementation in Visual Basic] (ソースコードと実行ファイル) * [https://jbnc.sourceforge.net/ jBNC - Bayesian Network Classifier Toolbox] * [http://popfile.sourceforge.net/wiki/jp POPFile ] Perl ベースのメール振り分けシステム。 * [http://cmp.felk.cvut.cz/cmp/software/stprtool/ Statistical Pattern Recognition Toolbox for Matlab]. {{統計学}} {{DEFAULTSORT:たんしゆんへいすふんるいき}} [[Category:分類アルゴリズム]] [[Category:機械学習アルゴリズム]] [[Category:教師あり学習]] [[Category:ベイズ統計]]
このページで使用されているテンプレート:
テンプレート:Lang
(
ソースを閲覧
)
テンプレート:Lang-en-short
(
ソースを閲覧
)
テンプレート:Reflist
(
ソースを閲覧
)
テンプレート:仮リンク
(
ソースを閲覧
)
テンプレート:統計学
(
ソースを閲覧
)
単純ベイズ分類器
に戻る。
ナビゲーション メニュー
個人用ツール
ログイン
名前空間
ページ
議論
日本語
表示
閲覧
ソースを閲覧
履歴表示
その他
検索
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
特別ページ
ツール
リンク元
関連ページの更新状況
ページ情報