はじめに
Coursera の 「How to Win a Data Science Competition」 のメモです。
英語字幕しかなかったので、翻訳の意味が分からないところがあるかもしれません。
Introduction & Recap
学習目標
- Describe competition mechanics
- Compare real life applications and competitions
- Summarize reasons to participate in data science competitions
- Describe main types of ML algorithms
- Describe typical hardware and software requirements
- Analyze decision boundries of different classifiers
- Use standard ML libraries
Recap of main ML algorithms
機械学習のアルゴリズム
線形モデル
例
- ロジスティック回帰
- SVM
特徴
- 線で空間を分ける
- 高次元データに適している
- それぞれ、異なる損失関数を持つ
- 線形モデルの限界として、輪を形成している点は分離できない
- ほとんどの機械学習ライブラリに実装されている (scikit-learnなど)
- Vowpal Wabbit (大きいデータセットを扱うように設計されている)
樹木モデル
例
- ランダムフォレスト (RF)
- 勾配ブースティング (GBDT: Gradient Boosted Decision Trees)
特徴
- 決定木 (decision tree)
- 分割統治法を利用して、分割し続ける
- コンペの勝者はほぼ使う
- 表形式データへのアプローチに良い
- 線形の依存関係を捉えることは難しい
- 境界線の付近で不正確になる可能性がある
- ほとんどの機械学習ライブラリに実装されている (scikit-learnなど)
- XGBoost, LightGBM は高速で正確なライブラリ
k近傍法 (k-nearest neighbor)
特徴
- ニューラルネットワークとは異なる
- 互いに近い点が同様のラベルと仮定している
- 近いオブジェクトを探すために2乗距離を使うが、画像ではあまり意味がない
- ほとんどの機械学習ライブラリに実装されている
- scikit-learn がおすすめ(事前定義の距離を使うことができる)
- 自前の距離関数も実装できる
ニューラルネットワーク
※ このコースでは扱わない
例
- TensorFlow
- Keras
- MXNet
- PyTorch
- Lasagne
特徴
- 一般的にはブラックボックスで、滑らかな境界線を作る
- 画像、音、テキスト、シーケンスに適しているものがある
ノーフリーランチ定理
すべてのタスクに対して、他の全ての方法を上回るパフォーマンスを出す方法はない。