30分でわかる『R』によるデータ分析|データアーティスト

42,171 views

Published on

オープンソースの統計解析ソフトである『R』は、多様な統計手法での解析が可能かつ高度なグラフィックを備えており、数学だけでなく商業、医療など幅広い分野のデータ解析において役立てられています。本セッションでは『R』の基本の使い方から実際のデータマイニングの手法に至るまでを、データサイエンティストの視点からわかりやすくご紹介いたします。

------

『講師紹介』
山本 覚〔データアーティスト〕

データアーティスト株式会社
代表取締役社長

東京大学博士過程在籍時にアイオイクス株式会社のLPO事業に参画し、導入社数300社超のLPOツール「DLPO」の全アルゴリズムを開発。データマイニングを用いたウェブページの改善実績100社以上。論理化されたものはシステムで処理し、人が人にしかできない営みに集中する環境を作ることを理念として、データアーティスト株式会社代表に就任。

Published in: Technology

30分でわかる『R』によるデータ分析|データアーティスト

  1. 1. データアーティスト株式会社 30分でわかる 『R』によるデータ分析
  2. 2. Copyright© Data Artist Inc. All Rights Reserved. Page2Page2Page2Page2 自己紹介 こんにちは!!山本覚と申します!!
  3. 3. Copyright© Data Artist Inc. All Rights Reserved. Page3Page3Page3Page3 バックグラウンド:東京大学イノベーション政策研究センター 経営学×政策学×情報学 NHK 震災ビッグデータ DLPOGunosy Rに初めて触ったのが7年前
  4. 4. Copyright© Data Artist Inc. All Rights Reserved. Page4Page4Page4Page4 本講義の目的 え?たったこれだけなの? ならやってみようかな・・ と思っていただきたい。
  5. 5. Copyright© Data Artist Inc. All Rights Reserved. Page5Page5Page5Page5 アジェンダ • R概論 • 分類木 • k-means
  6. 6. R概論
  7. 7. Copyright© Data Artist Inc. All Rights Reserved. Page7Page7Page7Page7 Rとは何か? 統計・データマイニング に特化した言語 ➡1行データマイニング ➡オープンソースで種類が豊富 ➡行列の計算がやたら早い ➡画面がいかつい ➡繰り返し処理が遅い
  8. 8. Copyright© Data Artist Inc. All Rights Reserved. Page8Page8Page8Page8 ダウンロード http://cran.r-project.org/CRANから落とせる
  9. 9. Copyright© Data Artist Inc. All Rights Reserved. Page9Page9Page9Page9 R用の環境 R studio が便利 http://www.rstudio.com/
  10. 10. Copyright© Data Artist Inc. All Rights Reserved. Page10Page10Page10Page10 R用の環境 テキストエディタ プログラムの実行 結果
  11. 11. Copyright© Data Artist Inc. All Rights Reserved. Page11Page11Page11Page11 実際にどんなものか?
  12. 12. Copyright© Data Artist Inc. All Rights Reserved. Page12Page12Page12Page12 実際にどんなものか?>描画も一撃 hist(データ)
  13. 13. Copyright© Data Artist Inc. All Rights Reserved. Page13Page13Page13Page13 ちょっと頑張れがこれくらいの事も出来ます ユーザーの 検索行動を 可視化
  14. 14. Copyright© Data Artist Inc. All Rights Reserved. Page14Page14Page14Page14 Rの初学者向けのデータマイニングプロセス データをきれいに加工する (Excelでもできる) データを解析する データを可視化する (Excelでもできる) Rでしか出来ないことだけRでやる!
  15. 15. Copyright© Data Artist Inc. All Rights Reserved. Page15Page15Page15Page15 非ガチ理系のデータマイニング活用法 『なんかたぶんこんな感じ原理』で充分!! 自分で実装できる必要なし!! 含みのある 入力データ 深い 定性的な 説明 Inputの精査と、アウトプットの理解に注力!
  16. 16. Copyright© Data Artist Inc. All Rights Reserved. Page16Page16Page16Page16 データマイニングの全貌 データマイニング (分析) クラスタング Clustering 分類 Classification 回帰 Regression 予測したい データが・・・ 有る (数字) 有る (カテゴリー) 無い 時系列 テキスト ネットワーク Excel,R R R
  17. 17. Copyright© Data Artist Inc. All Rights Reserved. Page17Page17Page17Page17 データマイニングの全貌 データマイニング (分析) クラスタング Clustering 分類 Classification 回帰 Regression 予測したい データが・・・ 有る (数字) 有る (カテゴリー) 無い 時系列 テキスト ネットワーク Excel,R R R y = 1.7055x + 0.9155 R² = 0.8927 0 1 2 3 4 5 6 0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
  18. 18. Copyright© Data Artist Inc. All Rights Reserved. Page18Page18Page18Page18 今日お話しする内容 分類➡分類木 クラスタリング➡k-means
  19. 19. 分類木
  20. 20. Copyright© Data Artist Inc. All Rights Reserved. Page20Page20Page20Page20 • 概要 • プログラミング方法 • 内容の理解
  21. 21. Copyright© Data Artist Inc. All Rights Reserved. Page21Page21Page21Page21 • 概要 • プログラミング方法 • 内容の理解
  22. 22. Copyright© Data Artist Inc. All Rights Reserved. Page22Page22Page22Page22 概要>分類の歴史 時代19951930 1960 2001 性能 線形判別 1本の直線 2本以上の直線 曲線 分類木 SVM + カーネル トリック ランダム フォレスト (集団学習)
  23. 23. Copyright© Data Artist Inc. All Rights Reserved. Page23Page23Page23Page23 概要>アルゴリズム いい感じに分かれるように線を引く 学習用データ
  24. 24. Copyright© Data Artist Inc. All Rights Reserved. Page24Page24Page24Page24 概要>アルゴリズム 未知のデータに対しても
  25. 25. Copyright© Data Artist Inc. All Rights Reserved. Page25Page25Page25Page25 概要>アルゴリズム 分類できる
  26. 26. Copyright© Data Artist Inc. All Rights Reserved. Page26Page26Page26Page26 名前の由来 $ remove free 大小 ! spam spam spam spam 大小の条件分岐で書くと 木みたいになるので分類木
  27. 27. Copyright© Data Artist Inc. All Rights Reserved. Page27Page27Page27Page27 概要>アルゴリズム いい感じに分けるとは? ➡玉の色に偏りがある。
  28. 28. Copyright© Data Artist Inc. All Rights Reserved. Page28Page28Page28Page28 概要>アルゴリズム 男性 女性 :老眼無し :老眼有り ~40代 50代~ 性別? 年代?
  29. 29. Copyright© Data Artist Inc. All Rights Reserved. Page29Page29Page29Page29 概要>アルゴリズム 男性 女性 ~40代 50代~ = 1 2 2 + 1 2 2 =0.25+0.25 =0.5 分かれ具合
  30. 30. Copyright© Data Artist Inc. All Rights Reserved. Page30Page30Page30Page30 概要>アルゴリズム 男性 女性 ~40代 50代~ 1 2 2 + 1 2 2 =0.25+0.25 =0.5 1 2 2 + 1 2 2 =0.25+0.25 =0.5 男女の 分かれ具合の平均 =0.5
  31. 31. Copyright© Data Artist Inc. All Rights Reserved. Page31Page31Page31Page31 概要>アルゴリズム 男性 女性 ~40代 50代~ 𝟏 𝟏 𝟐 + 𝟎 𝟏 𝟐 =1+0=1 男女の 分かれ具合の平均 =1𝟎 𝟏 𝟐 + 𝟏 𝟏 𝟐 =0+1=1
  32. 32. Copyright© Data Artist Inc. All Rights Reserved. Page32Page32Page32Page32 概要>アルゴリズム 男性 女性 ~40代 50代~ 𝟏 𝟏 𝟐 + 𝟎 𝟏 𝟐 =1+0=1 男女の 分かれ具合の平均 =1𝟎 𝟏 𝟐 + 𝟏 𝟏 𝟐 =0+1=1 男女で分ける方が好い感じ!
  33. 33. Copyright© Data Artist Inc. All Rights Reserved. Page33Page33Page33Page33 • 概要 • プログラミング方法 • 内容の理解
  34. 34. Copyright© Data Artist Inc. All Rights Reserved. Page34Page34Page34Page34 ソースを書く場所 ここにズンドコ書いて行く
  35. 35. Copyright© Data Artist Inc. All Rights Reserved. Page35Page35Page35Page35 プログラミング方法>1.学習用データ読み込む train.data= read.csv(“フォルダ/data1.csv”) 事前にExcelできれいに作る。
  36. 36. Copyright© Data Artist Inc. All Rights Reserved. Page36Page36Page36Page36 プログラミング方法>2.装備を読み込む train.data= read.csv(“フォルダ/data1.csv”) library(mvpart)
  37. 37. Copyright© Data Artist Inc. All Rights Reserved. Page37Page37Page37Page37 プログラミング方法>3.学習 train.data= read.csv(“フォルダ/data1.csv”) library(mvpart) rp= rpart(Label~.,data=train.data) これが分類したいもの
  38. 38. Copyright© Data Artist Inc. All Rights Reserved. Page38Page38Page38Page38 プログラミング方法>4.未知データの分類 train.data= read.csv(“フォルダ/data1.csv”) library(mvpart) rp= rpart(Label~.,data=train.data) test.data= read.csv(“フォルダ/data2.csv”) predict(rp,test.data,type="class")
  39. 39. Copyright© Data Artist Inc. All Rights Reserved. Page39Page39Page39Page39 • 概要 • プログラミング方法 • 内容の理解
  40. 40. Copyright© Data Artist Inc. All Rights Reserved. Page40Page40Page40Page40 スパムメールの分類 スパム?or Not? make address all original num3d our over edu remove internet order charSemicolon mail receive will charExclamation people report addresses capitalAve free business email type you credit your project font num000 money table hp hpl george charRoundbracket num650 lab labs charDollar telnet num857 data capitalLong num415 num85 technology re num1999 parts pm conference direct cs meeting charSquarebracket charHash capitalTotal
  41. 41. Copyright© Data Artist Inc. All Rights Reserved. Page41Page41Page41Page41 データを見てもわからない
  42. 42. Copyright© Data Artist Inc. All Rights Reserved. Page42Page42Page42Page42 分類木にかけてみよう train.data= read.csv(“フォルダ/spam1.csv”) library(mvpart) rp= rpart(Label~.,data=train.data) test.data= read.csv(“フォルダ/spam2.csv”) predict(rp,test.data,type="class")
  43. 43. Copyright© Data Artist Inc. All Rights Reserved. Page43Page43Page43Page43 出力 条件分岐がテキストで表示されます。 このままではいかつい!➡
  44. 44. Copyright© Data Artist Inc. All Rights Reserved. Page44Page44Page44Page44 条件分岐を可視化 $ remove free 大小 ! spam spam spam spam スパム 正解が分かってるデータで 答え合わせすると、 正解率89%
  45. 45. k-means
  46. 46. Copyright© Data Artist Inc. All Rights Reserved. Page46Page46Page46Page46 • 概要 • プログラミング方法 • 内容の理解
  47. 47. Copyright© Data Artist Inc. All Rights Reserved. Page47Page47Page47Page47 • 概要 • プログラミング方法 • 内容の理解
  48. 48. Copyright© Data Artist Inc. All Rights Reserved. Page48Page48Page48Page48 k-meansとは? k個の平均をつくって、 その周りのやつを取ってきます。 http://d.hatena.ne.jp/nitoyon/20090409/kmeans_visualise
  49. 49. Copyright© Data Artist Inc. All Rights Reserved. Page49Page49Page49Page49 良いクラスタリング 悪いクラスタリング 中心とデータの距離が近いとよい!!
  50. 50. Copyright© Data Artist Inc. All Rights Reserved. Page50Page50Page50Page50 ラベルの無いデータを用意 X(身長) Y(体重)
  51. 51. Copyright© Data Artist Inc. All Rights Reserved. Page51Page51Page51Page51 適当にラベリング(仮に5色)
  52. 52. Copyright© Data Artist Inc. All Rights Reserved. Page52Page52Page52Page52 中心を決定 重心を中心にすれば、 データと中心の距離が最小
  53. 53. Copyright© Data Artist Inc. All Rights Reserved. Page53Page53Page53Page53 ラベルしなおす 一番近い重心の色にすれば、 データと中心の距離が最小
  54. 54. Copyright© Data Artist Inc. All Rights Reserved. Page54Page54Page54Page54 新しいラベルを元に中心を決定 重心を中心にすれば、 データと中心の距離が最小
  55. 55. Copyright© Data Artist Inc. All Rights Reserved. Page55Page55Page55Page55 新しい中心を元にラベルしなおす 一番近い重心の色にすれば、 データと中心の距離が最小
  56. 56. Copyright© Data Artist Inc. All Rights Reserved. Page56Page56Page56Page56 新しいラベルを元に中心を決定
  57. 57. Copyright© Data Artist Inc. All Rights Reserved. Page57Page57Page57Page57 新しい中心を元にラベルしなおす
  58. 58. Copyright© Data Artist Inc. All Rights Reserved. Page58Page58Page58Page58 新しいラベルを元に中心を決定
  59. 59. Copyright© Data Artist Inc. All Rights Reserved. Page59Page59Page59Page59 新しい中心を元にラベルしなおす
  60. 60. Copyright© Data Artist Inc. All Rights Reserved. Page60Page60Page60Page60 新しいラベルを元に中心を決定
  61. 61. Copyright© Data Artist Inc. All Rights Reserved. Page61Page61Page61Page61 新しい中心を元にラベルしなおす
  62. 62. Copyright© Data Artist Inc. All Rights Reserved. Page62Page62Page62Page62
  63. 63. Copyright© Data Artist Inc. All Rights Reserved. Page63Page63Page63Page63 もう変わらないのでおしまい 各クラスターの中心とデータの の距離が最小
  64. 64. Copyright© Data Artist Inc. All Rights Reserved. Page64Page64Page64Page64 • 概要 • プログラミング方法 • 内容の理解
  65. 65. Copyright© Data Artist Inc. All Rights Reserved. Page65Page65Page65Page65 プログラミング方法>1.学習用データ読み込む train.data= read.csv(“フォルダ/data.csv”)
  66. 66. Copyright© Data Artist Inc. All Rights Reserved. Page66Page66Page66Page66 プログラミング方法>2.学習 train.data= read.csv(“フォルダ/data.csv”) km=kmeans(train.data,centers=k) 中心の数。
  67. 67. Copyright© Data Artist Inc. All Rights Reserved. Page67Page67Page67Page67 プログラミング方法>3.結果の学習 train.data= read.csv(“フォルダ/data1.csv”) km=kmeans(train.data,centers=k) km$cluster
  68. 68. Copyright© Data Artist Inc. All Rights Reserved. Page68Page68Page68Page68 • 概要 • プログラミング方法 • 内容の理解
  69. 69. Copyright© Data Artist Inc. All Rights Reserved. Page69Page69Page69Page69 23区のクラスタリング
  70. 70. Copyright© Data Artist Inc. All Rights Reserved. Page70Page70Page70Page70 区に属性を付ける(政府統計) 可住地面積1k㎡当たり人口密度(人) 昼夜間人口比率(%) 生産年齢人口割合[15~64歳人口](%) 人口増加率(%) 転入率(%) 核家族世帯割合(%) 商業年間商品販売額[卸売業+小売業](従業者1人当たり)(万円) 課税対象所得(千円) 高等学校数(可住地面積100k㎡当たり)(校) 完全失業率(%) 他市区町村への通勤者比率(%) 他市区町村からの通勤者比率(%) 図書館数(人口100万人当たり)(館) 持ち家比率(%) 1住宅当たりの延べ面積(m2) 小売店数(人口千人当たり)(店) 百貨店数(人口10万人当たり)(店) 道路実延長(総面積1k㎡当たり)(km) 一般病院数(人口10万人当たり)(施設) 一般診療所数(人口10万人当たり)(施設) 交通事故発生件数(人口10万人当たり)(件) 刑法犯認知件数(人口千人当たり)(件)
  71. 71. Copyright© Data Artist Inc. All Rights Reserved. Page71Page71Page71Page71 実際のデータ こんな感じ ※クラスタリングする前には、平均が0,標準偏差が1に成るように各データを標準化します。
  72. 72. Copyright© Data Artist Inc. All Rights Reserved. Page72Page72Page72Page72 データの取得方法
  73. 73. Copyright© Data Artist Inc. All Rights Reserved. Page73Page73Page73Page73 kmeansにかけてみよう! train.data= read.csv(“フォルダ/ku23.csv”) km=kmeans(train.data,centers=k) km$cluster
  74. 74. Copyright© Data Artist Inc. All Rights Reserved. Page74Page74Page74Page74 得られたクラスター C1 C2 C3 C4 C5 中央区 台東区 足立区 品川区 渋谷区 港区 江東区 葛飾区 北区 中野区 大田区 墨田区 板橋区 新宿区 練馬区 杉並区 文京区 荒川区 目黒区 豊島区 江戸川区 世田谷区
  75. 75. Copyright© Data Artist Inc. All Rights Reserved. Page75Page75Page75Page75 得られたクラスターを地図で見る。 政府統計指標で 作ったクラスター が近いところに 固まっている!!
  76. 76. まとめ
  77. 77. Copyright© Data Artist Inc. All Rights Reserved. Page77Page77Page77Page77 データマイニングの全貌 データマイニング (分析) クラスタング Clustering 分類 Classification 回帰 Regression 予測したい データが・・・ 有る (数字) 有る (カテゴリー) 無い 時系列 テキスト ネットワーク Excel,R R R
  78. 78. Copyright© Data Artist Inc. All Rights Reserved. Page78Page78Page78Page78 今日お話しする内容 分類➡分類木 クラスタリング➡k-means
  79. 79. Copyright© Data Artist Inc. All Rights Reserved. Page79Page79Page79Page79 データアーティスト社の応用例 分類➡分類木 →セグメント毎のABテスト →口コミのネガポジ分析 →CRMの優良顧客検出 クラスタリング➡k-means →ユーザー行動パターンの可視化
  80. 80. Copyright© Data Artist Inc. All Rights Reserved. Page80Page80Page80Page80 ご清聴ありがとうございました!!

×