system: [SYSTEM]

user: 3. 实例分析 锦屏一级水电站水库位于四川省雅砻江流域，是雅砻江干流下游河段的龙头水库，库容约77.6 × 10 8 m 3 ，水库主要用于发电，兼蓄水、拦沙和防洪。同时，由于该水库是下游河段的控制性水库，对下游其他水库具有显著的补偿效益。因此，准确预报该水电站水库月平均径流量，有利于指导该地区水资源综合开发利用、科学管理和优化调度。 3.1. 单一算法结果对比分析 本文选取锦屏一级1990~2012年共计23年的月径流数据，选取的预报因子为降水量、月平均气温、月平均水汽压、月平均相对湿度、前一年月径流值以及多年平均月径流值，其中月尺度气象数据可从中国气象数据网站上直接获取。以1990年1月~2011年12月共264个月的资料作为训练集进行建模，并以2012年1月~2012年12月共计12个月的资料作为验证集进行验证。分别用RF、ET、GBRT、XGBoost四种算法作为回归模型进行预测，并通过网格搜索对各个模型进行调参得到最佳预测效果。训练集各单一模型的拟合值与实测值的对比结果如图4所示。 图4. 训练集RF、ET、GBRT、XGBoost拟合值与实测值对比结果图 训练集各模型的R 2 分别为：XGBoost (0.9874)、ET (0.9851)、GBRT (0.9812)、RF (0.9726)。同时，由上图可以看出在训练集中，各模型拟合结果与实测值总体比较接近，且各模型之间相差不大，说明在训练集中各个模型中都能很好的拟合出实际径流值。各个模型的预测结果和实际值的对比结果如表1所示。 由表1可得，合格次数从高到低的排序分别是XGBoost (9次)、GBRT (8次)、ET (8次)、RF (6次)；优秀次数从高到底的排序分别是XGBoost (3次)、GBRT (3次)、ET (2次)、RF (2次)。各单模型预测结果与实测值对比如图5所示。 Table 1 Comparison results of RF， ET， GBRT， XGBoost and measured value 月份 实测值(m 3 /s) RF月径流预测模型 ET月径流模型 GBRT月径流模型 XGBoost月径流模型 预测值(m 3 /s) 相对误差 预测值(m 3 /s) 相对误差 预测值(m 3 /s) 相对误差 预测值(m 3 /s) 相对误差 1 261 357 36.8 313 19.9 351 34.5 292 11.9 2 233 221 −5.2 273 17.2 269 15.5 258 10.7 3 250 334 33.6 397 58.8 297 18.8 287 14.8 4 401 460 14.7 479 19.5 457 14.0 447 11.5 5 664 654 −1.5 599 −9.8 626 −5.7 542 −18.4 6 1822 2296 26.0 2071 13.7 2085 14.4 1931 6.0 7 4558 3221 −29.3 3428 −24.8 3378 −25.9 3521 −22.8 8 2284 2708 18.6 1858 −18.7 1901 −16.8 1771 −22.5 9 2692 3080 14.4 3421 27.1 2763 2.6 2501 −7.1 10 1838 1130 −38.5 1492 −18.8 1267 −31.1 1357 −26.2 11 800 654 −18.3 728 −9.0 829 3.6 727 −9.1 12 390 531 36.2 523 34.1 490 25.6 458 17.4 表1. RF、ET、GBRT、XGBoost与实测值对比结果 图5. RF、ET、GBRT、XGBoost预测值与实测值对比结果图 各个模型的预测结果回归指标、优秀率以及合格率如表2所示。 Table 2 RF， ET， GBRT， XGBoost evaluation index result 模型 RF ET GBRT XGBoost MSE 242085 185886 163864 137347 R 2 0.8064 0.8507 0.8435 0.8696 合格率 0.5 0.67 0.67 0.75 优秀率 0.17 0.17 0.25 0.25 表2. RF、ET、GBRT、XGBoost评价指标结果 从上图可以看出各个模型与实测结果的总体拟合结果都比较好，但是不同的模型结果还是有些差距的。在非汛期各个模型与的拟合结果与实测值都很接近，但是在汛期误差则相对比较大。通过上表可以得到RF的均方误差最大，并且R 2 、合格率以及优秀率都最小，综合四个模型，其效果最差。GBRT和ET总体比较接近，却各有优劣，GBRT的MSE和优秀率均优于ET，但是其R 2 差于ET。XGBoost各项指标在四个模型中均为最优，因此，在单一算法的结果中XGBoost的预测结果最好。 3.2. 集成算法结果对比分析 由于单一模型的计算结果中，RF的计算结果相较于剩下三个模型来说，精度偏低，所以在Stacking结合策略集成学习模型中，选用GBRT、XGBoost和ET作为初级学习器，Logistic回归作为次学习器，采用5折交叉验证对初级学习器的结果进行Stacking集成。 以GBRT为例，首先把整个数据集分为训练集和测试集两部分，然后把训练集分成5份，先拿出其中4份作为训练集另外1份作为测试集，在第一次交叉验证后会得到一个关于这一份测试集的预测值TrainP1，然后对原来整个数据集的预测值TestP1。5折交叉验证，即将上述过程进行5次，得到针对Training Data数据预测5列数据TrainP1，TrainP2，TrainP3，TrainP4，TrainP5以及对Testing Data数据预测的5列数据TestP1，TestP2，TestP3，TestP4，TestP5。此时得到的新特征1就是由TrainP1，TrainP2，TrainP3，TrainP4，TrainP5拼凑而成，而新特征1对应的TestP即为estP1，TestP2，TestP3，TestP4，TestP5的平均值，这就是Stacking的一个完整的流程。接着再对ET和XGBoost这两个模型重复以上步骤即可得到新特征2和新特征3以及对应的TestP。最后将得到的新特征以及对应的预测值进入到下一层模型采用Logistic进行进一步训练得到最终的结果。其过程如图6所示。 图6. 5折交叉验证示意图 训练集中XGBoost和Stacking集成的拟合结果与实测值对比如图7所示。 图7. 训练集XGBoost、Stacking集成拟合值与实测值对比结果图 训练集Stacking集成的R 2 为0.9941，相较于XGBoost有所提升，说明Stacking集成在训练集中与实测值更为接近，其拟合效果最好。将Stacking集成算法和单一模型结果最好的XGBoost与实测值的拟合结果如图8所。 图8. XGBoost、Stacking集成预测值与实测值对比结果图 Stacking集成MSE、R 2 、合格率以及优秀率与XGBoost的对比结果如表3所示。 Table 3 Stacking integration and XGBoost evaluation index result MSE R 2 合格率 优秀率 Stacking集成 129751 0.8934 0.83 0.25 XGBoost 137347 0.8696 0.75 0.25 表3. Stacking集成与XGBoost评价指标结果 从上图可以看出，Stacking集成和XGBoost总体上与实测值更为接近。从上表的对比结果中可得Stacking集成除了优秀率效果没有发生变化外，其他三个指标都有正向提升，其中：MSE下降了5.854%、R 2 提升了2.737%、合格率提升了10.667%。从Stacking集成和XGBoost的对比结果中，进一步得到：Stacking集成相对于各单一机器学习模型而言，根据相关评价指标，可认为其预报效果最好。由此可见，相对于单一算法，Stacking集成对中长期径流预报结果更符合实际。