Section 3

Lecture 29-33

scikit-learnでの大まかな手順

  • データセットを用意する
  • 学習用とテスト用にデータセットを分ける
  • 識別器を用意する
  • 学習させる

データセットを分ける場合はランダムに分けるように気をつけて。また分割を何度も行って、正解率の平均と標準偏差を出しておこう。

  • Cross Validation (交差確認)
    • K-fold CV (K=3, 5, 10)
    • Leave one out
    • Leave group out
    • Hold out
  • Stratified (層化)

識別器はScikit Learnにいろいろプリセットで用意されていて楽ちん。

from sklearn import linear_model
cls = linear_model.LogisticRegression()

学習させるのは識別器の fit() メソッドを使うだけ。

cls.fit(x_train, y_train)

サンプル数によってやり方が変わってくる。

  • N ~ 10 : 機械学習する意味ない
  • N ~ 100 : Leave one out CVで可能かも。でもデータは増やしたい。
  • N ~ 1000 : まともになってくる。10-fold CVで可能。
  • N ~ 10000 : 良い性能が期待できる。K-fold CV (K < 10)
  • N ~ 100000 : 実応用。Hold-out以外は無理。かなり工夫が必要。
  • N > 100000 : 最先端

キーワードを拾っていく

  • ロジスティクス回帰
  • Cross Validation
  • Hold out
  • Stratified