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

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

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

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

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

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

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

相关推荐
猎头南楼1 天前
知识社区推荐系统实践:新用户冷启动与长短期兴趣建模的挑战 资深推荐算法工程师
人工智能·深度学习·算法·机器学习
高洁011 天前
未来三年,AI 落地的五个确定性判断一
人工智能·深度学习·机器学习·transformer·知识图谱
Omics Pro1 天前
斯坦福Nature+Science|广义虚拟细胞基础大模型
数据库·人工智能·算法·机器学习·自然语言处理
翰佰尔生物HiOmics云分析1 天前
老年COVID-19重症化风险预测机器学习在线工具技术解析
机器学习·开发·预测·covid-19
一只废狗狗狗狗狗狗狗狗狗1 天前
机器学习:分类问题及损失函数优化
机器学习
workflower1 天前
SSH(Struts+Spring+Hibernate)
人工智能·机器学习·机器人·云计算·无人机
陈年老古董1 天前
微博情感分析项目学习笔记
笔记·python·学习·机器学习·项目
isfox1 天前
为什么说线性模型是深度学习的基石?从 Scikit-Learn 谈起
机器学习
别动我齐刘海1 天前
ROS2 Jazzy + C++ 实战路线——ros2_control
c++·人工智能·python·opencv·机器学习·机器人·github
明志数科1 天前
机器人数据采集过程中五类异常片段的判定与处理
机器学习·机器人