SE, PG系の方がデータ分析、機械学習をやる必要が出た時にまず手にとるべき一冊

データ分析、機械学習には理論の勉強も大切なのですが、何が出来て何が出来ないかも何もわからない状態で数式の波に飲まれて諦めてしまうのはもったいないです。正確に送りバントをする練習をするよりもボールを投げてバットを振る楽しさをまずは味わってからのほうが送りバントの意味も分かり練習にも身が入るというもの。
いろいろな入門の仕方があると思いますが、SE, PGでプログラムを書ける方なら本書のようにRを書いて実際に、

- どういう入力があり
- どういうライブラリをどう書くと
- どういう出力があるか

を本書で試してみるのが一番だと思います。


『<a target="_blank" href="https://www.amazon.co.jp/gp/product/462709602X/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=462709602X&linkCode=as2&tag=aokikenichi-22&linkId=9d12396bc378899d0b6bc36c5f5b72e5">Rによるデータサイエンス データ解析の基礎から最新手法まで</a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=aokikenichi-22&l=am2&o=9&a=462709602X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />』第2版
<a target="_blank"  href="https://www.amazon.co.jp/gp/product/462709602X/ref=as_li_tl?ie=UTF8&camp=247&creative=1211&creativeASIN=462709602X&linkCode=as2&tag=aokikenichi-22&linkId=9cd76195a51e90afb27b3bf206943dca"><img border="0" src="//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&MarketPlace=JP&ASIN=462709602X&ServiceVersion=20070822&ID=AsinImage&WS=1&Format=_SL250_&tag=aokikenichi-22" ></a><img src="//ir-jp.amazon-adsystem.com/e/ir?t=aokikenichi-22&l=am2&o=9&a=462709602X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />
初版が長らく人気の書でしたが2007年刊行だったので、紹介されているライブラリの一部（ツリーモデル）が使用不可になっているなど古い記述もあった。でも、初版のままでもほぼ今でも使える良書と思います。それが今年（2017年）に第2版が出ました。

# 本書の特徴
下記目次の通り、現在よく使われている手法がほぼ網羅されています。もちろんすべてではないく、深層学習はちょろっと触れているだけですしテキストマイニングなどは振れてませんが、「ディープラーニングしかやらない」「テキストマイニングしかしない」という人以外、「まず機械学習ってどんなの？」、上司からいきなり「おまえコンピュータ詳しいだろ、人工知能でなんかやれ」とか無茶ぶりされているような場合には本書で一通りの手法を手で触ってみるのがよいのではないでしょうか。
## 類書との違い
類書だと『R入門』、『Rによる統計学』、『Rによる機械学習』的なタイトルの本がありますがそれぞれとの本書の違いと、SE, PG系の方が本書をまず一冊目とすべき理由について。

- 『R入門』的な本との違い
    - 本書はR自体の使い方については必要最低限です。
    - ただ、Rを使う目的もはっきりしないままRの使い方の本を読んでも身につかないでしょう。野球が何かも分からないのにグローブの手入れの方法を知ってもねぇ。本書でRではどういう分析が出来るか、を知ってから、データの上手い扱い方、きれいな図表の表示の仕方を知っても遅くはありません。
