亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python for 具有多個變量的循環迭代

Python for 具有多個變量的循環迭代

陪伴而非守候 2022-06-22 17:53:10
我正在同時對多個數據集執行 k 折驗證。我正在使用KFoldfromsklearn進行 10 倍驗證?;旧?,這將數據集劃分為 10 個部分,并在其中 9 個部分上訓練分類器,然后在剩余的第 10 個部分測試結果,然后執行相同的例程,但將測試集切換為新的第 10 個分區,現在包含舊測試集在訓練集中。我可以使用以下代碼為單個數據集編寫一個 for 循環:for train, test in kfold.split(data):    print(train)    print(test)其輸出如下:[1 2 3 4 5 6 7 8 9][0][0 2 3 4 5 6 7 8 9][1][0 1 3 4 5 6 7 8 9][2][0 1 2 4 5 6 7 8 9][3][0 1 2 3 5 6 7 8 9][4][0 1 2 3 4 6 7 8 9][5][0 1 2 3 4 5 7 8 9][6][0 1 2 3 4 5 6 8 9][7][0 1 2 3 4 5 6 7 9][8][0 1 2 3 4 5 6 7 8][9]其中第一個數組是要從數組的初始數據集數組中使用的訓練集的索引,第二個數組是測試集的索引。我可以讓它正確地迭代一個數據集。但是,我將如何同時為多個數據集執行此操作?例如,如果我想使用來自多個集合的特定折疊創建一個分類器。我嘗試了以下方法:for train0, test0, train1, test1 in kfold.split(data0), kfold.split(data1):    # code但我收到以下錯誤:ValueError: too many values to unpack (expected 4)
查看完整描述

1 回答

?
森林海

TA貢獻2011條經驗 獲得超2個贊

您可以使用并行迭代zip:


for kfold0, kfold1 in zip(kfold.split(data0), kfold.split(data1)):

   train0, test0 = kfold0

   train1, test1 = kfold1

   ...

您甚至可以直接在循環中解壓縮元組,盡管我個人認為這不太可讀:


for (train0, test0), (train1, test1) in zip(kfold.split(data0), kfold.split(data1)):

   ...


查看完整回答
反對 回復 2022-06-22
  • 1 回答
  • 0 關注
  • 187 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號