scikit-learnとは
- 機械学習アルゴリズムを簡単に実装できるライブラリ
- オープンソースであり、個人/商用問わず、誰でも無料で利用することができる
- とても有名なライブラリであり、インターネット上に情報がたくさんある。
上記のことから、初学者が機械学習を始めるのにオススメなライブラリと言える。
scikit-learnの得意分野
scikit-learnが得意とする分野は以下が挙げられる。
- 教師あり学習
・分類
・回帰 - 教師なし学習
・クラスタリング
・次元圧縮
逆に、以下の分野は不得意(実装できないわけではない)である。
- 強化学習
アルゴリズムの選定基準
scikit-learnで扱えるアルゴリズムはたくさんある。どのアルゴリズムを使用するかの選定基準として「チートシート」というのが公式に用意されている。
自分なりに整理したみたのが以下。
教師あり学習
分類
データが10万以下
→ YES
・(オススメ1)Linear SVC
・(オススメ2)K近似法
・(オススメ3)SVC、ランダムフォレスト
→NO
・(オススメ1)確率的勾配降下法
・(オススメ2)カーネル近似法
回帰
データが10万以下
→ YES
データの内、無視して良いものがある
→ YES
・Lasso回帰
→ NO
・リッジ回帰、SVR
→ NO
・線形回帰
教師なし学習
クラスタリング
データが1万以下
→ YES
分割したいグループ数が決まっている
→ YES
・(オススメ1)k-means
・(オススメ2)Spectral Clustering、ガウス混合モデル
→ NO
・ MeanShift、変分混合ガウス分布
→ NO
※ クラスタリングするのは難しい
次元圧縮
データが1万以下
→ YES
・(オススメ1)主成分分析
・(オススメ2)Isomap、Spectral Embedding
・(オススメ3)LLE
→ NO
・カーネル近似