狠狠撸

狠狠撸Share a Scribd company logo
Shumpei Hozumi
穂積 俊平
しくみ製作所 福島支部
機械学習(ベイジアンフィルタ)で
Web サービス を分類してみた
1. 概要
人間が行っている学習をコンピュータ(機械)に行わせるもの
学習データからルールを学習し、入力に対し答えを提示する
1. 利用例
文書分類(はてぶのカテゴリ分け)
顔認識(画像検索)
音声認識
レコメンド(Gunosy, Google Adsense, ..)
ゲーム(将棋)
2
機械学習とは?
Shumpei Hozumi
1. 概要
人間が行っている学習をコンピュータ(機械)に行わせるもの
学習データからルールを学習し、入力に対し答えを提示する
1. 利用例
文書分類(はてぶのカテゴリ分け)
顔認識(画像検索)
音声認識
レコメンド(Gunosy, Google Adsense, ..)
ゲーム(将棋)
3
機械学習とは?
Shumpei Hozumi
今回やりたのはこれ
1. 教師あり学習
正解データを元に、事前にルールを学習
1) ベイジアンフィルタ(ベイズの定理)
2) バックプロパゲーション(ニューラルネットワーク)
2. 教師なし学習
ルールも含めて学習
1) Deep Learning (ニューラルネットワーク)
2) クラスタ分析
3) 主成分分析
4
機械学習の種類
Shumpei Hozumi
1. 教師あり学習
正解データを元に、事前にルールを学習
1) ベイジアンフィルタ(ベイズの定理)
2) バックプロパゲーション(ニューラルネットワーク)
2. 教師なし学習
ルールも含めて学習
1) Deep Learning (ニューラルネットワーク)
2) クラスタ分析
3) 主成分分析
5
機械学習の種類
Shumpei Hozumi
リソース少なくてOK
学習時間短い
精度そこそこ
実装簡単
1. 概要
確率論(ベイズの定理)を利用した教師あり機械学習の一手法。
学習と検証の2フェーズから構成される。
2. 例:文書分類
1) 学習
入力:カテゴリ付けされた文書の集合
出力:分類器
2) 検証
入力:カテゴリ付けしたい文書
出力:カテゴリ
6
ベイジアンフィルタ
Shumpei Hozumi
1. 確率を利用
7
ベイジアンフィルタ(検証)
Shumpei Hozumi
分類器
Backlog is a
project
management
tool….
文書
1. 文書が各カテゴリに
属する確率を計算
IT:70%
教育:50%
スポーツ:10%
2. 所属率が一番高いカ
テゴリを答えに
IT:70%
教育:50%
スポーツ:10%
文書のカテゴリはIT
1. 確率を利用
8
ベイジアンフィルタ(検証)
Shumpei Hozumi
分類器
Backlog is a
project
management
tool….
文書
1. 文書が各カテゴリに
属する確率を計算
IT:70%
教育:50%
スポーツ:10%
2. 所属率が一番高いカ
テゴリを答えに
IT:70%
教育:50%
スポーツ:10%
文書のカテゴリはIT
どうやって求め
るのか?
1. 文書がカテゴリに属する確率の求め方
文書を doc、カテゴリを cat とすると、
文書がカテゴリに属する確率は、P(cat|doc) と表せる
ベイズの定理より、
P(cat|doc) = P(doc|cat) * P(cat) / P(doc)
9
ベイジアンフィルタ(学習)
Shumpei Hozumi
1. 文書がカテゴリに属する確率の求め方
文書を doc、カテゴリを cat とすると、
文書がカテゴリに属する確率は、P(cat|doc) と表せる
ベイズの定理より、
P(cat|doc) = P(doc|cat) * P(cat) / P(doc)
10
ベイジアンフィルタ(学習)
Shumpei Hozumi
1. 文書がカテゴリに属する確率の求め方
文書を doc、単語を wod、カテゴリを cat とすると、
文書がカテゴリに属する確率は、P(cat|doc) と表せる
ベイズの定理より、
P(cat|doc) = P(doc|cat) * P(cat) / P(doc)
P(doc|cat) = P(wod1|cat) * P(wod2|cat)*..
P(wod|cat) = wodの出現回数@cat / 全単語数@cat
11
ベイジアンフィルタ(学習)
Shumpei Hozumi
1. 文書がカテゴリに属する確率の求め方
文書を doc、単語を wod、カテゴリを cat とすると、
文書がカテゴリに属する確率は、P(cat|doc) と表せる
ベイズの定理より、
P(cat|doc) = P(doc|cat) * P(cat) / P(doc)
P(doc|cat) = P(wod1|cat) * P(wod2|cat)*..
P(wod|cat) = wodの出現回数@cat / 全単語数@cat
P(cat) = cat の出現回数 / 全カテゴリ数
12
ベイジアンフィルタ(学習)
Shumpei Hozumi
1. 実装
1. Ruby で 160 行ほど
1. ベイジアンフィルタ 80 行
2. データの読み込み、学習、検証、出力 80 行
2. データ
1. Similarweb のカテゴリ付けを正解として学習
2. 1000 件のデータを学習
3. カテゴリ数 23
3. 成果
13
Web サービスを分類してみた
Shumpei Hozumi
1. 実装
1. Ruby で 160 行ほど
1. ベイジアンフィルタ 80 行
2. データの読み込み、学習、検証、出力 80 行
2. データ
1. Similarweb のカテゴリ付けを正解として学習
2. 1000 件のデータを学習
3. カテゴリ数 23
3. 成果
1. 正答率 44.3 % (63/142)
14
Web サービスを分類してみた
Shumpei Hozumi
1. ベイジアンフィルタの改良
1. 単語分割、単語抽出の改良
1. Mecab の辞書の改良
2. はてぶ API の利用
2. 補集合を活用したベイジアンフィルタ
P(cat|doc) = P(doc|cat) * P(cat) / P(doc)
1つのカテゴリに偏りがち。
15
今後の展開
Shumpei Hozumi
1. しくみ製作所(http://sikmi.com/company/)
1. Web サービス企画?開発
1. svnote(http://sikmi.com/svnote/)
2. 政治発進(http://seijihashin.com/)
3. webweb(http://webweb.tv/)
4. アニプラ(http://anipla.net/)
5. 旅レシピ(http://tabirecipe.com/)
2. 完全リモートワークで働いています
北海道、大阪、神奈川、福島に社員在住
3. 興味ある方はこちらまで↓
info@sikmi.com
16
会社紹介
Shumpei Hozumi

More Related Content

奥别产サーヒ?スを分类してみた