データ分割と交差検証
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[武藤]]
*交差検証によるパラメータ調整 [#zb71e422]
**データ分割・調整手順 [#vcef11e8]
*** 1. train / testに分割 [#p930d310]
*** 2. K分割交差検証によって,trainを"調整用train" / "検...
"調整用train"と"検証データ"の分割をK回実行する
-(shuffleしない限り)trainデータが全て"調整用train"と"検証...
--1回のみの分割でパラメータ調整すると,そのときの「"調整...
--全ての"調整用train" / "検証データ"の組み合わせに対して...
#ref(cv5_for_tuning.png,,30%)
[[https://free.kikagaku.ai/tutorial/basic_of_machine_lear...
*** 3. 1つのパラメータ組み合わせに対して,K通りの「"調整...
*** 4. 平均スコアが最も高いパラメータで学習モデル構築 [#d...
-Trainに対して最適パラメータで再学習((ドキュメントの図参...
-GridSearchCVの場合,「.best_estimator_」の中に最適パラメ...
PipeLineなしの場合
gscv = GridSearchCV(estimator(学習器), param_grid(辞書式...
scoring(f1_macro/f1_microなど), cv(Kの数), verbos...
gscv.fit(trainX, trainY) # 自動的にK通りの"調整用train"...
gscvBM = gscv.best_estimator_ # 最適パラメータのモデル
*** 5. 学習モデルでtestを予測 [#dc7296c1]
print(gscvBM.score(testX, testY)) # testに対する評価
testは未知データに対する汎化性能評価のために用いられる
*** 補足 [#b42275a9]
未知データ(test)に対して交差検証は必要か?(パラメータ調整...
-J分割した各train/testパターンのtrainに対してさらにK分割...
--各train(調整train/検証データ)で最適パラメータは異なるた...
--パラメータ調整に時間を要するなら,J倍になるので非現実
*** 参考 [#iab78737]
-[[https://www.codexa.net/cross_validation/]]
-[[https://qiita.com/hikonyun/items/0da02808f19caa06d226]]
-[[https://gochikika.ntt.com/Learning/cv.html]]
-[[https://qiita.com/tomov3/items/039d4271ed30490edf7b]]
** 交差検証でシャッフルするかしないかの議論 [#ma4cf229]
-自前で交差検証する際に使いそうな「StratifiedKFold」の引...
-また,「StratifiedKFold」と「StratifiedShuffleSplit」の...
*** StratifiedKFold(shuffle = True/False)について [#q5157...
-各クラスを均等割合でtrain/test(or検証データ)に分割するの...
-StratifiedKFoldのドキュメントや調べた限りでは,Falseは元...
--データの順序が元からバラバラならFalseでも良さそう?
#ref(StratifiedKFold.png,,40%)
[[https://www.case-k.jp/entry/2021/02/14/155742]]
***「StratifiedShuffleSplit」について [#t6437fd4]
-各クラスの割合を均等に保ったまま各クラスからランダムに抽...
-繰り返し割り当てられる,1回も割り当てられないデータなど...
-同クラスの順序や他クラスとの関係性に依存しないため,より...
--%%主観的にはデータを万遍なく回してほしい,順序関係があ...
#ref(tratifiedShuffleSplit.png,,40%)
*** 補足 [#s9adde97]
-GridSearchCVでは引数が分類器かつ2(多)クラス問題ならdefau...
--train_test_split()において層化抽出(stratify)が設定され...
*** 参考 [#b8af288f]
-https://qiita.com/chorome/items/54e99093050a9473a189
-https://stackoverflow.com/questions/45969390/difference-...
-https://www.case-k.jp/entry/2021/02/14/155742
-https://nakano-tomofumi.hatenablog.com/entry/2018/01/15/...
終了行:
[[武藤]]
*交差検証によるパラメータ調整 [#zb71e422]
**データ分割・調整手順 [#vcef11e8]
*** 1. train / testに分割 [#p930d310]
*** 2. K分割交差検証によって,trainを"調整用train" / "検...
"調整用train"と"検証データ"の分割をK回実行する
-(shuffleしない限り)trainデータが全て"調整用train"と"検証...
--1回のみの分割でパラメータ調整すると,そのときの「"調整...
--全ての"調整用train" / "検証データ"の組み合わせに対して...
#ref(cv5_for_tuning.png,,30%)
[[https://free.kikagaku.ai/tutorial/basic_of_machine_lear...
*** 3. 1つのパラメータ組み合わせに対して,K通りの「"調整...
*** 4. 平均スコアが最も高いパラメータで学習モデル構築 [#d...
-Trainに対して最適パラメータで再学習((ドキュメントの図参...
-GridSearchCVの場合,「.best_estimator_」の中に最適パラメ...
PipeLineなしの場合
gscv = GridSearchCV(estimator(学習器), param_grid(辞書式...
scoring(f1_macro/f1_microなど), cv(Kの数), verbos...
gscv.fit(trainX, trainY) # 自動的にK通りの"調整用train"...
gscvBM = gscv.best_estimator_ # 最適パラメータのモデル
*** 5. 学習モデルでtestを予測 [#dc7296c1]
print(gscvBM.score(testX, testY)) # testに対する評価
testは未知データに対する汎化性能評価のために用いられる
*** 補足 [#b42275a9]
未知データ(test)に対して交差検証は必要か?(パラメータ調整...
-J分割した各train/testパターンのtrainに対してさらにK分割...
--各train(調整train/検証データ)で最適パラメータは異なるた...
--パラメータ調整に時間を要するなら,J倍になるので非現実
*** 参考 [#iab78737]
-[[https://www.codexa.net/cross_validation/]]
-[[https://qiita.com/hikonyun/items/0da02808f19caa06d226]]
-[[https://gochikika.ntt.com/Learning/cv.html]]
-[[https://qiita.com/tomov3/items/039d4271ed30490edf7b]]
** 交差検証でシャッフルするかしないかの議論 [#ma4cf229]
-自前で交差検証する際に使いそうな「StratifiedKFold」の引...
-また,「StratifiedKFold」と「StratifiedShuffleSplit」の...
*** StratifiedKFold(shuffle = True/False)について [#q5157...
-各クラスを均等割合でtrain/test(or検証データ)に分割するの...
-StratifiedKFoldのドキュメントや調べた限りでは,Falseは元...
--データの順序が元からバラバラならFalseでも良さそう?
#ref(StratifiedKFold.png,,40%)
[[https://www.case-k.jp/entry/2021/02/14/155742]]
***「StratifiedShuffleSplit」について [#t6437fd4]
-各クラスの割合を均等に保ったまま各クラスからランダムに抽...
-繰り返し割り当てられる,1回も割り当てられないデータなど...
-同クラスの順序や他クラスとの関係性に依存しないため,より...
--%%主観的にはデータを万遍なく回してほしい,順序関係があ...
#ref(tratifiedShuffleSplit.png,,40%)
*** 補足 [#s9adde97]
-GridSearchCVでは引数が分類器かつ2(多)クラス問題ならdefau...
--train_test_split()において層化抽出(stratify)が設定され...
*** 参考 [#b8af288f]
-https://qiita.com/chorome/items/54e99093050a9473a189
-https://stackoverflow.com/questions/45969390/difference-...
-https://www.case-k.jp/entry/2021/02/14/155742
-https://nakano-tomofumi.hatenablog.com/entry/2018/01/15/...
ページ名: