SlideShare uma empresa Scribd logo
1 de 31
Baixar para ler offline
SakuSakuSVMで
さくさくツイートマイニング!
自己紹介
●   ID:AntiBayesian
●   あんちべ!とお呼び下さい

●   専門:テキストマイニング、自然言語処理
●   職業:某ATMが○○な銀行で金融工学研究員とか
    いう胡散臭い素敵なことしてる
●   自然言語処理職大絶賛募集中!!!!
●   math.empress@gmail.com

                             2
twitterをマイニングしたい!
tweet分析するとこんなことが出来る(かも?)
1.自分のtweetがウケルかどうかpostする前に予測
2.スパムアカウントを自動で見分けてスパム報告
3.デマ情報の抽出
4.盗作tweetかどうか判定
5.ネカマかどうか判定



                               3
Postする前に
                      ウケルかどうか
                      判定してみたよ


あんちべのすべらない話
~俺のツイートがこんなにウケないはずがない~
http://www.slideshare.net/AntiBayesian/ss-8487534




                                                    4
分析の流れ
1.学習データ(正例、負例)を用意する
2.学習データから予測モデルを立てる
 ➢
     正例・負例の特徴を抽出し、どのような要素を持てば正
     負のどちらかに判別出来るかを学習する
3.対象のtweetを予測モデルに放り込んで判定
 ➢   正例の特徴を強く持つtweetは正例のクラスへ、負例の
     特徴を強く持つtweetは負例のクラスへ、分類器で自動
     分類



                               5
正例、負例の例
●   スパムアカウントかどうか見分けたい
    ➢
        正例:スパムアカウント、負例:非スパムアカウント
●   デマ情報かどうか判別したい
    ➢   正例:デマtweet、負例:正しいtweet
●   正例・負例は逆でも良い(正:非スパム、負:スパム
    等)。抽出したいものを正例にするケースが多い
●   重要なのは、やりたいことに応じてデータを収集
    し、クラスを適切に設定すること


                                   6
やりたいことを決めよう!
●   自分のtweetがウケルか予測したい!
●   もう渾身のネタが滑るのは嫌だ!!!
●   じゃあデータは何が必要???
●   正例:☆が沢山ついてるtweet、負例:☆ついてな
    いtweetにすると良いのでは???




                                7
学習データを集めよう
●   正例:favstarから人気tweetを取得
●   負例:twitter Streaming APIから適当にサンプリン
    グ
●   正例負例、各々約3万件ずつチョイス
●   正例には1、負例には-1クラスタグを付ける
※Tweetを取得するツール作ったよ!
http://d.hatena.ne.jp/AntiBayesian/20110702


                                              8
さくさくツイートマイニング
●   こんな感じ→
学習データ
テストデータ
●  実際に分類をしたいデータ
 ● クラスタグは仮置きする


※今回は精度を実感しやすくするため、fav, nonfav
が判明しているものをテストデータに用いる。具体的
には、favstar, StreamingAPIから取得したデータのう
ち、6月末までのもの約3万件を学習データに、7月以
降のもの約200件をテストデータに用いる。favの
tweetがどれ位の精度でfavに分類されるか見る
データ集めたし、
準備万端!!!
さぁ分析するか!
           12
・・・

      13
どうやって???

       14
分類器って何???
●   正負例から各々の特徴を抽出・学習して、与えた
    データの正負を自動で判別してくれるもの
        –   正負のデータ(答え)が予め用意されてる学習を、教師有り学
            習と言う
●   様々な分類器がある
    ●
        ナイーブベイズ
    ●
        決定木
    ●   パーセプトロン
    ●   SVM(サポートベクターマシーン)
●   今回はSVMを使うよ!
                                       15
なぜSVMを使うの???
●   現在大変よく使われてる手法
●   超パワフル
●   テキストデータは高次元になりがち。SVMは高次
    元の分類に強み
●   沢山の種類・工夫が既にあり、探せば良いのが幾
    らでも見つかる
●   “超平面”とか”次元の呪い”とか”カーネルトリック”
    とか、出てくる単語が格好良くて中二病をくすぐる


                             16
