【发布时间】:2014-05-12 14:07:24
【问题描述】:
我正在使用 scikit-learn 手动构建装袋分类器。我需要这样做,因为我有三个数据子集,并且我需要在每个子集上训练一个分类器。所以我基本上做的是创建三个RandomForestClassifier 分类器并在子集上训练每个分类器。然后给定一个测试集,我执行以下操作来找到 ROC AUC:
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 曲线,但我不知道该怎么做。请问这个问题怎么解决?
【问题讨论】:
标签: python scikit-learn