十の並列した脳

何でも勉強する,毎週月木曜に投稿予定

「初探機器學習使用Python」まとめ#5 第四章 單純貝氏分類

「初探機器學習使用Python」(↓の中国語版 )

Thoughtful Machine Learning with Python: A Test-Driven Approach

Thoughtful Machine Learning with Python: A Test-Driven Approach

 

 

前回↓

 

ryosuke-okubo.hatenablog.com

 

 

#5では第四章について扱う。

 

  

使用貝氏定理找出詐騙的訂單

本章では,オンラインストア上の不正注文を例に話が進む。ここで,全体の注文の10%が不正(P(F) = 0.1),90%が正常(P(\lnot F) = 0.9)とする。

f:id:ryosuke_okubo:20190407200554p:plain

 

條件機率

條件機率(conditional probability):

{\displaystyle P(A|B) = \frac{P(A \cap B)}{P(B)}}

 

機率符號

例として,ギフトカード(G)を使用した不正の確率を判断する。ギフトカード使用時の不正の確率(P(F|G))を知りたい場合,條件機率により,

{\displaystyle P(F|G) = \frac{P(F \cap G)}{P(G)}} 

と表せる。反対に,ギフトカード使用時の正常の確率(P(\lnot F|G))は,

{\displaystyle P(\lnot F|G) = \frac{P(\lnot F \cap G)}{P(G)}} 

と表せる。

 

如果知道Fraud(單筆訂單確定詐騙)與Giftcard(使用禮品購物)的確實發生機率此刻就可以得知結果。

此時,面臨的問題是無法得知P(Fraud | Giftcard),因為目前難以分解處理。解決這問題需要使用貝氏技巧。(p45)

単語

  • 知道:知っている
  • :カード
  • 此時:この時,現地点で
  • 無法:〜しようがない,〜できない
  • 難以:〜するのが難しい,〜し難い
  • 需要:〜する必要がある,〜すべきである
  • 貝氏:Bayes,ベイズ

意訳

「Fraud(シングルオーダー詐欺)とGiftcard(ギフトカードで買い物)の正確な確率を知っていれば、結果を得ることができる。

現時点では、P(Fraud | Giftcard)は分解が困難であるため、知ることができないという問題に直面する。この問題を解決するためには、ベイズの方法を使う必要があります。」

 

逆條件機率(貝氏定理)

貝氏定理(Bayes' theorem): 

{\displaystyle P(B|A) = \frac{P(A|B)P(B)}{P(A)}}

 

上の例において貝氏定理を適用する。

{\displaystyle P(F|G) = \frac{P(G|F)P(F)}{P(G)}}

{\displaystyle P(\lnot F|G) = \frac{P(G|\lnot F)P(\lnot F)}{P(G)}}

 

ここで,不正のうち60%がギフトカード使用(P(G|F) = 0.6),正常のうち30%がギフトカード使用(P(G|\lnot F) = 0.3)であることがわかったとすると,

{\displaystyle P(F|G) = \frac{0.6 \times 0.1}{P(G)}}

{\displaystyle P(\lnot F|G) = \frac{0.3 \times 0.9}{P(G)}}

P(G)を計算すると0.33となるので,

P(F|G) = 0.182 ,\ P(\lnot F|G) = 0.818

となる。したがって,ギフトカード使用のうち18.2%が不正の注文であることがわかった。

f:id:ryosuke_okubo:20190407200631p:plain
f:id:ryosuke_okubo:20190407200638p:plain

機械学習の文脈においては,例えば「ギフトカード使用の注文は,不正か正常か?」を推論することになる。上の例では正常と判断される。

 

然而能夠得更好嗎?納入以多種促銷代碼的購物資料或其他資訊項目又會有什麼樣的結果?(p46)

単語

  • :する,やる
  • 嗎?:〜か?(Yes/Noの疑問文)
  • 代碼:code,コード
  • 什麼樣:どんな
  • :〜か?(疑問詞を含む疑問文,主に省略形に用いる)

意訳

「しかし、さらにうまくできるか?複数のプロモーションコードを含むショッピングデータまたはその他のデータ項目を含めた結果はどうなるか?」

 

実際の応用においては,複数の要素から分類を行う。例えば,「ギフトカード使用かつ複数のプロモーションコード使用の注文は,不正か正常か?」。

 

單純貝氏分類器

單純貝氏分類器(Naive Bayes classifier)

 

複数の項目を扱う際に,連鎖法則が重要となる。

連鎖法則(chain rule):

P(A_1,A_2,...,A_n) = P(A_1)P(A_2|A_1)P(P_3|A_1,A_2)...P(A_n|A_1,A_2,...,A_{n-1})

 

貝氏推論的單純性

複数のプロモーションコード(P)を使用した不正を加えると,以下の式となる。

{\displaystyle P(F|G,P) = \frac{P(G,P|F)P(F)}{P(G,P)}}

連鎖法則を用いて,式を変形すると,

P(F,G,P) = P(F)P(G,P|F) = P(F)P(G|F)P(P|F,G)

ここでP(P|F,G)については測定が困難なため,FとGの間で独立性を仮定して,

 P(F,G,P) = P(F)P(G,P|F) = P(F)P(G|F)P(P|F)

したがって,

 {\displaystyle P(F|G,P) = \frac{1}{Z}P(F)P(G|F)P(P|F)}\lnot Fにおいても同様)

ここでZは比例係数である。

 

複数のプロモーションコードにおいて,不正のうち50%が複数のプロモーションコード使用(P(G|F) = 0.5),正常のうち30%が複数のプロモーションコード使用(P(G|\lnot F) = 0.3)であることがわかったとすると,

 {\displaystyle P(F|G,P) = \frac{1}{Z}0.1 \times 0.6 \times 0.5}

 {\displaystyle P(\lnot F|G,P) = \frac{1}{Z}0.9 \times 0.3 \times 0.3}

Zの計算は省略。これでも「ギフトカード使用かつ複数のプロモーションコード使用の注文」を正常と推測するのに十分である。

 

Pseudocount

省略。

 

本章總結

本章深入探討單純貝氏分類器的建置與解析。如讀者於本章所學,相關演算法非常適合確實獨立的資料。對於機率模型,可依據已知的潛在分數將資料分類成多個方向。此種監督式學習方法適用於詐騙檢測,垃圾郵件過濾以及具有相關種類特徵的任何問題之處理。(p67)

単語

  • 探討:探求する,議論する
  • 分數:score,スコア
  • 垃圾郵件spam,スパム
  • 任何:いかなる,任意の

意訳

「この章では、単純ベイズ分類器の構成と分析について議論した。この章で読者が学んだように、関連するアルゴリズムは真に独立したデータに非常に適している。確率モデルの場合、既知の潜在的なスコアに基づいてデータを複数の方向に分類することができる。この教師付き学習方法は、詐欺検出、スパムフィルタリング、および関連するジャンル特性に関する任意の問題の処理に適している。」

 

次回↓

作成中