SVMとは???
●   データを高次元に写像して分類する手法
“サポートベクターマシンは、本来は線形分離不可能な問題には適用で
きない。 しかし、再生核ヒルベルト空間の理論を取り入れたカーネル関
数を用いてパターンを有限もしくは無限次元の特徴空間へ写像し、特
徴空間上で線形分離を行う手法が 1992年に Vladimir Vapnik らに
よって提案された。 これにより、非線形分類問題にも優れた性能を発揮
することがわかり、近年特に注目を集めている。
なお、カーネル関数を取り入れた一連の手法では、どのような写像が行
われるか知らずに計算できることから、カーネルトリック (Kernel Trick)
と呼ばれている”
by Wikipedia



                                        17
ヽ(・∀・ヽ) ワッケ!!
(ノ・∀・)ノ ワッカ!!
ヽ(・∀・)ノ ラン!!
                18
まず、線形分離とは???
●   直線でデータを分類出来る




                     19
線形分離不可能とは???
●   線形(直線)では分類出来ない




                     20
高次元へ写像して分離してみる
●   2次元のデータを無理やり3次元に持ってくる
●   縦軸×横軸から高さ軸を作って3次元にしてみた


                        これが超平面だ!




青丸:第1, 3象限の縦軸×横軸→高さ軸正
赤丸:第2,4象限の縦軸×横軸→高さ軸負
                                   21
SVMすごい!!!!
●   高次元に写像すれば、線形分離不可能なものも分
    類出来る!
●   かっこいい!
●   つおい!!!
●   すごい!!!
●
    使ってみるしかない!!!!
●   じゃあ数式見て実装しよう!!!


                         22
数式難しすぎて
 人間が死ぬ
  ハードマージンのSVMは簡単だけど、
カーネルトリックの世界に踏み込むと結構厳しい




                         23
SakuSaku-SVM作ったよ!
●   GUIテキストマイニング用ツール
●   前処理とSVMが実行可能
●   SVMエンジンはliblinear(高速な線形分類器)
●   分かち書きはtinySegmenter
●   WndowsXP、.NET Framework3.0以上で動作
●   http://www24.atpages.jp/antibayesian/app/の
    SSSVM.zipをDL


                                                 24
SS-SVM前処理で生成されるファイル
●   テキストの統計処理
    ●   2gram:学習データのバイグラム
    ●   WordSet:学習データに含まれる単語
    ●   WordCount:学習データの単語頻度(昇順
●   SVM用ファイル
    ●   SVM_train:SVM学習用
    ●   SVM_test:SVMテスト用



                                  25
SS-SVMの基本的な使い方-前処理
1.SS-SVMを起動
2.exeと同じフォルダに学
  習データ、テストデータ、
  ストップワードファイルを
  置く
3.一括実行ボタンを押下




                     26
SS-SVMの基本的な使い方-SVM
4.クロスバリデーションボタン押
  下。CrossValidation.txtからモ
  デルの説明力を見る(これが
  低すぎたら前処理やり直し)
5.モデル生成ボタン押下
6.分類実行ボタン押
  下。Output.txtで分類結
  果、Accuracy.txtで分類精度
  を確認

                             27
SVMの結果の見方
●   Accuracy.txt
    ●   仮置きのタグとSVM分類で付与したタグのマッチング
        率。今回は仮置きタグが正しいとみなせる状況であるた
        め、精度と考えて差し支えない
●   Output.txt
    ●   各行のtweetが正負どちらに判定されたか、タグで表わ
        される。n行目に1と出力されていた場合、n行目の
        tweetは1クラス(今回の例ではfav tweet)に分類された
        という意味


                                        28
やってみた結果
●   調整したら86%の精度でfav, nonfav分類出来た
●   nonfav側に分類されがちな感じ
     –   なぜかを考えてみよう!
●   favなのにnonfavと分類されたtweetは、他所への
    リンク物が多い。そりゃ分類難しいわ…
●   nonfavなのにfavに分類されたtweet、結構面白い
     –   ゴルゴ 「俺の後ろから押すなよ絶対に押すなよ」
     –   母『暑くてスルメになりそう』…スルメ?w
●
    割とイケル気がしてきた
                                   29
工夫して精度を上げよう!
1.やりたいこととデータがマッチしてるか考え直す
2.学習データ数を増やす
 ➢   2000件→6万件にすると、精度が77→82%に
3.出現頻度下限を調整する
4.ストップワードファイル(除去単語リスト)を修正する




                                30
まとめ
●   tweetからスパム判定とか色んなことが出来る
●   やりたいことに応じて、何が正負例データに該当す
    るかよく考えなくてはならない
●   SVMという高次元・非線形分離にも対応したパワ
    フルな分類器がある
●   SS-SVMを使うと、テキストの前処理からSVM実行
    までマウスクリックだけで出来る
●   簡単にSVM出来るんだから、もうやるっきゃない!

                              31

Mais conteúdo relacionado

Mais procurados

Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習Kimikazu Kato
 
よくわかる条件分岐
よくわかる条件分岐よくわかる条件分岐
よくわかる条件分岐Noriyuki Ito
 
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusOfficial
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門Shuyo Nakatani
 
続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」T T
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用y-uti
 
Mplusの使い方 中級編
Mplusの使い方 中級編Mplusの使い方 中級編
Mplusの使い方 中級編Hiroshi Shimizu
 
Mplusの使い方 初級編
Mplusの使い方 初級編Mplusの使い方 初級編
Mplusの使い方 初級編Hiroshi Shimizu
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...y-uti
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践Preferred Networks
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレストTeppei Baba
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 JubatusハンズオンYuya Unno
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –Yohei Sato
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)徹 上野山
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章Shushi Namba
 
