我正在使用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曲线,但我无法弄清楚如何去做。我该如何解决这个问题?