氷解！データ分析、機械学習手法ってたくさんあるけどいつどれを使えばよいのか

たくさんいいねいただきありがとうございます。2016年の記事で古いのでいずれ全面改訂しようと思いますが、古さが目立つ箇所のみまずは訂正しました。

# データ分析・機械学習の代表的な手法には何があるか
- 代表的な本、技術リスト、データサイエンティストの推奨ではデータ分析・機械学習手法はどんなものがリストアップされているか
    - ここでは、統計学的検定、多変量解析、機械学習を分けていない
    - 構造化データ（いわゆるテーブルデータ）のみ対象とし、画像、自然言語処理、マーケティングの専門的な分析等は対象外
        - 補足を下記に

## 代表的な手法と紹介のされ具合
|分析手法|『[Rによるデータサイエンス-データ解析の基礎から最新手法まで](https://amzn.to/32wICe8)』|『[はじめてのパターン認識](https://amzn.to/2WyzlhX)』|[データサイエンティスト協会スキルチェックリスト](https://www.datascientist.or.jp/common/docs/skillcheck_ver3.00.pdf)|[「デジタルガレージCDOから学ぶ！マーケターのための実践・データ分析入門～事例紹介を通じて5つの手法をマスター～」](https://www.seminar-info.jp/entry/seminars/view/1/4814)|[データマイニングで使われるトップ10アルゴリズム](http://gihyo.jp/dev/clip/01/orangenews/vol66/0004)|​[ビジネス実務の現場で有用な統計学・機械学習・データマイニング及びその他のデータ分析手法10+2選（2016年版）](http://tjo.hatenablog.com/entry/2016/03/07/080000)|
|:-:|:-:|:-:|:-:|:-:|:-:|:-:|
|統計学的検定|||検定/判断|    |   |O   |
|クロス集計|||性質・関係性の把握|O  |   |   |
|主成分分析・特異値分解|O|O|性質・関係性の把握／機械学習|||O|
|因子分析|O||性質・関係性の把握||||
|対応分析|O||性質・関係性の把握||||
|多次元尺度法|O||性質・関係性の把握||||
|クラスター分析|O|O|グルーピング|O|O|O|
|自己組織化マップ|O||グルーピング||||
|回帰分析|O||予測|O||O|
|判別分析|O|O|グルーピング||||
|生存分析|O||||||
|時系列分析|O||時系列||||
|決定木・回帰木|O|O|予測|O|O||
|ニューラルネットワーク|O|O|機械学習|||O|
|サポートベクターマシン|O|O|機械学習||O||
|アンサンブル学習|O|O|機械学習||O|O|
|アソシエーション分析|O||パターン発見|O|O||
|K近傍法|O|O|||O|
|その他|||その他にもあるが略||EM, PageRank, Naïve Bayes|MCMC, word2vec, グラフ理論・ネットワーク分析, LDA|

# 機械学習の手法は大きく4つに分けられる
[scikit-learnから学ぶ機械学習の手法の概要](http://qiita.com/ynakayama/items/9c5867b6947aa41e9229)を参考とすると、機械学習の手法は下のように大きく4つに分けられる。

- カテゴリ値を予測したい場合

|教師なし|教師あり|
|:-:|:-:|
|クラスタリング|判別（分類）|

- 上記以外で

|連続値を予測する（教師あり）|それ以外（教師なし）|
|:-:|:-:|
|回帰|次元削減|

- ここで、
    - カテゴリ値
        - YES/NO、都道府県、などとびとびのカテゴリを示す値
    - 連続値
        - 売上、温度、など連続値（売上は整数値ですが実質上連続値とみなされるので）
- また、
    - 教師あり：答えとなる目的変数が与えられている。
    - 教師なし：答えとなる目的変数が与えられていない。
- また、
    - 目的変数：求めたい値。従属変数とも呼ばれる。
    - 説明変数：それを説明する値。被従属変数、特徴量とも呼ばれる。
- 注：この4つに当てはまらないものもある。

# で、いつどれを使えばよいのか
上記データ分析手法でよく使われるもの「O」の多いものをこの4つの分類に当てはめると

- 教師なし
    - 分類（クラスタリング）をする→クラスタリング
        - 非階層クラスタリングのk-meansの方が紹介され具合が増えている
    - 次元削減をする→主成分分析
        - 最近はPCAよりも分解能が高いとされるt-SNEも紹介され具合が増えてきた
    - この他に自己組織化マップなど。

- 教師あり
    - 教師ありデータの場合には、その予測を説明する根拠を必要とするか、予測精度を求めるか、で手法が絞られる。
    - 説明力が求められる場合（ビジネス用途で多い）
        - 判別（分類）
            - ロジスティック回帰、決定木が主に用いられる 
        - 回帰
            - 重回帰回帰分析、回帰木が主に用いられる
        - 予測精度を求める場合でもまずこれらの手法でデータ構造の特徴を見ることがベター
    - 予測精度が求められる場合（判別、回帰とも）
        - アンサンブル学習
        - サポートベクターマシン(SVM)は教科書には出ているが実務でもKAGGLEなどのコンペでもほとんど見かけない。アンサンブル学習よりも精度が劣り、説明せいもあまりなく、使う場所がない。コアとなるカーネル法は学ぶ必要があるが、初中級の場合はスルーした方がよいと思う。
    - 画像認識など説明変数が明確でない場合
        - ニューラルネットワークの一部としての深層学習が注目されている

|手法|判別（分類）|回帰|説明力*1)|予測精度|備考|
|:-:|:-:|:-:|:-:|:-:|:-:|
|回帰分析|X|O|◎|△|回帰式が得られ、どの説明変数が予測値にどれだけ影響があるか明確に分かる|
|ロジスティック回帰|O|X|◎|△|ロジスティック回帰は「回帰」という名称だが判別を行う|
|決定木・回帰木|O|O|◎|△|決定木が判別で、回帰木が回帰。回帰式は得られないが説明変数の大小等を木で表し目的変数への影響度が分かる|
|ニューラルネットワーク|O|O|X|※|ブラックボックスとなり説明力はない。少量のテーブルデータでのニューラルネットはあまり予測精度が出ない。多量の画像データなどにおいて深層学習により大幅に向上し注目されている|
|サポートベクターマシン|O|O|△|O|アンサンブル学習が出る前までは注目技術だった|
|アンサンブル学習|O|O|△|◎|複数の学習モデルをつくり、平均か多数決を取るというもの。説明力はないか弱いが精度が非常によくなる。予測のコンペティションなどを席巻している|

*1) FeatureImportance、SHAPなどの手法により、ブラックボックス的だった手法でも目的変数に対する説明変数の影響が分かるようになってきている。

