技術とか戦略とか

証券レガシーシステムを8年いじってから転職した普通の文系SEによるブログ。技術のみではなく趣味の戦略考察についても。

機械学習の手法が多すぎて良く分からないので調べてみた

表題の通り、機械学習の手法が多すぎてどれを使えば良いか良く分からなかったので、調べてみました。
私が調べた限りでは、下記のページが良くまとまっていると思いました。
 
代表的な機械学習手法一覧 - Qiita

https://qiita.com/tomomoto/items/b3fd1ec7f9b68ab6dfe2

 
各々の手法について、Pythonのライブラリを使用すれば実装できそうです。
以下は使用できるライブラリの例です。
各々の手法についてサンプルプログラムっぽいものが見つかったらその時点で調べるのをやめているので、網羅性はあまりないですが…。

 
【教師データあり】
1.回帰
 ・(一般化)線形回帰
  sklearn.linear_model等
  
 ・ロジスティック回帰
  sklearn.linear_model等
  
 ・サポートベクターマシーン(SVM)
  sklearn.svm
 
2.木
 ・決定木(CART)
  sklearn.tree等
  
 ・回帰木
  sklearn.tree等
  
 ・ランダムフォレスト
  sklearn.ensemble等
  
 ・勾配ブースティング木
  sklearn.cross_validation等
 
3.ニューラルネットワーク(NN)
 ・パーセプトロン
  sklearn.neural_network等
  
 ・畳み込みニューラルネットワーク(CNN)
  sklearn.neural_network等
  
 ・再帰ニューラルネットワーク(RNN)
  TensorFlow等
  
 ・残差ネットワーク(ResNet)
  TensorFlow等
 
4.ベイズ
 ・単純ベイズ(ナイーブベイズ)
  sklearn.naive_bayes等
 
5.時系列
 ・AR,MA,(S)ARIMAモデル
  statsmodels.tsa等
  
 ・状態空間モデル
  statsmodels.api
 
6.クラスタリング
 ・k近傍法(KNN)
  sklearn.neighbors等
 
7.アンサンブル学習
 ・ブースティング
  ※勾配ブースティング木ばかり出てくるのでよくわかりませんでした
  
 ・バギング
  ※ランダムフォレストばかり出てくるのでよくわかりませんでした
  
【教師データなし】
1.クラスタリング
 ・階層型クラスタリング(ユークリッド距離*ウォード法など)
  scipy.cluster.hierarchy等
  
 ・非階層型クラスタリング(k-meansなど)
  sklearn.cluster等
  
 ・トピックモデル(LDAなど)
  gensim等
  
2.NN
 ・自己組織化マップ(SOM)
  somoclu等
  
3.その他
 ・アソシエーション分析
  pyfpgrowth等
  
 ・協調フィルタリング(アイテムベース、ユーザベースなど)
  ※ライブラリは特に見つかりませんでしたが、実装例はありました。
   Pythonで簡単な協調フィルタリングを実装するためのノート - Qiita
   https://qiita.com/hik0107/items/96c483afd6fb2f077985