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

如何在sklearn中获取RandomForestRegressor随机森林的训练偏差

sklearn RandomForestRegressor训练偏差计算方案

不需要重写任何相关函数,可直接通过sklearn原生接口实现
你要计算训练偏差的核心是获取模型在训练数据集上的预测结果,和训练集真实标签做误差计算即可,具体操作步骤如下:

  • 训练模型时留存好用来拟合的训练特征矩阵X_train和对应的训练真实标签y_train
  • 完成fit()训练后,直接调用训练好的模型的predict()方法,传入X_train得到训练集预测结果
  • 用训练集真实标签和训练集预测结果,按照你需要的偏差指标(MSE、MAE、RMSE等)计算得到训练偏差

参考实现代码如下:

from sklearn.ensemble import RandomForestRegressor
from sklearn.metrics import mean_squared_error
from sklearn.model_selection import train_test_split
import numpy as np

# 示例数据生成,可替换为你自己的数据集
X = np.random.rand(1000, 5)
y = np.random.rand(1000)

# 拆分训练集、测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# 初始化并训练模型
rf_reg = RandomForestRegressor(n_estimators=100, random_state=42)
rf_reg.fit(X_train, y_train)

# 计算训练偏差(此处以均方误差MSE为例,可替换为你需要的偏差指标)
y_train_pred = rf_reg.predict(X_train)
train_bias = mean_squared_error(y_train, y_train_pred)

# 计算测试偏差
y_test_pred = rf_reg.predict(X_test)
test_bias = mean_squared_error(y_test, y_test_pred)

print(f"训练偏差(MSE): {train_bias:.4f}")
print(f"测试偏差(MSE): {test_bias:.4f}")

补充说明:sklearn所有有监督学习模型的fit()方法都只会返回模型本身,用来支持链式调用,预测操作统一通过predict()方法实现,不管是训练集还是测试集的预测结果,都通过该方法传入对应特征矩阵获取即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 21:39:01