我正在使用scikit-learn手動構建裝袋分類器。我需要這樣做,因爲我有三個數據子集,而且我需要在每個數據集上訓練一個分類器。所以我基本上做的是創建三個分類器並在子集上訓練每個分類器。然後給出一個測試集,我下面找到ROC AUC:構建手動裝袋分類器後繪製ROC曲線
probas2 = estimators[2].predict_proba(X_test)
probas3 = estimators[3].predict_proba(X_test)
probas4 = estimators[4].predict_proba(X_test)
probas = probas2[:,1] + probas3[:,1] + probas4[:,1]
probas = probas/3.0
fpr, tpr, thresholds = roc_curve(y_test, probas)
roc_auc = auc(fpr, tpr)
但是我需要的是做3折交叉驗證,然後繪製ROC曲線和輸出AUC。所以基本上我保持fpr
,tpr
每個之後roc_auc
軌道倍使用這樣的名單:
folds_auc.append(roc_auc)
folds_fpr.append(fpr)
folds_tpr.append(tpr)
的問題是,每個摺疊後fpr
和tpr
的長度不同的陣列,所以我不能只是它們求和併除以3以繪製ROC曲線。我想繪製ROC曲線,但我無法弄清楚如何去做。我該如何解決這個問題?