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

Sklearn随机森林分类器:如何获取每行预测值及对应预测分数

获取随机森林分类器每行的预测分数方法

当然有可行的方法啦!在主流机器学习框架里,随机森林分类器都提供了直接获取**每行样本对应类别预测分数(概率值)**的API,这里以最常用的scikit-learn为例给你详细说明:

核心方法说明

随机森林分类器的预测分数,本质是模型对每个样本属于各个类别的概率估计。scikit-learn的RandomForestClassifier提供了两个关键方法:

  • predict_proba():返回每个样本属于每个类别的概率值,结果形状为(样本数量, 类别数量),每行的概率之和为1。
  • predict_log_proba():返回概率的对数形式,适合处理极小概率的数值稳定性问题。

代码示例

from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split

# 加载示例数据并拆分训练/测试集
X, y = load_iris(return_X_y=True)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 训练随机森林分类器
rf_clf = RandomForestClassifier(n_estimators=100, random_state=42)
rf_clf.fit(X_train, y_train)

# 获取每行样本的类别概率(预测分数)
prediction_probs = rf_clf.predict_proba(X_test)
# 获取每行样本的对数概率
prediction_log_probs = rf_clf.predict_log_proba(X_test)

# 查看第一个测试样本的概率分布
print("第一个测试样本的各类别概率:", prediction_probs[0])
# 查看类别对应关系(确保知道每个概率对应的类别)
print("分类器的类别顺序:", rf_clf.classes_)

# 如果是二分类任务,你可能只需要正类的概率,直接取第二列即可
# positive_class_probs = prediction_probs[:, 1]

额外提示

  • 多分类场景下,predict_proba()返回的每行概率顺序和rf_clf.classes_完全对应,所以可以通过这个属性明确每个概率对应的类别。
  • 这些预测分数可以用来做很多后续分析:比如调整分类阈值(二分类中平衡精确率和召回率)、评估模型校准度、生成ROC曲线等。
  • 如果你用的是其他框架(比如XGBoost、LightGBM),它们的分类器也提供了同名的predict_proba()方法,用法基本一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:22:44