用随机森林计算 ROC AUC
Posted
技术标签:
【中文标题】用随机森林计算 ROC AUC【英文标题】:computing ROC AUC with random forest 【发布时间】: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
我该如何解决这个问题?
【问题讨论】:
【参考方案1】:如果您对 ROC AUC 感兴趣,pred
需要是概率,而不是预测标签。在您的情况下,这是一个多类分类问题,因此pred
需要是形状为(n_samples, n_classes)
的矩阵。要获得它,您只需要使用predict_proba
而不是predict
:
pred = rf.predict_proba(test_X)
【讨论】:
以上是关于用随机森林计算 ROC AUC的主要内容,如果未能解决你的问题,请参考以下文章
R语言基于h2o包构建二分类模型:使用h2o.randomForest构建随机森林模型使用h2o.auc计算模型的AUC值