记录xgboost等基于决策树的集成模型存在的问题

最近做基于辐照度的光伏预测,在数据量很少的情况下,采用xgboost遇到一个问题,就是预测值在正午时分全部是一样的,经过多轮测试及与豆包对话找到了原因。

豆包解释:XGBoost 的预测特性:XGBoost 对于超出训练数据分布的特征值,预测结果会趋于一个固定值(你的情况就是 0.07105778),这是模型的泛化特性导致的。

XGBoost(以及所有基于决策树的集成模型,如随机森林、LightGBM)之所以会出现 "遇到超出训练范围的特征值时,预测值趋于常数" 的现象,是因为决策树是基于 "轴平行" 的分裂(Axis-Aligned Splitting)

简单来说,树模型在训练数据的最大值(例如 GHI=1.0)之后,就没有继续分裂的规则了,它不知道 1.0 之后的趋势是上升、下降还是保持不变,因此只能输出该叶子节点上训练数据的平均值。

当然和豆包说的不完全一致,因为我的ghi归一化后确定没有超过1.0,所以我怀疑主要原因是数据量太少(10天左右),加上ghi和光伏数据归一化后范围比较小(荷兰冬季辐照度最高只有200多,发电效率只有20~30%),综合导致这种问题。

换成线性模型后不再出现这种问题。

相关推荐
拾年2756 小时前
大模型的"聪明"从哪来?聊聊 AI 数据集的那些事儿
人工智能·深度学习·机器学习
罗西的思考1 天前
机器人 / 强化学习】HIL-SERL:人类在环驱动的具身智能进化框架
人工智能·算法·机器学习
ShallWeL1 天前
【机器学习】(3)—— 线性回归:梯度下降
人工智能·机器学习
ShallWeL1 天前
【机器学习】(2)—— 线性回归:损失函数
人工智能·机器学习
Lihua奏4 天前
# 机器学习:机器是怎么从数据里学出规则的
机器学习
饼干哥哥4 天前
用AI全自动剪辑,日更 100条爆款视频——HyperFrames、Remotion、Git使用入门
人工智能·机器学习·ai编程