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

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

我如何改編這個已棄用的 StratifiedKFold 代碼

我如何改編這個已棄用的 StratifiedKFold 代碼

弒天下 2023-12-12 21:35:39
我有一個數據集,其中響應值不平衡,我有更多合格的拒絕值與非拒絕值,因此我希望平衡我的數據集。為此,有一個代碼可以使用現已棄用的代碼cross_validation.StratifiedKFold,但現在我需要對其進行調整,但我并不完全理解它,所以我正在尋求幫助。原來的代碼是:def stratified_cv(X, y, clf_class, shuffle=True, n_folds=10, **kwargs):    stratified_k_fold = cross_validation.StratifiedKFold(y, n_folds=n_folds, shuffle=shuffle)    y_pred = y.copy()    # ii -> train    # jj -> test indices    for ii, jj in stratified_k_fold:         X_train, X_test = X[ii], X[jj]        y_train = y[ii]        clf = clf_class(**kwargs)        clf.fit(X_train,y_train)        y_pred[jj] = clf.predict(X_test)    return y_pred數據集 fit_transformed在哪里X,轉換為 numpy float 數組并縮放,y“拒絕”與“未拒絕”分類轉換為 int 數組(當然是 0 或 1)。最后clf_class(**kwargs)可以是分類器,例如ensemble.GradientBoostingClassifier,svm.SVC和ensemble.RandomForestClassifiery = np.array([0,0,0,0,0,1,1])
查看完整描述

1 回答

?
Qyouu

TA貢獻1786條經驗 獲得超11個贊

StratifiedKFold已搬進model_selection. 所以你應該這樣做:


from sklearn.model_selection import StratifiedKFold

def stratified_cv(X, y, clf_class, shuffle=True, n_folds=10, **kwargs):

    stratified_k_fold = StratifiedKFold(n_splits=n_folds, shuffle=shuffle)

    y_pred = y.copy()

    # ii -> train

    # jj -> test indices

    for ii, jj in stratified_k_fold.split(X,y): 

        X_train, X_test = X[ii], X[jj]

        y_train = y[ii]

        clf = clf_class(**kwargs)

        clf.fit(X_train,y_train)

        y_pred[jj] = clf.predict(X_test)

    return y_pred


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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