機械学習に対する誤解

tullio2005-06-01

↓ここのページに,こんなことが書いてありました.
http://allabout.co.jp/computer/internetlife/closeup/CU20050518A/index2.htm

2.迷惑メールフィルタ機能を備えたソフトを使う
1で紹介したようなフィルタ機能をもっているソフトを使う方法もあります。こういったソフトのフィルタ機能には学習機能があるので、迷惑メールを手動で指定していくとそのパターンを覚えていき、使うほどに判別能力が高くなっていきます。

まあ,ThunderbirdSpamAssassinのような,ベイジアンフィルタに関しては,ウソです.
ベイジアンフィルタはいわゆる識別器であり,過去のデータを元に,メールがジャンクかどうかという二つのクラスに分類するものです.当然,データが入るにつれ,刻々とその識別指標は変化します.使うほどに判別能力が高くなるわけではなく,あるデータを学習させたために,別なジャンクメールについてのデータが無効になることもあります.

それでも,ベイジアンフィルタは有効だと思います.統計的な識別器は莫大な種類がありますが,k-NN(いわゆる最近傍識別器とか)だと高速ですがメモリを莫大に食う,EMアルゴリズムの類は時間を莫大に食う,と思います.ジャンクメールフィルタとしては.だからベイジアンはリーズナブルな手法だと思います.
SpamAssassinは,自前のベイジアンの他にもDCCやデータベース式,ルールベースなど多くの違う種類の判別方法を組み合わせられるので,カスタマイズが楽しいです.