Spam filter

参考文献Spam filters

概要

2つの統計的方法を用いたスパムフィルターの性能を比較。
ここでの統計的方法は、

またトークンとして、単語を用いた場合と、文字を用いた場合の比較。

結果として、カイ二乗を用いた方法の方がfalse positiveを減らせたと主張。
また文字レベルのトークンの方が良い結果が出ている。

カイ二乗と自由度を用いた方法

原作者を識別する際によく使われる方法である。

スパマーは世界で150くらいしかいないため、この方法を使用する。

この方法を用いたソフトウェア(McCombe)もある。
検査対象のメールに対して、学習済みのデータとの類似値を計算する。

これをカイ二乗検定を用いて計算し、その値を自由度で割った値を使用する。

Paul Graham方式

tokenごとのspam確率を求める方法

Paul Graham方式でのtokenごとのspam確率をpg(w)とする。pg(w)を求める際の特徴を挙げる。

  • cleanな方向にバイアスをかけるために、cleanなメール中での実際のtoken出現回数を2倍してから、計算する。
  • 過去に出会ったことのないtokenのpg(w)は、0.4とする。

メールのspam確率を求める方法

Paul Graham方式では、特徴的な(0.5より遠い)pg(w)を持つ15のtokenを使用してcombining probabilityを求め、それをメールのspam確率としている。

Paul Graham方式の問題点

  • 確率の定め方が不適切(spamらしさを表していない)
    • 出現回数を考慮すべき
    • spamらしさと非spamらしさが離散関係にあるのはおかしい
    • Baysianの方法を正しく適用していない

概要

単語(token)のspam確率から判定する

  • あらかじめtokenごとのspam確率を求めておく。
  • メールの中に含まれるtokenから、spamであるかどうかを判定する。

準備

  • spam確率を求める。
  • 判定済のメール内のtoken出現回数を求め、spam / (clean + spam)により確率を求める。