【问题标题】:Drawing ROC curve after building a manual bagging classifier构建手动 bagging 分类器后绘制 ROC 曲线
【发布时间】: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。所以基本上我在每次折叠后使用这样的列表跟踪fprtprroc_auc

folds_auc.append(roc_auc)
folds_fpr.append(fpr)
folds_tpr.append(tpr)

问题是每次折叠后fprtpr 都是不同长度的数组,所以我不能将它们相加并除以3 来绘制ROC 曲线。我想绘制 ROC 曲线,但我不知道该怎么做。请问这个问题怎么解决?

【问题讨论】:

    标签: python scikit-learn


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      基本上你需要在计算roc_auc之前结合交叉验证折叠的结果,然后计算所有的性能。如果您要进行遗漏交叉验证,这就是您必须做的事情,但您可以在此处执行类似的架构。

      Here解释的比较详细。

      【讨论】:

        猜你喜欢
        • 2018-12-19
        • 2019-07-06
        • 2021-03-03
        • 1970-01-01
        • 2016-02-04
        • 2018-12-24
        • 2019-02-27
        • 2013-11-27
        • 2022-01-13
        相关资源
        最近更新 更多