347

勉強のこと、酒のことを書いていく

Hold-out

衛宮さんちの今日のごはん#10 のWeb最速放送が始まるまで勉強

と言いつつ時間がきてしまったので先に視聴

壁走り、花の作画がすごすぎる、そして腹減る

 

これからも残業しなければ勉強時間は確保できそう

 

Hold-out
  • load_breast_cancer(脳の癌のデータ)に対してHold-outで識別
  • データセットの数は約500個
  • 次にMNISTという手書き文字のデータセットに対してHold-outで識別
  • MNISTは70,000個のデータ、9クラスのデータセット
  • MNISTは最初の60,000個が学習データ、10,000個がテストデータと決まっている
  • つまり60,000個の中で検証データを更に分け、精度を上げる必要がある
  • 試しに60,000個を学習させると、識別器によっては1時間たっても終わらない
  • 60,000個もデータがある場合は、Hold-outでも工夫が必要

 

Hold-out Stratified
  • 学習データ、テストデータのクラスバランスが悪い場合を確認するため、極端な例としてデータセットの95%を学習データ、5%をテストデータとしてみる
  • ShuffleSplitでデータセットを分割し、クラスバランスを確認すると偏りが見える
  • そういった場合はStratifiedShuffleSplitを使用する
  • そうするとクラスバランスを保ったまま学習データ、テストデータに分けてくれる

 

学んだこと
  • 前日で学んだ、データセットの数に対しての分割方法について、コードを動かして「あー本当に計算リソースによっては時間かかりすぎて無理だな」と実感
  • StratifiedShuffleSplit すごい
  • sklearnからimportするだけでStratifiedを一発で出来てしまうなんて便利すぎる