×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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