Bnlearn tokyo r29th

2,702 views
2,444 views

Published on

0 Comments
10 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,702
On SlideShare
0
From Embeds
0
Number of Embeds
69
Actions
Shares
0
Downloads
31
Comments
0
Likes
10
Embeds 0
No embeds

No notes for slide

Bnlearn tokyo r29th

  1. 1. bnlearnパッケージの紹介 2013/02/23 (土) 第29回R勉強会 #TokyoR Kentaro Taguchi
  2. 2. 自己紹介• 背景 経営工学• 仕事 データマイニング• 趣味 unityの勉強 2
  3. 3. 目次1. 目標2. データ入手3. bnlearnの使用4. 分析結果 3
  4. 4. 1.目標bnlearn (Bayesian network learning andinference)パッケージによるベイジアンネットワークの作成• 題材 映画タイトルのツイート分析 4
  5. 5. 2.データ入手ツイート1000件×3タイトルを取得 http://www.tweetarchivist.com/ 5
  6. 6. MeCab,RMeCabのインストール• 和布蕪(MeCab)日本語形態素解析ソフト• RMeCabR からMeCabを呼び出して使うインターフェイスMeCabのインストールと解説 石田基広氏http://rmecab.jp/wiki/ 6
  7. 7. MeCabで形態素解析data1 = read.csv(“twitter.csv”, header=TRUE) # CSVファイル読み込みlibrary(RMeCab) # RMeCab読み込みres <- RMeCabDF(data1, 2) # 出現頻度の高い形容詞に絞り込みhead(res) # 内容の確認 7
  8. 8. ターム・文書行列を作成res <- docMatrixDF(data1[,"text"], pos=c("形容詞"), minFreq=20) # 出現頻度の高い形容詞を指定 ツイート1 ツイート2 ・・・ ツイートn ターム1 ターム2 頻度 ・・・ タームm 8
  9. 9. 形容詞の出現頻度res <- t(res) # 転置head(res) # 内容の確認 9
  10. 10. 離散変数に変換res2 <- res>=1 # 1回以上出現しているならばTRUEhead(res2) # 内容の表示data2 <- data.frame(data1$title, res2) # タイトルと結合 10
  11. 11. 3.bnlearnの使用• bnlearnベイジアンネットワークのグラフ作成,パラメータ推定install.packages(“bnlearn”) # bnlearnのインストールsource(“http://bioconductor.org/bioLite.R”) # パッケージのurl指定bioLite(“Rgraphviz”) # グラフ表示用パッケージのインストール情報元サイトhttp://www.bnlearn.com 11
  12. 12. 空のグラフ作成library(bnlearn) # パッケージの読み込みe = empty.graph(LETTERS[1:12]) # ノード12個の空のグラフを作成plot(e) # グラフを表示 12
  13. 13. エッジを追加arc.set = matrix(c(“A”, “B”, “A”, “C”, ... , “A”, “L”), ncol = 2, byrow = TRUE) #エッジを指定arcs(e) = arc.set # 空のグラフにエッジを追加plot(e) # グラフを表示 13
  14. 14. データを再度加工head(data3) # 内容の表示• numeric型かfactor型に統一しておく必要がある• 「いい」「良い」などが混ざっていたので,頻度の多いほうを採用 14
  15. 15. パラメータ推定fit <- bn.fit(e, data3) # 最尤法によるパラメータ推定fit # 内容の表示 条件付き確率 15
  16. 16. 棒グラフの表示bn.fit.barchart(fit$B) # 棒グラフの表示 16
  17. 17. 4.分析結果 いい 0.09 欲しい 0.08 かわいい 0.07 0.06 0.05 面白い 0.04 ない 0.03 0.02 0.01 T 0 D B 怖い やばい 早い 悪い 凄い 楽しい 17
  18. 18. ベイジアンネットワークの事例 http://www.bnlearn.com/bnrepository/ 18

×