建立人工装袋分类后绘制ROC曲线

2024-06-16 13:13:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用scikit learn手动构建一个bagging分类器。我需要这样做,因为我有三个子集的数据,我需要在每一个子集上训练一个分类器。所以我基本上是创建三个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。所以基本上,我在每次折叠后使用如下列表跟踪fprtpr和{}:

^{pr2}$

问题是每次折叠后fpr和{}是不同长度的数组,所以我不能简单地求和并除以3来绘制ROC曲线。我想画ROC曲线,但我不知道怎么画。请问我该怎么解决这个问题?在


Tags: test分类器predict曲线子集rocestimatorsproba
2条回答

基本上,在计算roc_auc之前,您需要合并交叉验证折叠的结果,然后计算所有。如果你在做一个leave-one-out交叉验证,这就是你必须要做的,但是你可以在这里做一个类似的模式。在

Here详细解释。在

相关问题 更多 >