科学の箱

科学・IT・登山の話題

機械学習

スパムメールの判別に使うベイズ定理についてまとめる

投稿日:

分類問題

スパムメールを判別するような問題は一般的に「分類問題」として機械学習では取り扱う。分類問題とはいまある「物」や「発生した事柄」を確率的に分類する。この「確率的」という言葉がみそであり、固定されたルールに従っているわけではなく、機械学習により構築されたモデルにより判別される。

条件付き確率およびベイズ定理

分類問題の判別に用いられるアルゴリズムで最も基本的となるのがベイズ定理である。このベイズ定理を理解するためには「条件付確率」を理解しておく必要がある。

条件付確率

条件付き確率とはある事象Xが発生したという前提で事象Yが発生する確率である。条件付確率は以下のようにあらわされる。

$$P( Y | X )=\frac{P(X∧Y)}{P(X)}$$

ベン図にすると以下のようになる。

ベイズ定理

ベイズ定理は以下のようにあらわすことができる。

$${P(X|Y)}\times{P(Y)}={P(Y|X)}\times{P(X)}$$

ベイズ定理の証明は統計サイトなどに詳しく記載されているのでそちらを参照。上記式を変形すると以下のようになる。

$$P(X|Y)=\frac{P(Y|X)\times{P(X)}}{P(Y)}$$

さてポイントとなるのはこのベイズ定理がどのように分類問題で利用されるかである。

 

ベイズ定理と分類問題

スパムメール判別問題を例にしてベイズ定理をどのように分類問題に利用するかを説明する。

スパムメールの判別問題はある一通のメールからそのメールに含まれている単語をもとにしてスパムメール(spam)か普通メール(ham)を判断する。

今下記のように確率を定義する。

$$P(spam) = スパムメールである確率$$

$$P(ham) = 普通のメールである確率$$

$$P(mail) = ある単語が出現する確率$$

今条件付き確率を考えると以下のようになる。

$$P(mail | spam) = スパムメールに対してある単語が現れる確率$$

$$P(mail | ham) = 普通のメールに対してある単語が現れる確率$$

最終的に知りたいのは以下である。

$$P(spam|mail) = ある単語が出現したときに、スパムメールである確率$$

$$P(ham|mail) = ある単語が出現したときに、普通メールである確率$$

あるメールがスパムメールであると判断するときにはいくつか方法がある。例えばある単語が出現したときに、スパムメールである確率>普通メールであると確率なら、スパムと判断する方法がある。

$$P(spam|mail) > P(ham|mail)$$

ではどのようにして P(spam|mail)とP(ham|mail)を計算するのか。ここで利用するのがベイズ定理である。いまベイズ定理を利用すると以下のようになる。

$$ P(spam|mail) = \frac{(P(mail|spam)\times{P(spam)}}{P(mail)}$$

$$ P(ham|mail) = \frac{(P(mail|ham)\times{P(ham)}}{P(mail)}$$

ここでP(mail | spam)についてはスパムメールとしてラベルがついているメールに対して単語の出現頻度を計算すれば取得できる。P(spam)はすべてのメールに対するスパムメールの割合を計算すればよい。P(mail)は全メールに対して単語の出現頻度を計算すればよい。

P(mail|ham)は同様にして普通メールに対して単語の出現頻度を計算する。またP(ham)は普通のメールが全体に占める割合である。

このようにしてP(spam|mail)およびP(ham|mail)をベイズ定理により計算して、分類をする学習器がナイーブベイズである。

 

ナイーブベイズ分類樹

ナイーブベイズがもっともよくつかわれるが、単語による文書分類である。簡単な例を通してナイーブベイズによる文書分類を説明する。

今下記のような各国について説明した文章があるとする(このデータは全く恣意的なデータである)。

データ
アメリカ 海、都市、遊園地
タイ 海、遺跡、都市、食事
中国 遊園地、歴史、夜景、買い物
フランス 海、食事、都市
アメリカ 都市、食事

今下記の分類データが渡されたときのカテゴリを計算する。

[海、都市]

 

事前確率(各カテゴリが出現する確率)

いま各カテゴリが出現する確率を考える。これは以下のように計算される。

$$P(category )=\\frac{各カテゴリの文書数}{全部の文書数}$$

カテゴリの文書数 全文書数 P(Category)
アメリカ 2 5 2/5
タイ 1 5 1/5
中国 1 5 1/5
フランス 1 5 1/5

尤度(各カテゴリにおける分類データが出現する同時確率

各カテゴリにおいて分類データが出現する同時確率を求める。

$$ P(word | category) = \frac{P(word∧category)}{P(category}$$

カテゴリ内総単語数 都市 同時確率
アメリカ 5 1 2 2/25 = 1/5 x 2/5
タイ 4 1 1 1/16 = 1/4 x 1/4
中国 4 0 0 0
フランス 3 1 1 1/9 = 1/3 x 1/3

事後確率 (分類データが与えられた時のカテゴリが出現する確率)

事前確率 尤度 事後確率
アメリカ 2/5 2/25 4/125=0.032
タイ 1/5 1/16 1/80=0.0125
中国 1/5 0 0
フランス 1/5 1/9 1/27=0.037

 

よって[海、都市]というデータが与えらた時にはナイーブベイズではフランスと分類される。

メタ情報

inarticle



メタ情報

inarticle



-機械学習

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

独立性の検定 2つ

ニートの年齢別割合が1996年と2012年で関連性があるか独立性の検定をしてみる。 ニートの割合  1996 2012 15~19歳 9 9 20~24歳 12 17 25~29歳 10 18 30~ …

no image

ラテン方格

ラテン方格は1~nまでの数字についてn x nの正方行列に一回だけ現れるように並べたものである。ラテン方格を利用して実験の割り付けを行う実験計画法がラテン方格法である。 ラテン方格法と似た実験計画法に …

no image

手書き数字データについて次元縮約および教師ありモデルの構築

前回手書き数字データについてイメージで確認した結果、人の目で確認する分には区別ができる。では機械学習ではどのように実施していくのか。 今回は以下の内容について説明する。 多様体学習による次元縮約 ナイ …

no image

Core Concept in Data Analysis – Week 1

パート Data Mining Core Analysis Visualization Illustrate Data Mining data mining = patterns in data + …

no image

conjoint分析の資料

マニュアル conjointパッケージ caFactorialDesign Rでconjointパッケージを利用した例 Rでコンジョイント分析 Rでコンジョイント分析 |極めて個人的なメモ コンジョイ …

2019年10月
« 9月   11月 »
 123456
78910111213
14151617181920
21222324252627
28293031  

side bar top



アーカイブ

カテゴリー