Slide 1

Slide 1 text

データマイニング 入門編 、・。・、==3 レッツゴー

Slide 2

Slide 2 text

Index ☆データに対するアプローチ方法の紹介 1. R言語について 2. 利用するデータ 3. データマイング入門 3.1 可視化 (グラフ化) 3.2 データ同士の関係 (相関) 3.3 関係のモデル式化 (回帰) 3.4 データの分類 (クラスター分析) 3.5 データの判別 (判別) 2

Slide 3

Slide 3 text

1. R言語 • オープンソースの統計解析向け言語 • ベクトル計算・行列計算が得意 • グラフ化も楽 • (CやJavaや.NET使いの人からすると) 少し癖があります – その辺はまたいずれ 3

Slide 4

Slide 4 text

1. R言語 • インタプリタ型です [実行例] R #起動 a<-1 #代入 b<-2 a+b #計算 [1] 3 q() #終了 4

Slide 5

Slide 5 text

2. 利用するデータ • 今回利用するサンプル – 人体寸法データベース1997-98 より抜粋 • [https://www.dh.aist.go.jp/database/97-98/] – 年齢/身長/体重etc.のデータ約300人分 No 性別 年齢 体重 身長 ウエスト 足長 手長 1 M/F xx.x [歳] xx.x [kg] xxxx [mm] xxx [mm] xxx [mm] xxx[mm] 5

Slide 6

Slide 6 text

3. データマイニング入門 可視化 • まずはデータを見てみる #csv読み込み ※1行目がヘッダ列として扱われる read.csv(path[,…]) 例:data<-read.csv("R:¥¥wg_data.csv", na.string="9999") #データ確認 head(変数) 例:head(data) 6

Slide 7

Slide 7 text

3. データマイニング入門 可視化 • まずはデータを見てみる データ指定いろいろ data[1,] #1行目 data[,2] #2列目 data$身長 #身長列 data[3:5,c(2,4)] #3~5行目の2列と4列 data[data$身長>1750,] #身長が1750mm以上のデータ 7

Slide 8

Slide 8 text

3. データマイニング入門 可視化 • 演習 グラフ化してみましょう #おまじない #欠損値が含まれる行を除く data<-na.omit(data) #グラフ化 plot(“データ列1”, “データ列2”) 8

Slide 9

Slide 9 text

3. データマイニング入門 可視化 • 演習 グラフ化してみましょう #おまじない #欠損値が含まれる行を除く data<-na.omit(data) #グラフ化 plot(“データ列1”, “データ列2”) #身長と体重のグラフが作りたければ plot(data$体重, data$身長) #これだけ 9

Slide 10

Slide 10 text

3. データマイニング入門 相関 • データ同士の関連性を見る – まず”手長”と”足長”をグラフ化 こうなる なんだか手の長さと足の長さは 関連性がある気がする・・・ 相関を見る 相関:2つの事象の関わり 相関係数:相関を表す尺度 10

Slide 11

Slide 11 text

3. データマイニング入門 相関 • 演習 相関を計算する #計算するって言っても… #相関係数 cor(“データ列1”, “データ列2”) #手長と足長 cor(data$手長, data$足長) #これだけ http://www.logi-solu.co.jp/article/13862014.html 11

Slide 12

Slide 12 text

3. データマイニング入門 相関 • sample1.Rを実行 • 全部一気にできる。Rすごい。 12

Slide 13

Slide 13 text

3. データマイニング入門 線形回帰分析 • データの傾向を数式化(モデル化)す ることを考える 何がうれしいの? ✓ データの傾向がわかる ✓ 一方のデータから他方を推測できる 直線式で表す 線形回帰分析をやってみる y = ax + b エクセルでよくやるあれ。 近似線の追加 13

Slide 14

Slide 14 text

3. データマイニング入門 線形回帰分析 • sample2.Rを実行 – 手の長さと足の長さの関係性 回帰の仕組み 直線と点が距離が近くなるように線を引く #回帰分析 result<-lm(手長~足長, data=sub) #回帰直線を描画 abline(result,col=2) #結果確認 summary(result) 書き方 手長~足長 “手長”を”足長”で説明する “手長” = a * “足長” + b 14

Slide 15

Slide 15 text

3. データマイニング入門 線形回帰分析 • 回帰結果の考察 本来は R-squared : 決定係数 Pr(>|t|) : P値 などを見て回帰の妥当性 をみるのですが… 今回は省略! 15

Slide 16

Slide 16 text

3. データマイニング入門 クラスター分析 • ウエストと体重をグラフ化してみると 16

Slide 17

Slide 17 text

3. データマイニング入門 クラスター分析 • 2種類ぐらいグループがある気がする・・・ 17

Slide 18

Slide 18 text

3. データマイニング入門 クラスター分析 • クラスター分析とは – 類似のデータを寄せ集めていくつかの集合に分類 する分析 • 代表手法:k-meansクラスタリング K個の最適な中心点を決めて分割する 18

Slide 19

Slide 19 text

3. データマイニング入門 クラスター分析 • sample3.Rを実行 • ウエストと体重のプロットを2つのクラスタに 分けてみる 19

Slide 20

Slide 20 text

3. データマイニング入門 クラスター分析 • ん? 20

Slide 21

Slide 21 text

3. データマイニング入門 クラスター分析 • 思っていたようなクラスタに 分かれない – 単純に数値計算で見るとこ うなります – こういう分類やパターン認 識は人間の脳が非常に賢い そうは言っても、分けられないと仕事にならない! ・クラスタリング手法を変える? ・データはそのままの数値を使っていいの? ・他の情報も入れる? 21

Slide 22

Slide 22 text

3. データマイニング入門 クラスター分析 • 思っていたようなクラスタに 分かれない – 単純に数値計算で見るとこ うなります – こういう分類やパターン認 識は人間の脳が非常に賢い そうは言っても、分けられないと仕事にならない! ・クラスタリング手法を変える? ・データはそのままの数値を使っていいの? ・他の情報も入れる? データマイニング中級編をお楽しみに 22

Slide 23

Slide 23 text

3. データマイニング入門 判別分析 • 判別分析とは… – データがいくつかのグループに分かれている とき、新たなデータがどのグループに属する かを判別することを考える • わかりにくいので例で示します 結局こういうことをします 23

Slide 24

Slide 24 text

3. データマイニング入門 判別分析 • 身長と体重のデータ 青:男性 赤:女性 このへんで分けれそう 身長と体重を元に男女の判別を 行いたい 青:男性 赤:女性 24

Slide 25

Slide 25 text

3. データマイニング入門 判別分析 • 身長と体重のデータ 青:男性 赤:女性 [身長:175cm 体重:65kg] このデータは どっちに当てはまる? 既知のデータの傾向を考えると きっと「男性」だろう 青:男性 赤:女性 25

Slide 26

Slide 26 text

3. データマイニング入門 判別分析 • sample4.Rの実行 #3の倍数行目をテスト用データ、それ以外を教師用データとする train<-sub[idx%%3!=0,] test<-sub[idx%%3==0,] 既知のデータと仮定。 このデータを使って 判別のための線を引く 性別が未知のデータと仮定。 trainデータで作った 判別基準に当てはめてみる テスト用データ 26

Slide 27

Slide 27 text

3. データマイニング入門 判別分析 • とりあえず結果を出す #判別分析 ret<-lda(性別~.,data=train) #テストデータを適用し、結果を検証 pre<-predict(ret,test) #集計 table(test$性別,pre$class) trainを使って判別基準を作る 判別基準にtestを当てはめ 判別結果と実際の性別を集計 してみる F M F 37 15 M 12 41 判別結果 実 際 正解率75%ぐらい 27

Slide 28

Slide 28 text

3. データマイニング入門 判別分析 • もっと精度を上げるには? – 直線以外で分けてみる? – 他の情報も入れる? こんな分け方してみるとか! 28

Slide 29

Slide 29 text

3. データマイニング入門 判別分析 • もっと精度を上げるには? – 直線以外で分けてみる? – 他の情報も入れる? こんな分け方してみるとか! データマイニング中級編をお楽しみに ・・・いつ? 29

Slide 30

Slide 30 text

4. まとめ • ビッグデータ分析・データマイニングは正解の ない学問です – 「分類する」とか「判別する」だけでも多くの手法 があり、データによってチューニングも必要 • 大変な時代です、頭が痛いですね 画像by明治大学 30