データサイエンス講義 第4章 スパムフィルタ、単純ベイズ、データラングリング

Please download to get full document.

View again

All materials on our website are shared by users. If you have any questions about copyright issues, please report us to resolve them. We are always happy to assist you.
 4
 
  1. データサイエンス講義 第4章
 
 スパムフィルタ、単純ベイズ、データラングリング
 2019年7月30日(火) in 渋谷ヒカリエ
…
Share
Transcript
  • 1. データサイエンス講義 第4章
 
 スパムフィルタ、単純ベイズ、データラングリング
 2019年7月30日(火) in 渋谷ヒカリエ
 マーケティング部 データ戦略室
 阪上 晃幸

  • 2. 教科書 2
 Rachel Schutt, Cathy O‘Neil (2014) 「データサイエンス講義」 (瀬戸山 雅人・石井 弓美子・河内 崇・河内 真理子・古畠 敦・ 木下 哲也・竹田 正和・佐藤 正士・望月 啓充 訳) 1章 はじめに:データサイエンスとは 2章 統計的推論、探索的データ分析、データサイエンスのプロセス 3章 アルゴリズム 4章 スパムフィルタ、単純ベイズ、データラングリング 5章 ロジスティック回帰 6章 タイムスタンプと金融モデリング 7章 データから意味を抽出する 8章 レコメンデーションエンジン :ユーザが直接触れる大規模データ製品を構築する 9章 データ可視化と不正検出 10章 ソーシャルネットワークとデータジャーナリズム 11章 因果関係 12章 疫学 13章 データ分析のコンペティションから得られた教訓 :データのリークとモデルの評価 14章 データエンジニアリング :MapReduce、Pregel、Hadoop 15章 生徒たちの声 16章 次世代のデータサイエンティスト、データに対する過信と倫理
  • 3. Leverages Marketing Department 自己紹介 3 ● 阪上晃幸(@Mr_Sakaue) ● データアナリスト 兼 室長 ● 経歴 2012/2:レバレジーズでインターン 2012/3:一橋大学大学院経済学研究科 修士課程修了 2012/4〜:レバレジーズ入社 ● 趣味 料理、ブログ記事の作成 『かものはしの分析ブログ』で検索!
  • 4. Leverages Marketing Department ● スパムフィルタ ○ 線形回帰やk近傍法での問題点 ● ベイズの定理 ● 単純ベイズ ○ 単一の単語バージョン ○ 複数の単語バージョン ● ラプラススムージング ● 演習問題1 ○ bashでの簡単な分析(ダウンロードから分析まで) ● 演習問題2 ○ データ収集(Webスクレイピング) ○ Rでの実践 報告内容 4
  • 5. Leverages Marketing Department ● スパムフィルタ ○ 電子メールなどで変な情報商材を勧誘してくるメールをスパム、そうでないものをハムとして、効 率的にスパムを除外するアルゴリズムを考えたい。 ■ アプローチとしては、確率モデルとこれまでの章で学んだ線形回帰や k近傍法などがあげられる。 ● 確率モデルは過去の経験則を組み合わしてスパムメールである確率を推定する。 スパムフィルタ〜線形回帰やk近傍法での問題点 5
  • 6. Leverages Marketing Department スパムフィルタ〜線形回帰やk近傍法での問題点 6 使っても良さそうな点 使うべきではない点 線形回帰 その分野の専門知識を使って、単語数 を100語程度まで制限すればワークす る ● 予測した際の結果が連続値を 取り、0-1に収まらない ● スパムメールの単語数は10万 個を超える規模だが、メールは1 万件のオーダーのため推定が 困難 k近傍法 近傍のデータから類推して、スパムの 割合を出力するので予測の結果は0-1 に収まる 10万次元の場合、次元の呪いに陥り、 適切な距離計算が難しくなる
  • 7. Leverages Marketing Department ベイズの定理 7 ぺり蔵くんは中学校の診断で「結核の疑いあり」と診断されました。 結核感染者の人口割合は 1%とします。 このままぺり蔵くんは入院することになるのでしょうか。 ワイの将来は・・・!
  • 8. Leverages Marketing Department ベイズの定理 8 ただし、診断では感染している患者の 99%を言い当てることができ、 健康な患者に対しては 99%で感染していないと言い当てることができるものと考える。 先程あげたように、結核感染者の人口割合は 1%とする。 人口を10000人だとすると以下の樹形図のような構造となっている。 ぺり蔵は 「陽性かつ感染」なのか、 「陽性かつ健康」なのか
  • 9. Leverages Marketing Department 条件付き確率 9 条件付き確率の定義は以下の通り 診断では感染している患者の 99%を言い当てるとあるが、 この場合、P( 陽性 | 感染 ) = 0.99 となる。 また、感染者である確率 P( 感染 )は0.01なので、 P( 陽性 ∩ 感染 ) = 0.99 × 0.01 = 0.0099 となる。 ここではAを陽性、Bを感染の事象と見なしている。
  • 10. Leverages Marketing Department ベイズの定理 10 条件付き確率を変形し、共通部分を消去すると条件付き確率は以下のような形になる。 これをベイズの定理と呼ぶ。 ぺり蔵が診断で陽性 (A)となった際に、本当に感染 (B)している確率はどれくらいだろうか? ベイズの定理を用いればそれを計算することができる。
  • 11. Leverages Marketing Department ベイズの定理 11 ぺり蔵が陽性(A)と判定されたもとでの感染 (B)確率をベイズの定理に 従って計算する。 P( 陽性 | 感染 ) = 0.99 P( 感染 ) = 0.01 P( 陽性 ) = 0.99 × 0.01 + 0.01 × 0.99 = 0.0198 P( 感染 | 陽性 ) = 0.99×0.01÷0.0198 = 0.5 P(陽性) の確率の導出 ぺり蔵が陽性と判定 されて感染している 確率は50%
  • 12. Leverages Marketing Department 単一の単語を用いて、スパムフィルタを行うことを目指す。ぺり蔵の事例をそのまま使う。ある 単語がメールに存在するもとでの、そのメールがスパムである確率は以下の通り。 単純ベイズ(単一の単語バージョン) 12 教科書の事例だと P( spam ) = 1500/( 1500 + 3672 ) = 0.29 P( ham ) = 0.71 P( word | spam ) = 16 / 1500 = 0.0106 P( word | ham ) = 153 / 3672 = 0.0416 よって、 P( spam| word ) = 0.0106×0.29 ÷ ( 0.0106×0.29 + 0.0416×0.71 ) = 0.09 イメージとしては、「副業」という単語がメールに 含まれていたとして、それがねずみ講のメール だったりする場合
  • 13. Leverages Marketing Department ● シンプルで使いやすいが、与えたデータによっては極端な結果を示すことがある。 ○ 教科書の事例 ■ money:80%の確率でスパム ■ viagra:100%の確率でスパム ■ enron:0%の確率でスパム ○ moneyを含んでいる真面目なメールはもっとあるはず。enronが含まれたらスパムでないと 言っていいのだろうか。 ○ 与えたデータに対して過剰にパラメータを当てはめてしまうことをオーバーフィッティングと呼ぶ。 ここでのパラメータとは確率を指す。 単純ベイズ(単一の単語バージョン) 13
  • 14. Leverages Marketing Department 単純ベイズ(複数の単語バージョン) 14 A, Bが単語でCがスパムとすると、スパムメールであるもとでの単語 A,Bの含まれる確率は以下のように記せる。 単語がn個ある場合は以下のように記せる。 P( X(i) )は単語の出現確率を表す。 よって、スパムのもとでの n個の単語の含まれる確率は以下の条件付き確率となる。
  • 15. Leverages Marketing Department 単純ベイズ(複数の単語バージョン) 15 単語ごとの出現確率が独立しているのであれば、先程の式は以下のように表現できる。 P( X(i) | C )をθとすると以下のように記せる。 よって、以下のように記せる。 ある単語がスパムメールに含まれている確率 を計算できれば算出できる。 要は、単語のカウントさえできればよい。
  • 16. Leverages Marketing Department 単純ベイズ(複数の単語バージョン) 16 先程の数式の対数を取ると、以下のように記せる。 (対数を取ることで計算をしやすくする。定番の式変形。) 見た目が線形回帰モデルのように見えるが、逆 行列の計算をする必要はなく、単語をカウントし て条件付き確率を求めればよい。
  • 17. Leverages Marketing Department ● 先ほどまでの確率の計算で重要だったのは、単語のカウント。 ○ 単語のカウントにおいて、件数が少ないと条件付き確率が、0や1と言った極端な値を取るた め、それを避けるための処理が必要となる。 ■ そこで、ここではラプラススムージングについて紹介する。 ● ラプラススムージング ○ 以下の式でα=1, β=10などとおくことで、低頻度単語などの確率が、0や1を取らないように変換 している。(αとβは非負の任意のパラメータ) ○ ただし、この表現はアドホックなものではなく、事前分布を仮定したもとでの最尤推定から求める ことができるパラメータとなっている。 ラプラススムージング 17
  • 18. Leverages Marketing Department ● 事前分布をおかない単純ベイズでの最尤推定値の導出 ラプラススムージング 18 最尤法は、「あるデータが観測されているのであれば、このパラメータを取るはずだ」として、 データが観測されやすいパラメータを尤度関数の最大化によって求める方法です。 尤度関数は各々のデータが生じる確率をかけ合わせたものとなります。 今回のケースでは、ある単語jについて全てのメールに関しての出現確率を扱います。 対数を取り、θ(j,c)で微分して0とおき、 θ(j,c)について整理すると単純に割り算した、     という形になる。尤度関数
  • 19. Leverages Marketing Department ● 事前分布を仮定した単純ベイズでの最大事後確率の導出 ラプラススムージング 19 ベイズの定理から、先程の尤度に事前分布をかけたものが事後分布となる。事後分布に関し て最大になるようなパラメータを推定し、最大事後確率を導出する。なお、分母にあるはずの p(D)は定数のため消去されている。 対数を取り、θ(j,c)で微分して0とおき、 θ(j,c)について整理すると、 という形になる。これはラプラススムージングの 式と同じである。事後分布 = 尤度×事前分布 事前分布 尤度
  • 20. Leverages Marketing Department ● 事前分布を用いて導出したラプラススムージングの解釈 事前分布としてα=1, β=10とおいた場合に、極端な値を取りにくいという、事前分布の影響が 働き、推定したパラメータの分母分子にその影響が残る。 データが十分に多い単語に関しては影響は薄れるが、少ない場合はその影響は大きくなる。 分析官がある単語に関しての経験則から、極端な値を取るのはおかしいと判断し、その経験 則を事前分布という形で分析に取り入れた結果として、ラプラススムージングと同じ結果が現 れたと考える。 ※αやβはパラメータのパラメータという意味でハイパーパラメータと呼ばれる。 ラプラススムージング 20 事前分布 ハイパーパラメータ
  • 21. Leverages Marketing Department 単純ベイズとk近傍法の比較 21 パラメータ数 次元の呪い 単純ベイズ 2個(α、β) 懸念なし k近傍法 1個(k) 懸念あり
  • 22. Leverages Marketing Department 演習問題1(bashでの簡単な分析) Google Colab上のShell Scriptで単純ベイズスパムフィルター .ipynb https://colab.research.google.com/drive/1XeTOM8oDN0Ijx4hzVug1fZ_zMAKjuXdh#scrollTo=gPCjwukMn12a 22
  • 23. Leverages Marketing Department 演習問題1(bashでの簡単な分析) 23
  • 24. Leverages Marketing Department 演習問題2 24 ● 単純ベイズの多クラス文書分類 ○ NYタイムスの記事を用いてどの分野(ビジネス、アートなど)に属するのかを判別する。 ■ NYタイムスのAPIを登録する必要がある。しかも APIの記法が執筆時と異なっている。 ■ サンプルコードのライブラリの RTextToolsがCRANから削除されている。 ● よって、デモなし。残念。 ● データサイエンティストの仕事は分析だけではなく、データ収集も範疇となりうる。自らがデータを集めるた めの技術の一つがウェブスクレイピングとなる。アプローチとしても様々ある。 ○ GUIでのCSVダウンロード:Seleniumなどでの自動化 ○ APIでのデータ取得:便利なライブラリの活用( twitteR(R言語)、oandapy(Python)) ○ Webスクレイピング:便利なライブラリの活用( rvest(R言語)、BeautifulSoup(Python))    ※サービスの規約に従い、負荷をかけないような運用が求められている。
  • 25. Leverages Marketing Department ● 鈴木・山田 (1996), 『数理統計学ー基礎から学ぶデータ解析』, 内田老鶴圃 参考文献 25
  • We Need Your Support
    Thank you for visiting our website and your interest in our free products and services. We are nonprofit website to share and download documents. To the running of this website, we need your help to support us.

    Thanks to everyone for your continued support.

    No, Thanks
    SAVE OUR EARTH

    We need your sign to support Project to invent "SMART AND CONTROLLABLE REFLECTIVE BALLOONS" to cover the Sun and Save Our Earth.

    More details...

    Sign Now!

    We are very appreciated for your Prompt Action!

    x