- 『Rによる統計学』的な本との違い
    - 統計学と機械学習の違いは何か、って言い出すと長くなりますが、ここの記事が分かりやすいかと思います → [「統計学と機械学習の違い」はどう論じたら良いのか](http://tjo.hatenablog.com/entry/2015/09/17/190000)。
    - 統計学はデータを説明することに重きを置き、機械学習はデータから予測することに重きを置く。統計学→機械学習という風に学ぶべきだという方が多く確かにそうなのですが、統計学自体が奥が深くて何をどこまでやればいいかが最初は分からないのですよね、分布の海に溺れるよりプールで泳いだらいいのではないかと。本記事では、データ分析、機械学習の分野をざっと俯瞰してみようというスタンスなので、統計学は最低限でよろしいかと。で、本書では、
        - 統計学
            - 記述統計　本書では最低限
                - 平均、分散、相関係数、……
            - 推測統計　本書では最低限
                - t検定がどうのこうのとか
            - 多変量解析　本書では代表的なものを網羅
        - 機械学習
            - 本書では代表的なものを網羅
    - 『Rによる機械学習』的な本との違い
        - 本書より機械学習についてはそれらの本の方が当然詳しく、「世の中、ディープラーニングだぜ、回帰分析なんかやってられっか」というはやる気持は分かるのですが、上司が「人工知能、ディープラーニング」と騒いでいる内容のだいたいは本書の範囲内特に多変量解析と言われる古典的な、回帰、ツリーモデルの方が適しています。まずは本書で概括すべきと思います。

著者の金明哲先生の WEBサイト [R、R言語、R環境・・・・・・](https://www1.doshisha.ac.jp/~mjin/R/index.html) に本書の元となる解説があります。この解説をまとめて本書としたようです。
やや記述が古い点がありますが、ほぼそのまま今でも役立ちます。また、別の書籍にまとめれられいるテキストマイニングの解説もあります。

# 目次
- 第I部Rとデータマイニングの基礎
    - 第1章データマイニングとR 言語
        - 1.1 データマイニングとツール
        - 1.2 Rの環境と基本操作
        - 1.3 オブジェクトと関数
        - 1.4 自作関数
        - 1.5 パッケージ
        - 1.6 ヘルプについて
        - 1.7 参考資料について
    - 第2章 データの入出力と編集
        - 2.1 直接入力
        - 2.2 エディタによる入力と編集
        - 2.3 データファイルを読み込む
        - 2.4 データの出力
        - 2.5 データの結合と並び替え
        - 2.6 データの尺度と表記
    - 第3章 データの演算と固有値,基本統計量
        - 3.1 データの演算
        - 3.2 固有値と特異値の分解
        - 3.3 基本統計量
    - 第4章 データの視覚化
        - 4.1 棒グラフ
        - 4.2 円グラフ
        - 4.3 ヒストグラム
        - 4.4 折れ線グラフ
        - 4.5 箱ひげ図
        - 4.6 散布図
        - 4.7 その他のグラフ
        - 4.8 作図環境とグラフの利用
        - 参考文献
- 第II部Rによるデータ解析・データマイニング
    - 第5章 主成分分析
        - 5.1 主成分分析とは
        - 5.2 主成分分析の基礎
        - 5.3 ケーススタディ
        - 参考文献
    - 第6章 因子分析
        - 6.1 因子分析とは
        - 6.2 因子分析の基礎
        - 6.3 ケーススタディ
        - 6.4 因子分析の関数fa と解析の例
        - 6.5 補遺と注釈
        - 参考文献
    - 第7章 対応分析
        - 7.1 対応分析とは
        - 7.2 対応分析の基礎
        - 7.3 ケーススタディ
        - 7.4 多重対応分析
        - 7.5 多元表の対応分析
        - 7.6 補遺と注釈
        - 参考文献
    - 第8章 多次元尺度法
        - 8.1 多次元尺度法とは
        - 8.2 距離と類似度
        - 8.3 計量MDS のケーススタディ
        - 8.4 非計量MDS
        - 8.5 補遺と注釈
        - 参考文献
    - 第9章 クラスター分析
        - 9.1 クラスター分析とは
        - 9.2 階層的クラスター分析
        - 9.3 非階層的クラスター分析
        - 9.4 モデルに基づいたクラスター分析
        - 9.5 補遺と注釈
        - 参考文献
    - 第10章 自己組織化マップ
        - 10.1 自己組織化マップとは
        - 10.2 データ解析
        - 10.3 補遺と注釈
        - 参考文献
    - 第11章 線形回帰分析
        - 11.1 回帰分析とは
        - 11.2 線形単回帰分析
        - 11.3 線形重回帰分析
        - 11.4 補遺と注釈
        - 参考文献
    - 第12章 非線形回帰分析
        - 12.1 非線形回帰分析とは
        - 12.2 ロジスティック回帰
        - 12.3 多項式回帰
        - 12.4 一般化線形モデル
        - 12.5 平滑化回帰と加法モデル
        - 12.6 補遺と注釈
        - 参考文献
    - 第13章 線形判別分析
        - 13.1 判別分析とは
        - 13.2 線形判別分析の基礎
        - 13.3 ケーススタディ
        - 13.4 交差確認
        - 13.5 補遺と注釈
        - 参考文献
    - 第14章 非線形判別分析
        - 14.1 非線形判別分析とは
        - 14.2 距離による判別分析
        - 14.3 多数決による判別分析
        - 14.4 ベイズ判別法
        - 14.5 補遺と注釈
        - 参考文献
    - 第15章 ツリーモデル
        - 15.1 ツリーモデルとは
        - 15.2 ツリーモデルの基礎
        - 15.3 パッケージとケーススタディ
        - 15.4 ツリーのグラフの作成
        - 15.5 補遺と注釈
        - 参考文献
    - 第16章 集団学習
        - 16.1 集団学習とは
        - 16.2 バギング
        - 16.3 ブースティング
        - 16.4 ランダムフォレスト
        - 16.5 補遺と注釈
        - 参考文献
    - 第17章 カーネル法とサポートベクターマシン
        - 17.1 カーネルとは
        - 17.2 カーネル主成分分析
        - 17.3 サポートベクターマシン
        - 17.4 補遺と注釈
    - 第18章 ニューラルネットワーク
        - 18.1 ニューラルネットワークとは
        - 18.2 ニューラルネットワークの基礎
        - 18.3 パッケージとケーススタディ
        - 18.4 深層学習
        - 18.5 補遺と注釈
        - 参考文献
    - 第19章 ネットワーク分析
        - 19.1 ネットワーク分析とは
        - 19.2 ネットワークの作成
        - 19.3 ネットワークの統計量
        - 19.4 コミュニティ分析
        - 19.5 補遺と注釈
        - 参考文献
    - 第20章 アソシエーション分析
        - 20.1 アソシエーション分析とは
        - 20.2 相関ルール
        - 20.3 頻出アイテムの抽出
        - 20.4 抽出結果の補助分析
        - 20.5 補遺と注釈
        - 参考文献
    - 第21章 時系列分析
        - 21.1 時系列分析の基本概念とデータの操作
        - 21.2 自己共分散と自己相関
        - 21.3 スペクトル分析
        - 21.4 ランダムウォークと単位根
        - 21.5 AR モデル
        - 21.6 ARMA/ARIMA モデル
        - 21.7 その他のモデル
        - 21.8 成分の分解
        - 21.9 多変量時系列
        - 21.10 カオス時系列
        - 21.11 補遺と注釈
        - 参考文献
    - 第22章 生存分析
        - 22.1 基本概念
        - 22.2 ノンパラメトリックモデル
        - 22.3 セミノンパラメトリックモデル
        - 22.4 パラメトリックモデル
        - 22.5 補遺と注釈

- 注
    - 第15章「ツリーモデル」は「木（分類木、回帰木）」などとも呼ばれます。
    - 第16章「集団学習」は「アンサンブル学習」と呼ばれるほうが多いです。
    - 「深層学習」は「ディープラーニング」とも呼ばれますね。

……、初心者には近寄りがたい恐ろしそうな名前が並んでいますね。これをガチ数学でやろうとしたら絶対挫折しますが、まずは手に振れてみるのが絶対によろしいかと。

# この本を読み終わったら
実践あるべしなのですが、武器がまだまだ磨かれてない、足りないことに気づくでしょう。ただ、今までの「どこから手を付けていいか全くわからない」という状況からは大きく変わっているはずです。
よろしければ拙記事

- [データサイエンス、データ分析、機械学習関連の本](http://qiita.com/aokikenichi/items/ae4df263f591e47528a6)
- [氷解！データ分析、機械学習手法ってたくさんあるけどいつどれを使えばよいのか](http://qiita.com/aokikenichi/items/688e66d10a944051039c)
- 機械学習系のパッケージを統合したcaretを用いて本書（初版ですが）のコードを実行した記事を書きました [『Rによるデータサイエンス』をcaretで再現する](http://qiita.com/aokikenichi/items/b7525a9e0a667b56e7a2)

をご参考になさってください。