【データ分析】単純で未熟な僕が少し成長してナイーブベイズ法をする(完)
天気よかったので,動物園に行く.
久々に生で見る動物は迫力がすごいし,臭いもすごいくて正直怖かった.
クマを見たときにクマの手は確か高級だったような気がした.
精神は成長しないのに余計な知恵ばかりついている.
こちらの続き.
【データ分析】スプレッドシートからYahoo API(形態素解析)を使う
【データ分析】Yahoo API(形態素解析)でaikoとBUMP OF CHICKENを比較してみる
【データ分析】今日も今日とてテキストマイニング(形態素解析?)
【データ分析】単純で未熟な僕がナイーブベイズ法をする
これまで
前回文字数でフラグを立て,1変数で実際にナイーブベイズ法をやってみた.
今回は実際に単語も含めてナイーブベイズ法をしてみる.
果たして前回の正答率である93.33%を超えられるか.
ナイーブベイズ法に関しては以下のサイトを参考に行っている.
ナイーブベイズ分類器の計算方法を具体例でわかりやすく解説します。
【ナイーブベイズ法】1単語追加 Ver
前回の文字数の変数に追加して,1変数(1単語)を追加する.
まずはどの単語を変数にするのかの単語の選定.
すこしズルい気もするが(こういう選び方であっているかわからないが),
"あなた"という単語にすることに決定.理由は,aikoの歌詞に多く出現し,BUMP OF CHICKENの歌詞との出現頻度の差が一番大きかったからである.
以下の表の差分の列である.
歌詞に"あなた"という単語(完全一致)が出現する曲にフラグを立て,尤度を計算する.参考までに実際の尤度は以下になる.
これらの事前確率,尤度をもとに分類するとその正答率は,
・
・
86.67% と少し下がってしまう.
(文字数だけの時は93.33%)
【ナイーブベイズ法】さらにもう1単語追加 Ver
もう1単語を追加して分類を試みる.
今回は"僕"という単語選択.これらも少しズルいかもしれないが,BUMP OF CHICKENの歌詞に多く出現し,aikoの歌詞との出現頻度の差が一番大きかったからである.
以下の表の差分の列である.
歌詞に"僕"という単語(完全一致)が出現する曲にフラグを立て,尤度を計算する.参考までに実際の尤度は以下になる.
これらの事前確率,尤度をもとに実際に正解データに関して計算すると以下のようになる.
この結果,正答率は,
・
・
・
96.67% と向上する.
実際の集計の表は以下になる.
あと,2,3単語選定して追加すれば100%にも出来るような気がするが,
今回はここまでで満足とする.
これまでの振り返り
・スプレッドシート・GAS(Google Apps Script)・Yahoo API の環境(無料)でここまで出来るのはすごいことだと思う.
・ちょっとしたデータサイエンスを体験するのにはちょうど良いと感じた
・ただし,難点としては,データ量に制限があること,データのハンドリング少し手間であることなど
・最低限の理論は理解しないとだめだなと感じた(間違えた集計をしていても気づけない)
・意外とスプレッドシートの集計でミスをたくさんしてた
終わりに
簡単ではあるが最後までやり切れたの良かったと感じる.
(就職で流行りのやりきる力である)
ただ,普通に間違えている可能性もあるので,間違いに気づいた方は優しくご指摘いただきたいです!
僕も愛が欲しい.
次はロジスティック回帰.
PCとスマホ,wifiだけを持って全国をのんびり旅したい.