347

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

Leave One Outについて

勉強会参加しませんでした!

理由:場所と時間を調べずに間に合うっしょ!の精神で予約したら間に合わないとわかったため

自習はします

 

音声を利用して機械学習させてみたいものが浮かんできたので、

モチベーションは維持できている

考えている機械学習ができるのかはわからないので、まずは基礎を勉強

 

Leave One Out、Leave P Out、Leave One Group Out
  • sklearn.model_selection から LeaveOneOut をimport
  • sklearn.model_selection から cross_val_score をimportし精度を計算
# cv=でloocvのオブジェクトを指定するとloocvしてくれる、数字を入れると
# StratifiedのK-fold CVをしてくれる
loocv = LeaveOneOut()
clf = linear_model.LogisticRegression()
scores = cross_val_score(clf, X, y, cv=loocv)
  • 脳の癌のデータに対してLOOCV実行、精度は95%が出るものの、1つのデータに対しテストを実行、精度を出しているため標準偏差が21%とブレが出やすい

 

  • 次にLeave P Outを試す
  • sklearn.model_selection から LeavePOut をimport
  • LeavePOutのオブジェクトを作成、LOOCVと同様に精度を計算しようとすると、全データから2個抜き出す、という組み合わせを全通り実行するので終わらない

 

  • 次にLeave One Group Outを試す
  • データセットが何かのグループごとに得られた場合に使う
  • 例:患者ごとのデータを集めたデータセット
  • グループは事前に今回の勉強用にgroupとして50のarrayを作成
  • Leave One Group Outもcross_val_scoreで計算可能
loocv = LeaveOneGroupOut()
scores = cross_val_score(clf, X, y, groups=group, cv=loocv)

 

学んだこと
  • sklearnの最初から準備されている具合がすごい、勉強する度思うけど機械学習の考え方が既に実装されていて便利
  • これだけ機械学習のライブラリが潤沢であれば、データ準備の方が大変なのでは
  • Leave One Group Outはどういった場合に使用するのが効果的なのか、識別時にどんな動きを内部でしているのか勉強が足りない