- その他
    - 用途により、よく用いられる手法がある
        - 時系列データ
            - 機械学習というより、統計モデルに重心。時系列分析、状態空間モデルなどがある。
        - 異常検知
            - 判別問題ではあるが、正例が極端にすくないか場合によってはない（まだ壊れてない機械の故障を当てるなど）ので異常検知として、判別問題とはまた別の特殊分野
        - マーケティング分析
            - 判別、回帰、クラスタリングなど上記に帰着する課題もあるが、これを買った人にはこれがお薦めというアソシエーション分析などマーケティング独特の分析もある。下記書籍が詳しい。
            - 『[Rによる実践的マーケティングリサーチと分析 (原著第2版)](https://amzn.to/2zo0pYI)』
        - 画像、音声、自然言語処理
            - 深層学習が用いられるが、その中でも手法が進化しており、本記事の範囲外。
    - また、手法の組み合わせも用いられる
        - 説明変数が多いので主成分分析で次元削減して変数を減らしてから判別、回帰の手法を用いるなど。特にKAGGLEなどの競技コンペでは精度を求めて手法が複雑化している。概観するには下記書籍。
        - 『[Kaggleで勝つデータ分析の技術](https://amzn.to/3jhYo2v)』
    - その他参考となる書籍の記事をまとめております。
        - [データサイエンス、データ分析、機械学習関連の本](https://qiita.com/aokikenichi/items/ae4df263f591e47528a6)