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

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

如何確保來自特定組的所有樣本在 sklearn cross_val_predict

如何確保來自特定組的所有樣本在 sklearn cross_val_predict

Go
元芳怎么了 2023-01-04 10:10:50
我有一個數據框,其中每個樣本都屬于一個組。例如:df = a b c group     1 1 2  G1     1 6 1  G1     8 2 8  G3     2 8 7  G2     1 9 2  G2     1 7 2  G3     4 0 2  G4     1 5 1  G4     6 7 8  G5     3 3 7  G6     1 2 2  G6     1 0 5  G7我想運行cross_val_predict,同時確保來自同一組的所有樣本都在測試中或所有樣本都在訓練中。我想將數據分成 4 份 - 但要確保來自同一組的所有行都在測試或訓練中。因此,例如,第 0,1 行和第 4,5 行將在訓練中,但第 3、6 行 (G3) 將在測試中這可能嗎?我在文檔中看到了grouparg,但不是很清楚,也沒有找到任何示例。
查看完整描述

1 回答

?
慕姐4208626

TA貢獻1852條經驗 獲得超7個贊

用作inGroupKFold的參數:cvcross_val_predict()

scores = cross_val_score(model, X, y, groups, cv=GroupKFold())

請注意,groups數組表示我們希望在同一訓練/測試集中的數據組。它不是類標簽數組。

例如:

from sklearn.datasets import make_blobs

from sklearn.linear_model import LogisticRegression

from sklearn.model_selection import GroupKFold, cross_val_score


X, y = make_blobs(n_samples=15, random_state=0)


model = LogisticRegression()

groups = [0,0,0,1,1,1,1,2,2,2,2,3,3,3,3]

scores = cross_val_score(model, X, y, groups, cv=GroupKFold(n_splits=3))


print('cross val scores: {}'.format(scores))


查看完整回答
反對 回復 2023-01-04
  • 1 回答
  • 0 關注
  • 93 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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