sklearn random forest prediction threshold

在 Scikit-learn 中使用随机森林(Random Forest)进行预测时,默认的二分类阈值为 0.5,即当分类概率大于等于 0.5 时判定为正类,小于 0.5 则判定为负类。

如果您想改变默认的分类阈值,可以使用 predict_proba 方法获取分类概率,然后根据需要自己设置分类阈值。

具体来说, predict_proba 方法会返回每个类别的预测概率,例如在二分类问题中,它会返回两列概率值,第一列为负类概率,第二列为正类概率。您可以根据需要选择一个概率作为分类阈值。

下面是一个示例代码,其中 X 表示测试数据, rf 是一个已经训练好的随机森林模型:

probs = rf.predict_proba(X)
threshold = 0.6 # 设定分类阈值为 0.6
predictions = (probs[:, 1] > threshold).astype(int) # 取正类概率,与阈值比较得到预测结果

在上面的示例中,我们将分类阈值设定为 0.6,然后根据正类概率是否大于阈值,将预测结果转换为 0 或 1。

需要注意的是,改变分类阈值可能会对模型的预测结果产生影响,因此需要在测试集上进行评估,以选择最优的分类阈值。

  •