R講習会に行ってきた。
主催グループの学科ではRが必修らしい。
テキストマイニング中心の発表を聴いてきた。
テキストデータと聞いて思い浮かぶのは電子カルテである。電子カルテからテキストを抽出して、「◯◯がある人は△△になりやすい」みたいな教科書的な記述が本当にそうか具体的な数値付きですぐ出せそうな予感がするが、誰かやっていそうだ。
ランダムフォレストを用いた書き手判断などは、書き手偽装などの操作で注目されているらしい。キーボードタイピングの癖やタイミング、ミスしやすい記入などで人物特定ができるPCがあるとかないとか聞いたことがあるので、それもこの応用なのだろう。
RではじめるTwitter解析を組み合わせれば、複数アカウントの特定、偽アカウント、なりすましなどがわかるかもしれない。
方言と空間的自己回帰モデル
空間的に分布しているものを、あるパラメータで説明できるかどうか
Rでできるものとして探したら、空間的自己回帰モデルというものがあった。
概念
空間的に近い位置にあるデータの属性は似通った値を示す。
一様分布を仮定しない。
感染症の原因とか(水質、空気などの背景から原因を考えたいときとか)
類似する属性の近くに、類似する原因を仮定する。
空間的自己回帰モデルのやり方
隣接リストの作成
空間重み行列
空間自己相関の算出
角モデル式への適応
近接関係の定義によってモデルへの適合度は変わってくる。
Moran I 統計量
正の自己相関1,負の自己相関0,なければ-1/17
空間的自己回帰モデル(SEM)
(空間同時自己回帰ラグモデル):仮定しない
空間ダービンモデル:説明変数にも空間自己相関があると仮定する
社会ネットワーク分析とその視覚化について
対象の関係を点、線によって表現し、特徴を探る
gmlファイルを読み込む
PageRank:googleなどで使われいる、サイトの重要性を表す指標
媒介中心性:他の頂点をどれほどつないでいるか評価する中心性指標
クリーク:すべての頂点間に辺が張られているような頂点の集合
極大クリーク:どの他のクリークにも含まれないクリーク
モデュラリティ:コミュニティ内の辺の密度がコミュニティ間に対して相対的に高いか測る指標
テキストマイニング
テキストデータから格フレームを抽出し視覚化する
周辺文脈法を用いて格フレームに極性を付与する
株の変動に関係ありそうな格フレームの毎日の変化を新聞から追った
サッカーのパスのつながり方からボールの動きを考える
シーケンシャルパターンを視覚化(データスタジアム株式会社から)
ランダムフォレストを用いたテキストデータからの特徴語彙の抽出
古典を対象にして、カテゴリ間(作品)で顕著に出現傾向の相違する語彙
ランダムフォレスト
判別、予測を目的
外的基準あり
アンサンブル学習:低い精度の結果を集めて高精度にする
変数重要度を推定
乱数に大きく依存する手法
CART:決定木アルゴリズム
Gini係数を計算、不純度を計算、分岐
ランダムフォレストを複数回施行すると、乱数によって微妙に変わる
変数ごとに推定値の平均を求める
文献
樹木構造接近法
ランダムフォレスト法による文章の書き手の同定
英語学習者による誤りのアソシエーション分析
ある誤りを犯す人は、他にどのような誤りを犯すのか確率を出す
エラータグを設定、エラーの頻度を算出
アソシエーション分析(マーケティング分野ではよくやるらしい)
条件部→結論部
アプリオリアルゴリズム
前置詞が間違い多い:前置詞間違いとの共起パターンは?
LDA?
フリーソフトによるデータ解析・マイニング:アソシエーション分析(1)
フリーソフトによるデータ解析・マイニング:アソシエーション分析(2)
R言語によるアソシエーション分析
アソシエーション分析
若き貧乏研究者のよく聞く悩み
ArcGIS:空間分析ソフト
オープンソースの利用(中身がわかる)
言語間の違いを、ひとつのスクリプト言語で統一できたら…
PythonとR:Rpy2
postgis-grass-r-py
概念モデルUML
#空間的自己回帰モデル library(spdep) #社会ネットワーク分析とその視覚化について library(igraph) read.graph #隣接行列からも読み込める read.csv #グラフに変換する graph.adjacency #Rstudioで使えるUI library(manipulate) #ランダムフォレスト library(mlbench) data(Glass) library(mvpart) mvpart(Type ~., data=Glass, bar=FALSE, cp=0) library(randomForest) result <- randomForest(Type ~., data=Glass, ntree=1000, mtry=30) varImpPlot(result) #アソシエーション分析 library(sna) library(proxy) library(arules)