You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Scikit-learn随机森林二分类模型设置0.4分类阈值

如何为Scikit-learn随机森林模型设置自定义分类阈值?

嘿,这问题我之前调模型时也碰到过!Scikit-learn的predict()方法默认用0.5作为二分类的阈值,要改成你想要的0.4,得换个思路——用predict_proba()获取样本的类别概率,再手动根据阈值生成预测标签。

给你修改好的完整代码,每一步我都标清楚了:

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score

# 初始化并训练随机森林模型
random_forest = RandomForestClassifier(n_estimators=100, oob_score=True, random_state=12)
random_forest.fit(X_train, y_train)

# 获取测试样本属于类1的概率(predict_proba返回[n_samples, 2],第二列是类1的概率)
y_proba = random_forest.predict_proba(X_test)[:, 1]

# 根据自定义阈值0.4生成预测标签:>=0.4标记为1,否则为0
predicted = (y_proba >= 0.4).astype(int)

# 计算准确率
accuracy = accuracy_score(y_test, predicted)
print(f"自定义阈值下的准确率:{accuracy}")

关键细节说明:

  • predict_proba(X_test)返回的是二维数组,每一行对应一个样本,第一列是样本属于类0的概率,第二列是属于类1的概率。如果你不确定类别顺序,可以用random_forest.classes_查看模型的类别映射,确保自己取对了列。
  • (y_proba >= 0.4)会生成布尔数组,用.astype(int)能把True转成1、False转成0,刚好匹配我们需要的标签格式。

这样就能精准按照你想要的0.4阈值完成分类啦!

内容的提问来源于stack exchange,提问作者BigData

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:28:23