概要
人気ブログ「銀座で働くデータサイエンティストのブログ」を運営する現役データサイエンティスト(Data Scientist)である著者が,Rを使ったデータマイニングの基礎から最新の手法まで,ビジネス現場での具体例を交えながらやさしく解説します。技術評論社のサイトからダウンロードできるサンプルデータを用いて実際に手を動かしながら学習していく方式なので,データもRも「使える」力を確実に身に付けることができます。
こんな方におすすめ
- データマイニングの入門者
- 統計分析ツール「R」を使ってみたい方
著者から一言
(「はじめに」より抜粋)
本書は,筆者の個人ブログ『銀座で働くデータサイエンティストのブログ』ではてなブックマーク1000以上を獲得した人気記事,「Webデータ分析&データサイエンスで役立つ統計学・機械学習系の分析手法10選」(http://tjo.hatenablog.com/entry/2013/06/10/190508)をベースに,単行本として全面的に書き下ろしたものです。
このブログ記事は,元はといえば私自身向けの備忘録も兼ねて「あれー,あの統計学or機械学習の手法ってRでどうやってやるんだったっけ?」という程度のメモとしてざっくりとまとめただけだったのですが,思いの外反響が大きくてびっくりしたのを覚えています。
私自身は今でこそデータ分析を生業としておりますが,かつては異なる分野の研究者としてデータ分析を実践する立場にはあったとはいえ,統計学や機械学習といったデータ分析の根幹をなす学術分野のエキスパートだったわけではありません。
それどころか,今現在盛んに用いられている分析手法の中には,私が若かりし頃情報系の学生だった頃にはまだ実用化していなかったものもあったり……そうなると,もはや復習するどころかゼロから学ばなければならないものだらけということに。まさに三十路半ばからの手習いということで,データ分析の仕事を始めてからは地道にサンプルデータやチュートリアルをRで扱ったり実践したりすることで,徐々にビジネスにおけるデータ分析と,統計学・機械学習とに慣れ親しんでいったのでした。
皆さんの中には,データ分析はともかく,統計学や機械学習なんてちんぷんかんぷんという方もいらっしゃることでしょう。そのような方々のために,「Rを使って手を動かせば,こんなに簡単にデータ分析も,統計学も,機械学習も使いこなせるようになりますよ!」と伝えたい。そういう思いを込めて,本書を書き上げました。ぜひ,本書を読みながら,Rを使って手を動かすことで,少しずつでも良いので着実に統計学と機械学習について学び取っていただければと願っております。
目次
第1章 データマイニングとは
- 1-1 データマイニングって一体何?
- 1-2 データマイニングの両輪:統計学と機械学習
- 1-3 これだけは覚えておきたい基礎知識
- 1-4 大事なのは「イメージ」できるようになること
- 1-5 この本を読み進める上での注意点
第2章 Rを使ってみよう
- 2-1 Rとは
- 2-2 Rのインストール
- 2-3 RStudioのインストール
- 2-4 Rでデータ操作をしてみよう
- 2-5 CRANパッケージを使ってみよう
- 2-6 Rによるコーディングについて
- 2-7 formula式を覚えよう
- [コラム]サンプルデータのダウンロードについて
第3章 その2つのデータ,本当に差があるの? ~仮説検定~
- 3-1 それが偶然に起きたことか必然的に生じたことかを判定する=仮説検定と有意確率
- 3-2 t検定:いわゆる「有意差」を見つける代表的なメソッド
- 3-3 独立性の検定(カイ二乗検定):施策の効果があったかどうかを見る
- 3-4 順位和検定:分布同士の「ずれ」を見る
第4章 ビールの生産計画を立てよう~重回帰分析~
- 4-1 ある「目的となるデータ」をさまざまな「独立な周辺データ」から「説明」したい=回帰
- 4-2 重回帰分析=複数の説明変数でひとつの目的変数を説明する
- 4-3 重回帰分析をやってみよう
- 4-4 「偏回帰係数」と「相関係数」の違いに注意
- [コラム]どれくらいの個数のデータを集めれば良い?
第5章 自社サービス登録会員をグループ分けしてみよう ~クラスタリング~
- 5-1 「何かの基準に基づいて似たもの同士をまとめる」=クラスタリング
- 5-2 Rで利用できるクラスタリング手法たち
- 5-3 eコマースサイトの顧客データでクラスタリングしてみよう
第6章 コンバージョン率を引き上げる要因はどこに? ~ロジスティック回帰~
- 6-1 「一般化線形モデル」とは
- 6-2 パーセンテージのように「上限と下限が決まっている」場合のロジスティック回帰
- 6-3 テストの合否のように「Yes/No(1 or 0)の二値で現れる」場合のロジスティック回帰
- 6-4 実際にロジスティック回帰をやってみよう
- [コラム] データ分析の勉強会に参加してみませんか?
第7章 どのキャンペーンページが効果的だったのか? ~決定木~
- 7-1 決定木から始める機械学習
- 7-2 「できるだけ外れているものをよけるように」分岐条件の順番を決めていく=決定木
- 7-3 決定木を試してみよう
- 7-4 決定木で回帰分析をすると「回帰木」になる
- [コラム] Rの次は何を勉強するべき?
第8章 新規ユーザーの属性データから今後のアクティブユーザー数を予測しよう ~SVM/ランダムフォレスト~
- 8-1 機械学習とはどういうもの?
- 8-2 サポートベクターマシン(SVM):「美しく」分類する機械学習の王様
- 8-3 ランダムフォレスト:コンピューターの進歩が生み出した機械学習の若きスター
- 8-4 新規ユーザーの属性データから,1ヶ月後のアクティブユーザー数を予測してみよう
第9章 ECサイトの購入カテゴリデータから何が見える? ~アソシエーション分析~
- 9-1 「Xが起きればYも起きる」をモデリングする
- 9-2 ECサイトの購入カテゴリデータからおすすめカテゴリ導線のプランを考えてみよう
- [コラム]レコメンデーション(推薦)システムとの関係
第10章 Rでさらに広がるデータマイニングの世界 ~その他の分析メソッドについて~
- 10-1 分散分析
- 10-2 一般化線形モデルとその応用
- 10-3 主成分分析,因子分析とその発展形
- 10-4 機械学習のその他の手法と発展形
- 10-5 グラフ理論・ネットワーク分析
- 10-6 計量時系列分析
- 10-7 ベイジアンモデリング
- 10-8 その他の新旧メソッドたち
サポート
ダウンロード
本書で使用するサンプルデータがダウンロードできます。
圧縮ファイルをダウンロードしていただき,適宜解凍してご利用ください。
各ファイルはテキスト形式になっています。データの読み込み方については,本書のP.39「2.4.3 Rでデータを入出力してみる」をご覧ください。
- ダウンロード
- DM_sampledata.zip
補足情報
本書に関する補足記事が著者のブログ(「銀座で働くData Scientistのブログ」)に掲載されています。ぜひ,本書と併せてご覧ください。
『手を動かしながら学ぶ ビジネスに活かすデータマイニング』(技術評論社)を書くに当たって気を付けたこと&補足など(追記あり)
サポートが切れたCRANパッケージについて
(2015年3月23日更新)
第7章で決定木を取り上げた際に紹介した{mvpart}パッケージのサポートが2014年12月の時点で切れてしまい,CRANからも削除された(http://cran.r-project.org/web/packages/mvpart/index.html)ため,install.packages関数を用いたインストールが現在できなくなっています。そこで,以下の方法でインストールするようにしてください。
Mac OS / Linux
以下のコマンドでインストールできます。
> install.packages
("http://cran.r-project.org/src/contrib/Archive/mvpart/mvpart_1.6-2.tar.gz",repos=NULL,type="source")
|
Windows
Windowsの場合tar.gzファイルをデフォルトでは解凍できないため,上記の方法ではエラーを吐いて失敗してしまいます。よって,以下の方法を用いてインストールしてください。
- Rの実行ファイルR.exeにパス(Windowsの環境変数PATH)を通しておく。
- C:\Rというフォルダにインストールしたいパッケージを保存しておく。
- コマンドプロンプトで以下のコマンドを実行する。
R CMD INSTALL mvpart_1.6-2.tar.gz
|
ここでは以下の{mvpart}の古いアーカイブ一覧から,最新版(一番下)のものをDLしてきてC:\Rフォルダに保存するようにしてください。
http://cran.r-project.org/src/contrib/Archive/mvpart/
今後も,サポートが切れたCRANパッケージについては同様に対応していただきますようお願いいたします。
正誤表
本書の以下の部分に誤りがありました。ここに訂正するとともに,ご迷惑をおかけしたことを深くお詫び申し上げます。
(2014年10月27日更新)
P.11 20行目
P.15 脚注*11
P.40 5行目
誤 |
その他read.table関数やwrite.table関数などを用いた… |
正 |
その他write関数やwrite.table関数などを用いた… |
P.43 2行目
誤 |
rbind関数をつなげます。 |
正 |
rbind関数を使います。 |
P.43 2行目
誤 |
cbindはマトリクスでもデータフレームでも使えますが、rbindはマトリクスでしか使えないので注意が必要です。 |
正 |
cbind、rbindはマトリクスでもデータフレームでも使えます。 |
P.106 ロジスティック回帰の数式
誤 |
|
正 |
|
P.123 図7-1 一番下の分岐内容
誤 |
左側:「このステップで最も「外れている」目的変数と…」 右側:「これ以上分けられないという…」 |
正 |
左側:「これ以上分けられないという…」 右側:「このステップで最も「外れている」目的変数と…」 |
P.128 囲み内
P.128 囲み内
P.212 コード記述下から6行目