はてなインターン「機械学習」
はてなインターン「機械学習」はてなインターン「機械学習」
はてなインターン「機械学習」Hatena::Engineering
 
それっぽく感じる機械学習
それっぽく感じる機械学習それっぽく感じる機械学習
それっぽく感じる機械学習Yuki Igarashi
 
特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話Tokoroten Nakayama
 

Mais procurados (20)

Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習
 
よくわかる条件分岐
よくわかる条件分岐よくわかる条件分岐
よくわかる条件分岐
 
Jubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組みJubatusの特徴変換と線形分類器の仕組み
Jubatusの特徴変換と線形分類器の仕組み
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
ノンパラベイズ入門の入門
ノンパラベイズ入門の入門ノンパラベイズ入門の入門
ノンパラベイズ入門の入門
 
続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」続・わかりやすいパターン認識 第7章「マルコフモデル」
続・わかりやすいパターン認識 第7章「マルコフモデル」
 
分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用分類問題 - 機械学習ライブラリ scikit-learn の活用
分類問題 - 機械学習ライブラリ scikit-learn の活用
 
Mplusの使い方 中級編
Mplusの使い方 中級編Mplusの使い方 中級編
Mplusの使い方 中級編
 
Mplusの使い方 初級編
Mplusの使い方 初級編Mplusの使い方 初級編
Mplusの使い方 初級編
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
 
機械学習の理論と実践
機械学習の理論と実践機械学習の理論と実践
機械学習の理論と実践
 
機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト機会学習ハッカソン:ランダムフォレスト
機会学習ハッカソン:ランダムフォレスト
 
第1回 Jubatusハンズオン
第1回 Jubatusハンズオン第1回 Jubatusハンズオン
第1回 Jubatusハンズオン
 
異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –異常行動検出入門 – 行動データ時系列のデータマイニング –
異常行動検出入門 – 行動データ時系列のデータマイニング –
 
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)TensorFlow を使った機械学習ことはじめ (GDG京都 機械学習勉強会)
TensorFlow を使った 機械学習ことはじめ (GDG京都 機械学習勉強会)
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
StanとRでベイズ統計モデリング読書会(Osaka.stan) 第6章
 
はてなインターン「機械学習」
はてなインターン「機械学習」はてなインターン「機械学習」
はてなインターン「機械学習」
 
それっぽく感じる機械学習
それっぽく感じる機械学習それっぽく感じる機械学習
それっぽく感じる機械学習
 
特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話特徴ベクトル変換器を作った話
特徴ベクトル変換器を作った話
 

Destaque

第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」kakusan40
 
さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションantibayesian 俺がS式だ
 
Credential social media_live_v1_3
Credential social media_live_v1_3Credential social media_live_v1_3
Credential social media_live_v1_3Social Media Live!
 
テキストマイニングのイメージと実際
テキストマイニングのイメージと実際テキストマイニングのイメージと実際
テキストマイニングのイメージと実際antibayesian 俺がS式だ
 
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」kakusan40
 
