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

决策树回归效果优于随机森林?原因及性能优化问询

随机森林回归性能不如决策树的原因及优化方案

问题背景

我有一个包含11800行、约50列的数据集,分别用决策树回归和随机森林回归建模,并且为两个模型添加了样本权重以处理右删失问题。

决策树建模流程

  1. 变量重要性分析代码:
# 变量重要性分析
reg= DecisionTreeRegressor()
reg.fit(X_train,y_train)
predictors=list(X_train)
reg.feature_importances_
import pandas as pd
from matplotlib import pyplot as plt
feat_imp = pd.Series(reg.feature_importances_, predictors).sort_values(ascending=False)
feat_imp.plot(kind='bar', title='变量重要性')
plt.show()

对应的变量重要性柱状图:
变量重要性

  1. 网格搜索调参:
grid=GridSearchCV(reg,param_grid=param_dict,cv=10,verbose=1,n_jobs=-1)
grid.fit(X_train,y_train,sample_weight=Vect_Poids)
  1. 使用最优参数训练模型:
reg= DecisionTreeRegressor(criterion='friedman_mse', max_depth=17, min_samples_leaf=1, min_samples_split=16, splitter='random',random_state = random.seed(1234))
reg.fit(X_train,y_train,sample_weight=Vect_Poids)
  1. 结果评估:
print('R2 score for REF',r2_score(y_test,y_pred))
print('Root Mean Square error REF',sqrt(mean_squared_error(y_test,y_pred)))

决策树的R²约为0.58,预测值与测试值的差异图:
决策树预测值与测试值差异

随机森林建模结果

使用与决策树相同的流程训练随机森林,但其R²仅为0.30,预测值与测试值偏差较大:
随机森林预测值与测试值偏差

可能的原因

  1. 参数适配问题:你给决策树做了针对性的网格搜索调参,但随机森林的核心参数(如n_estimators、max_features)和决策树完全不同,若直接沿用决策树的参数逻辑或用默认参数,必然无法发挥其集成优势。
  2. 样本权重传递问题:随机森林在网格搜索时,若未将sample_weight=Vect_Poids传入fit方法,会导致调参过程忽略权重,最终得到的最优参数不适合带权重的数据集。
  3. 数据集特性影响:从变量重要性图看,数据存在占比极高的强特征,单棵决策树能精准捕捉这类特征的模式;但随机森林的特征采样机制(默认随机选部分特征)可能稀释强特征的作用,导致单棵树性能拉胯,集成后效果反而不如单树。
  4. 模型复杂度失衡:若随机森林的n_estimators太小,集成效果不足;或max_depth设置过大导致单树过拟合,集成后反而放大误差;反之,参数过于保守也会导致欠拟合。

优化建议

  • 针对性调参随机森林:重点调整这些核心参数,重新做网格搜索:
    • n_estimators:测试50、100、200、300、500的取值
    • max_depth:尝试5-20的范围,或设为None同时限制min_samples_leaf(如2-10)
    • max_features:测试"sqrt"、"log2"或0.3-0.7的比例(若强特征重要性高,可适当调大该值)
    • 注意网格搜索时必须把sample_weight=Vect_Poids传入fit方法,和决策树保持一致
  • 验证权重传递正确性:确认随机森林的fit方法以及网格搜索过程中,样本权重都被正确传递,避免调参和训练阶段的权重不一致。
  • 调整集成随机性:增大n_estimators提升集成稳定性;若强特征占比高,可调大max_features,让更多核心特征被单棵树用到,减少随机采样的负面影响。
  • 尝试变体集成模型:比如ExtraTreesRegressor,它的随机性更强(随机选择分割点),有时能在强特征场景下取得更好效果;也可尝试关闭bootstrap参数(设为False)做对比。
  • 强化特征信号:针对变量重要性高的特征,尝试特征组合、分箱或转换,放大其有效信号,帮助模型更好捕捉规律。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 01:54:24