347

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

cross validation、Stratified 10-fold CV

明日は勉強会に参加予定なので自習はできそうにない

というか今月は珍しく既に4つほど勉強会にエントリーしてる

勉強会ってほぼ必ず短時間飲み会がついてるけど、費用どのくらいかかってるんだろう

 

10-fold CV
  • sklearnからKFoldをimportするともうK-fold CVが使える
  • 引数でKの値を指定可能、今回は10で指定
  • ただKFoldをそのまま使うとStratifiedされていないため、10個に分けられたデータセットの中にはクラスバランスが悪いものが存在する
  • そういった場合にはStratifiedKFoldを使用する
  • cross validationの精度を計算するためのオブジェクト「cross_val_score」を利用する
  • コードが短くて済み、かつ平均と標準偏差も出してくれるので精度が簡単に出せる
  • # 精度計算ができるcross_val_scoreを使用する、cvで分割数を指定しStratifiedもしてくれる
    from sklearn.model_selection import cross_val_score

    ave_score = cross_val_score(clf, X, y, cv=10)
    print("{0:4.2f} +/- {1:4.2f} %".format(ave_score.mean() * 100, ave_score.std()*100))
  • 結果
  • 94.91 +/- 1.61 %
学んだこと
  • K-fold CVは引数でいくつに分割するかを簡単に指定可能、すごい便利
  • K-fold CVの精度を計算するのもcross_val_scoreで楽できるなんてすごい
  • Python、というかsklearnのライブラリがこんなにも便利だと日々実感する