Python東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようPython東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようHiroshi Funai
 

Destaque (14)

ガチャとは心の所作
ガチャとは心の所作ガチャとは心の所作
ガチャとは心の所作
 
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
第1回茶ッカソン in Tokyo プレゼンシート「チームNifty」
 
Credential twittorebiew v1.3
Credential twittorebiew v1.3Credential twittorebiew v1.3
Credential twittorebiew v1.3
 
さくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッションさくさくテキストマイニング入門セッション
さくさくテキストマイニング入門セッション
 
Credential social media_live_v1_3
Credential social media_live_v1_3Credential social media_live_v1_3
Credential social media_live_v1_3
 
テキストマイニングのイメージと実際
テキストマイニングのイメージと実際テキストマイニングのイメージと実際
テキストマイニングのイメージと実際
 
チームラボ忘年会
チームラボ忘年会チームラボ忘年会
チームラボ忘年会
 
神の言語による自然言語処理
神の言語による自然言語処理神の言語による自然言語処理
神の言語による自然言語処理
 
SPSSで簡単テキストマイニング
SPSSで簡単テキストマイニングSPSSで簡単テキストマイニング
SPSSで簡単テキストマイニング
 
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
第1回茶ッカソン in Tokyo プレゼンシート「FULLER」
 
全文検索入門
全文検索入門全文検索入門
全文検索入門
 
企業における統計学入門
企業における統計学入門企業における統計学入門
企業における統計学入門
 
Python東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしようPython東海Vol.5 IPythonをマスターしよう
Python東海Vol.5 IPythonをマスターしよう
 
Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析Pythonで簡単ネットワーク分析
Pythonで簡単ネットワーク分析
 

Semelhante a Sakusaku svm

数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜
数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜
数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜Shu Sakamoto
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング. .
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表Eric Sartre
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料Yasuhiro Horiuchi
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎Daiyu Hatakeyama
 
自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくるphyllo
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアルYuya Unno
 
20141211柏セミナー
20141211柏セミナー20141211柏セミナー
20141211柏セミナーastanabe
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Preferred Networks
 
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」Takeshi Kiriya
 
第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場Daisuke Yoneoka
 
異常検知と変化検知で復習するPRML
異常検知と変化検知で復習するPRML異常検知と変化検知で復習するPRML
異常検知と変化検知で復習するPRMLKatsuya Ito
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with MahoutKatsuhiro Takata
 
Introduction to statistics
Introduction to statisticsIntroduction to statistics
Introduction to statisticsKohta Ishikawa
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編) daiki hojo
 

Semelhante a Sakusaku svm (20)

機械学習
機械学習機械学習
機械学習
 
数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜
数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜
数式を使わない機械学習超入門 〜Support Vector Machine 解説編〜
 
順序データでもベイズモデリング
順序データでもベイズモデリング順序データでもベイズモデリング
順序データでもベイズモデリング
 
Maeshori missing
Maeshori missingMaeshori missing
Maeshori missing
 
どたばたかいぎ成果発表
どたばたかいぎ成果発表どたばたかいぎ成果発表
どたばたかいぎ成果発表
 
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEEMachine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
 
0730 bp study#35発表資料
0730 bp study#35発表資料0730 bp study#35発表資料
0730 bp study#35発表資料
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
 
自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる自然言語処理はじめました - Ngramを数え上げまくる
自然言語処理はじめました - Ngramを数え上げまくる
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
 
20141211柏セミナー
20141211柏セミナー20141211柏セミナー
20141211柏セミナー
 
Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習
 
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」
わんくま東京#49 LT 「DynamicQuery ~MSDN サンプルの逆襲~」
 
第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場第五回統計学勉強会@東大駒場
第五回統計学勉強会@東大駒場
 
JAWSUG 20191028
JAWSUG 20191028JAWSUG 20191028
JAWSUG 20191028
 
異常検知と変化検知で復習するPRML
異常検知と変化検知で復習するPRML異常検知と変化検知で復習するPRML
異常検知と変化検知で復習するPRML
 
協調フィルタリング with Mahout
協調フィルタリング with Mahout協調フィルタリング with Mahout
協調フィルタリング with Mahout
 
