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)