【问题标题】:computing ROC AUC with random forest用随机森林计算 ROC AUC
【发布时间】:2021-06-12 19:12:54
【问题描述】:

我在多类问题中使用随机森林分类器。

rf = RandomForestClassifier(()
rf.fit(train_X, train_y)

然后进行预测:

pred = rf.predict(test_X)

那么我想像这样计算roc_auc_score:

roc_value = roc_auc_score(test_y, pred, average='weighted', 
    multi_class='ovr',labels=[0,1,2,3,4])

但这会报错:

numpy.AxisError: axis 1 is out of bounds for array of dimension 1

我该如何解决这个问题?

【问题讨论】:

    标签: scikit-learn random-forest roc auc


    【解决方案1】:

    如果您对 ROC AUC 感兴趣,pred 需要是概率,而不是预测标签。在您的情况下,这是一个多类分类问题,因此pred 需要是形状为(n_samples, n_classes) 的矩阵。要获得它,您只需要使用predict_proba 而不是predict:

    pred = rf.predict_proba(test_X)
    

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 2021-04-26
      • 2019-12-29
      • 2016-02-21
      • 2018-11-03
      • 2019-11-08
      • 2012-09-04
      • 2018-07-31
      • 2017-02-20
      相关资源
      最近更新 更多