Nips20180127
Nips20180127Nips20180127
Nips20180127
 
Introduction to statistics
Introduction to statisticsIntroduction to statistics
Introduction to statistics
 
Stan勉強会資料(前編)
Stan勉強会資料(前編) Stan勉強会資料(前編)
Stan勉強会資料(前編)
 

Último

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptyuitoakatsukijp
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ssusere0a682
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 

Último (7)

生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
UniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScriptUniProject Workshop Make a Discord Bot with JavaScript
UniProject Workshop Make a Discord Bot with JavaScript
 
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習105 -n人囚人のジレンマモデル- #ゲーム理論 #gametheory #数学
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 

Sakusaku svm

  • 2. 自己紹介 ● ID:AntiBayesian ● あんちべ!とお呼び下さい ● 専門:テキストマイニング、自然言語処理 ● 職業:某ATMが○○な銀行で金融工学研究員とか いう胡散臭い素敵なことしてる ● 自然言語処理職大絶賛募集中!!!! ● math.empress@gmail.com 2
  • 4. Postする前に ウケルかどうか 判定してみたよ あんちべのすべらない話 ~俺のツイートがこんなにウケないはずがない~ http://www.slideshare.net/AntiBayesian/ss-8487534 4
  • 5. 分析の流れ 1.学習データ(正例、負例)を用意する 2.学習データから予測モデルを立てる ➢ 正例・負例の特徴を抽出し、どのような要素を持てば正 負のどちらかに判別出来るかを学習する 3.対象のtweetを予測モデルに放り込んで判定 ➢ 正例の特徴を強く持つtweetは正例のクラスへ、負例の 特徴を強く持つtweetは負例のクラスへ、分類器で自動 分類 5
  • 6. 正例、負例の例 ● スパムアカウントかどうか見分けたい ➢ 正例:スパムアカウント、負例:非スパムアカウント ● デマ情報かどうか判別したい ➢ 正例:デマtweet、負例:正しいtweet ● 正例・負例は逆でも良い(正:非スパム、負:スパム 等)。抽出したいものを正例にするケースが多い ● 重要なのは、やりたいことに応じてデータを収集 し、クラスを適切に設定すること 6
  • 7. やりたいことを決めよう! ● 自分のtweetがウケルか予測したい! ● もう渾身のネタが滑るのは嫌だ!!! ● じゃあデータは何が必要??? ● 正例:☆が沢山ついてるtweet、負例:☆ついてな いtweetにすると良いのでは??? 7
  • 8. 学習データを集めよう ● 正例:favstarから人気tweetを取得 ● 負例:twitter Streaming APIから適当にサンプリン グ ● 正例負例、各々約3万件ずつチョイス ● 正例には1、負例には-1クラスタグを付ける ※Tweetを取得するツール作ったよ! http://d.hatena.ne.jp/AntiBayesian/20110702 8
  • 11. テストデータ ● 実際に分類をしたいデータ ● クラスタグは仮置きする ※今回は精度を実感しやすくするため、fav, nonfav が判明しているものをテストデータに用いる。具体的 には、favstar, StreamingAPIから取得したデータのう ち、6月末までのもの約3万件を学習データに、7月以 降のもの約200件をテストデータに用いる。favの tweetがどれ位の精度でfavに分類されるか見る
  • 13. ・・・ 13
  • 15. 分類器って何??? ● 正負例から各々の特徴を抽出・学習して、与えた データの正負を自動で判別してくれるもの – 正負のデータ(答え)が予め用意されてる学習を、教師有り学 習と言う ● 様々な分類器がある ● ナイーブベイズ ● 決定木 ● パーセプトロン ● SVM(サポートベクターマシーン) ● 今回はSVMを使うよ! 15
  • 16. なぜSVMを使うの??? ● 現在大変よく使われてる手法 ● 超パワフル ● テキストデータは高次元になりがち。SVMは高次 元の分類に強み ● 沢山の種類・工夫が既にあり、探せば良いのが幾 らでも見つかる ● “超平面”とか”次元の呪い”とか”カーネルトリック” とか、出てくる単語が格好良くて中二病をくすぐる 16
  • 17. SVMとは??? ● データを高次元に写像して分類する手法 “サポートベクターマシンは、本来は線形分離不可能な問題には適用で きない。 しかし、再生核ヒルベルト空間の理論を取り入れたカーネル関 数を用いてパターンを有限もしくは無限次元の特徴空間へ写像し、特 徴空間上で線形分離を行う手法が 1992年に Vladimir Vapnik らに よって提案された。 これにより、非線形分類問題にも優れた性能を発揮 することがわかり、近年特に注目を集めている。 なお、カーネル関数を取り入れた一連の手法では、どのような写像が行 われるか知らずに計算できることから、カーネルトリック (Kernel Trick) と呼ばれている” by Wikipedia 17
  • 19. まず、線形分離とは??? ● 直線でデータを分類出来る 19
  • 20. 線形分離不可能とは??? ● 線形(直線)では分類出来ない 20
  • 21. 高次元へ写像して分離してみる ● 2次元のデータを無理やり3次元に持ってくる ● 縦軸×横軸から高さ軸を作って3次元にしてみた これが超平面だ! 青丸:第1, 3象限の縦軸×横軸→高さ軸正 赤丸:第2,4象限の縦軸×横軸→高さ軸負 21
  • 22. SVMすごい!!!! ● 高次元に写像すれば、線形分離不可能なものも分 類出来る! ● かっこいい! ● つおい!!! ● すごい!!! ● 使ってみるしかない!!!! ● じゃあ数式見て実装しよう!!! 22
  • 23. 数式難しすぎて 人間が死ぬ ハードマージンのSVMは簡単だけど、 カーネルトリックの世界に踏み込むと結構厳しい 23
  • 24. SakuSaku-SVM作ったよ! ● GUIテキストマイニング用ツール ● 前処理とSVMが実行可能 ● SVMエンジンはliblinear(高速な線形分類器) ● 分かち書きはtinySegmenter ● WndowsXP、.NET Framework3.0以上で動作 ● http://www24.atpages.jp/antibayesian/app/の SSSVM.zipをDL 24
  • 25. SS-SVM前処理で生成されるファイル ● テキストの統計処理 ● 2gram:学習データのバイグラム ● WordSet:学習データに含まれる単語 ● WordCount:学習データの単語頻度(昇順 ● SVM用ファイル ● SVM_train:SVM学習用 ● SVM_test:SVMテスト用 25
  • 27. SS-SVMの基本的な使い方-SVM 4.クロスバリデーションボタン押 下。CrossValidation.txtからモ デルの説明力を見る(これが 低すぎたら前処理やり直し) 5.モデル生成ボタン押下 6.分類実行ボタン押 下。Output.txtで分類結 果、Accuracy.txtで分類精度 を確認 27
  • 28. SVMの結果の見方 ● Accuracy.txt ● 仮置きのタグとSVM分類で付与したタグのマッチング 率。今回は仮置きタグが正しいとみなせる状況であるた め、精度と考えて差し支えない ● Output.txt ● 各行のtweetが正負どちらに判定されたか、タグで表わ される。n行目に1と出力されていた場合、n行目の tweetは1クラス(今回の例ではfav tweet)に分類された という意味 28
  • 29. やってみた結果 ● 調整したら86%の精度でfav, nonfav分類出来た ● nonfav側に分類されがちな感じ – なぜかを考えてみよう! ● favなのにnonfavと分類されたtweetは、他所への リンク物が多い。そりゃ分類難しいわ… ● nonfavなのにfavに分類されたtweet、結構面白い – ゴルゴ 「俺の後ろから押すなよ絶対に押すなよ」 – 母『暑くてスルメになりそう』…スルメ?w ● 割とイケル気がしてきた 29
  • 30. 工夫して精度を上げよう! 1.やりたいこととデータがマッチしてるか考え直す 2.学習データ数を増やす ➢ 2000件→6万件にすると、精度が77→82%に 3.出現頻度下限を調整する 4.ストップワードファイル(除去単語リスト)を修正する 30
  • 31. まとめ ● tweetからスパム判定とか色んなことが出来る ● やりたいことに応じて、何が正負例データに該当す るかよく考えなくてはならない ● SVMという高次元・非線形分離にも対応したパワ フルな分類器がある ● SS-SVMを使うと、テキストの前処理からSVM実行 までマウスクリックだけで出来る ● 簡単にSVM出来るんだから、もうやるっきゃない! 31