留言板

尊敬的读者、作者、审稿人, 关于本刊的投稿、审稿、编辑和出版的任何问题, 您可以本页添加留言。我们将尽快给您答复。谢谢您的支持!

姓名
邮箱
手机号码
标题
留言内容
验证码

基于Prophet与XGBoost混合模型的短期负荷预测

朱江行 邹晓松 熊炜 袁旭峰 艾小清 彭月

朱江行, 邹晓松, 熊炜, 袁旭峰, 艾小清, 彭月. 基于Prophet与XGBoost混合模型的短期负荷预测[J]. 现代电力, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
引用本文: 朱江行, 邹晓松, 熊炜, 袁旭峰, 艾小清, 彭月. 基于Prophet与XGBoost混合模型的短期负荷预测[J]. 现代电力, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
Jianghang Zhu, Xiaosong Zou, Wei Xiong, Xufeng Yuan, Xiaoqing Ai, Yue Peng. Short-Term Power Load Forecasting Based onProphet and XGBoost Mixed Model[J]. Modern Electric Power, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
Citation: Jianghang Zhu, Xiaosong Zou, Wei Xiong, Xufeng Yuan, Xiaoqing Ai, Yue Peng. Short-Term Power Load Forecasting Based onProphet and XGBoost Mixed Model[J]. Modern Electric Power, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321

基于Prophet与XGBoost混合模型的短期负荷预测

doi: 10.19725/j.cnki.1007-2322.2020.0321
基金项目: 国家自然科学基金资助项目(51667007);贵州省科学技术基金项目([2019]1058)
详细信息
    作者简介:

    朱江行(1995),男,硕士研究生,通信作者,研究方向:配网供电可靠性。Email:479722911@qq.com

    邹晓松(1965),男,博士,教授,研究方向:电力系统运行与控制,E-mail: 734279482@qq.com

    熊炜(1972),女,硕士,副教授,研究方向:配电网经济运行,E-mail: 420034562@qq.com

    袁旭峰(1976),男,博士,教授,研究方向:电力系统运行与控制,E-mail: 17015676@qq.com

    艾小清(1995),男,硕士研究生,研究方向:多端柔性直流配电网可靠性,E-mail: 1073399424@qq.com

    彭月(1992),女,硕士研究生,研究方向:配电网运行与控制,规划与可靠性研究,E-mail: 645861746@qq.com

  • 中图分类号: TM715

Short-Term Power Load Forecasting Based onProphet and XGBoost Mixed Model

Funds: Project supported by National Natural Science Foundation of China (51667007);Science and Technology Foundation of Guizhou Province ([2019]1058)
  • 摘要: 准确有效的预测电力负荷对电网的安全稳定运行具有重要的参考价值。通过对Prophet框架和XGBboost (eXtreme gradient boosting)机器学习模型的深度分析,提出了基于Prophet与XGBoost的混合电力负荷预测模型,针对大量的历史电负荷数据、日期信息、气象数据,分别构建Prophet电力负荷预测模型和XGBboost机器学习预测模型,通过误差倒数法将Prophet和XGBoost结合得到混合预测模型。应用所提方法对西南地区某地市历史电负荷数据进行验证,结果证明,Prophet-XGBoost混合模型比支持向量机回归模型(SVR, support vector regression)、Prophet模型和XGBoost模型拥有更高的预测精度,且与SVR模型相比运行时间更短。
  • 图  1  Prophet-XGBoost混合模型预测流程

    Figure  1.  Forecasting flow chart of Prophet-XGBoost hybrid model

    图  2  组成成分分析

    Figure  2.  Component analysis

    图  3  各模型预测曲线对比图

    Figure  3.  Comparison of forecasting curves by various models

    图  4  各模型平均相对误差对比

    Figure  4.  Comparison of mean relative error by various models

    表  1  节假日特征表

    Table  1.   Holidays feature list

    节假日日期
    元旦节2013-01-012014-01-012015-01-01
    春节2013-02-102014-01-312015-02-19
    清明节2013-04-042014-04-052015-04-05
    劳动节2013-05-012014-05-012015-05-01
    端午节2013-06/122014-06-022015-06-20
    中秋节2013-09-192014-09-082015-09-27
    国庆节2013-10-012014-10-012015-10-01
    下载: 导出CSV

    表  2  参数初始化值及范围

    Table  2.   Initialization value and range of parameters

    参数名初始化值范围
    n_estimators 迭代次数 800 500~1500
    Gamma 函数00~0.2
    Subsample 下采样0.80.5~0.9
    colsample_bytree 列占比0.80.5~0.9
    learning_rate 学习率0.10.01~0.3
    下载: 导出CSV

    表  3  Prophet模型各参数最优值

    Table  3.   Optimal values of parameters in Prophet model

    参数名最优值
    转折点数量3
    季节拟合度10
    假期拟合度10
    下载: 导出CSV

    表  4  XGBoost模型各参数最优值

    Table  4.   Optimal values of parameters in XGBoost model

    参数名最优值
    n_estimators 迭代次数740
    Gamma 函数0
    Subsample 下采样0.7
    colsample_bytree 列占比0.7
    learning_rate 学习率0.08
    下载: 导出CSV

    表  5  MAPE、ME和RMSE

    Table  5.   MAPE、ME and RMSE

    模型MAPE/%ME/MWRMSE/MW
    SVR0.0955.3472.312
    Prophet0.0834.2032.050
    XGBoost0.0613.2091.792
    Prophet-XGBoost0.0532.6431.625
    下载: 导出CSV
  • [1] 肖白, 周潮, 穆钢. 空间电力负荷预测方法综述与展望[J]. 中国电机工程学报, 2013, 33(25): 78−92 + 14.

    Xiao Bai, Zhou Chao, Mu Gang. Overview and Prospect of Space Electric Load Forecasting Methods[J]. Chinese Journal of Electrical Engineering, 2013, 33(25): 78−92 + 14(in Chinese).
    [2] 贾逸伦, 龚庆武, 李俊雄, 等. 基于CEEMDAN与量子粒子支持向量机的电力负荷组合预测[J]. 电测与仪表, 2017, 54 (01): 16−21. doi:  10.3969/j.issn.1001-1390.2017.01.003

    Jia Yilun, Gong Qingwu, Li Junxiong, et al. Combined power load forecasting based on CEEMDAN and quantum particle support vector machine[J]. Electric Measurement and Instrumentation, 2017, 54 (01): 16−21(in Chinese). doi:  10.3969/j.issn.1001-1390.2017.01.003
    [3] Hong T, Fan S. Probabilistic electric load forecasting: A tutorial review[J]. International Journal of Forecasting, 2016, 32(3): 914−938. doi:  10.1016/j.ijforecast.2015.11.011
    [4] 吴润泽, 包正睿, 宋雪莹, 等. 基于深度学习的电网短期负荷预测方法研究[J]. 现代电力, 2018, 35(02): 43−48. doi:  10.3969/j.issn.1007-2322.2018.02.007

    Wu Runze, Bao Zhengrui, Song Xueying, et al. Research on short-term load forecasting methods of power grid based on deep learning[J]. Modern Electric Power, 2018, 35(02): 43−48(in Chinese). doi:  10.3969/j.issn.1007-2322.2018.02.007
    [5] Ji, Peirong, Xiong, Di, Wang, Peng, et al. A study on exponential smoothing model for load forecasting[C]// Asia-pacific Power & Energy Engineering Conference. IEEE, 2012: 2884-2887.
    [6] 陈毅波, 郑玲, 姚建刚. 基于粗糙集理论与D-S证据理论改进的多元回归负荷预测方法研究[J]. 电力系统保护与控制, 2016, 44 (06): 62−67.

    Chen Yibo, Zheng Ling, Yao Jiangang. Research on multiple regression load forecasting method based on rough set theory and D-S evidence theory[J]. Power System Protection and Control, 2016, 44 (06): 62−67(in Chinese).
    [7] 艾欣, 周志宇, 魏妍萍, 等. 基于自回归积分滑动平均模型的可转移负荷竞价策略[J]. 电力系统自动化, 2017, 41 (20): 26−31 + 104. doi:  10.7500/AEPS20170119009

    Ai Xin, Zhou Zhiyu, Wei Yanping, et al. Bidding strategy of transferable load based on autoregressive integral moving average model[J]. Power System Automation, 2017, 41 (20): 26−31 + 104(in Chinese). doi:  10.7500/AEPS20170119009
    [8] 王雁凌, 马洪宇, 成一平, 等. 基于支持向量回归和K均值聚类的降温负荷组合测算模型[J]. 现代电力, 2019, 36(03): 51−57. doi:  10.3969/j.issn.1007-2322.2019.03.008

    Wang Yanling, Ma Hongyu, Cheng Yiping, et al. Combination calculation model of cooling load based on support vector regression and K-means clustering[J]. Modern Electric Power, 2019, 36(03): 51−57(in Chinese). doi:  10.3969/j.issn.1007-2322.2019.03.008
    [9] 蒋敏, 顾东健, 孔军, 等. 基于在线序列极限支持向量回归的短期负荷预测模型[J]. 电网技术, 2018, 42 (07): 2240−2247.

    Jiang Min, Gu Dongjian, Kong Jun, et al. Short-term load forecasting model based on online sequential limit support vector regression[J]. Grid Technology, 2018, 42 (07): 2240−2247(in Chinese).
    [10] 黄青平, 李玉娇, 刘松, 等. 基于模糊聚类与随机森林的短期负荷预测[J]. 电测与仪表, 2017, 54 (23): 41−46. doi:  10.3969/j.issn.1001-1390.2017.23.007

    Huang Qingping, Li Yujiao, Liu Song, et al. Short-term load forecasting based on fuzzy clustering and random forest[J]. Electric Measurement and Instrumentation, 2017, 54 (23): 41−46(in Chinese). doi:  10.3969/j.issn.1001-1390.2017.23.007
    [11] 魏立兵, 赵峰, 王思华. 基于人群搜索算法优化参数的支持向量机短期电力负荷预测[J]. 电测与仪表, 2016, 53(8): 45−49+74. doi:  10.3969/j.issn.1001-1390.2016.08.008

    Wei Libing, Zhao Feng, Wang Sihua. Short-term power load forecasting of support vector machines based on crowd search algorithm optimization parameters[J]. Electric Measurement and Instrumentation, 2016, 53(8): 45−49+74(in Chinese). doi:  10.3969/j.issn.1001-1390.2016.08.008
    [12] 徐晴, 周超, 赵双双, 等. 基于机器学习的短期电力负荷预测方法研究[J]. 电测与仪表, 2019, 56 (23): 70−75.

    Xu Qing, Zhou Chao, Zhao Shuangshuang, et al. Research on short-term power load forecasting method based on machine learning[J]. Electric Measurement and Instrumentation, 2019, 56 (23): 70−75(in Chinese).
    [13] 何晔, 邹晓松, 李卓, 等. 一种面向运行可靠性的短期负荷预测方法研究[J]. 电测与仪表, 2019, 56(10): 93−98.

    He Ye, Zou Xiaosong, Li Zhuo, et al. Research on a short-term load forecasting method for operational reliability[J]. Electrical Measurement and Instrumentation, 2019, 56(10): 93−98(in Chinese).
    [14] 陆继翔, 张琪培, 杨志宏, 等. 基于CNN-LSTM混合神经网络模型的短期负荷预测方法[J]. 电力系统自动化, 2019, 43 (08): 131−137.

    Lu Jixiang, Zhang Qipei, Yang Zhihong, et al. Short-term load forecasting method based on CNN-LSTM hybrid neural network model[J]. Power System Automation, 2019, 43 (08): 131−137(in Chinese).
    [15] 陈振宇, 刘金波, 李晨, 等. 基于LSTM与XGBoost组合模型的超短期电力负荷预测[J]. 电网技术, 2020, 44)(02): 614−620.

    Chen Zhenyu, Liu Jinbo, Li Chen et al. Ultra-short-term power load forecasting based on the combined model of LSTM and XGBoost[J]. Power System Technology, 2020, 44)(02): 614−620(in Chinese).
    [16] Taylor, Sean, J, et al. Forecasting at Scale[J]. American Statistician, 2018.
    [17] 陈剑强, 杨俊杰, 楼志斌. 基于XGBoost算法的新型短期负荷预测模型研究[J]. 电测与仪表, 2019, 56 (21): 23−29.

    Chen Jianqiang, Yang Junjie, Lou Zhibin. Research on a new short-term load forecasting model based on XGBoost algorithm[J]. Electric Measurement and Instrumentation, 2019, 56 (21): 23−29(in Chinese).
  • [1] 魏明奎, 叶葳, 沈靖, 周泓, 蔡绍荣, 王渝红, 沈力.  基于自组织特征神经网络和最小二乘支持向量机的短期电力负荷预测方法 . 现代电力, 2021, 38(1): 17-23. doi: 10.19725/j.cnki.1007-2322.2020.0201
    [2] 赵会茹, 张士营, 赵一航, 刘红雨, 邱宝红.  基于自适应噪声完备经验模态分解−样本熵−长短期记忆神经网络和核密度估计的短期电力负荷区间预测 . 现代电力, 2021, 38(2): 138-146. doi: 10.19725/j.cnki.1007-2322.2020.0329
    [3] 田剑刚, 张沛, 彭春华, 时珉, 王铁强, 尹瑞, 王一峰.  基于分时长短期记忆神经网络的光伏发电超短期功率预测 . 现代电力, 2020, 37(6): 629-637. doi: 10.19725/j.cnki.1007-2322.2019.1026
    [4] 赵冬梅, 马泰屹, 王闯.  基于相空间重构和长短期记忆算法的电力系统无功负荷预测模型 . 现代电力, 2020, 37(5): 470-477. doi: 10.19725/j.cnki.1007-2322.2020.0235
    [5] 龚钢军, 安晓楠, 陈志敏, 张帅, 文亚凤, 吴秋新, 苏畅.  基于SAE-ELM的电动汽车充电站负荷预测模型 . 现代电力, 2019, 36(6): 9-15.
    [6] 苏运, 卜凡鹏, 郭乃网, 田世明, 田英杰, 张琪祁, 瞿海妮, 柳劲松.  基于低秩表示的多任务短期电力负荷预测的研究 . 现代电力, 2019, 36(3): 58-65.
    [7] 吴润泽, 包正睿, 宋雪莹, 邓 伟.  基于深度学习的电网短期负荷预测方法研究 . 现代电力, 2018, 35(2): 43-48.
    [8] 杜佳豹, 辛业春.  模块化多电平换流器电容电压均衡混合预测控制 . 现代电力, 2017, 34(5): 38-43.
    [9] 张华彬, 杨明玉.  基于最小二乘支持向量机的光伏出力超短期预测 . 现代电力, 2015, 32(1): 70-75.
    [10] 杜翠, 徐晓波, 刘宗歧, 刘文霞.  气象数据弱相关的光伏出力短期预测 . 现代电力, 2015, 32(6): 1-6.
    [11] 刘青, 戚中译.  考虑空间运动特性的规模化电动汽车接入电网负荷预测模型 . 现代电力, 2015, 32(1): 76-82.
    [12] 王立国, 刘宝柱.  基于混合注入模型的光伏并网潮流计算研究 . 现代电力, 2014, 31(1): 45-51.
    [13] 曾鸣, 史慧.  混合动力汽车全寿命周期成本计算模型及分析 . 现代电力, 2014, 31(1): 40-44.
    [14] 杨再鹤, 向铁元, 郑丹.  基于小波变换和SVM算法的微电网短期负荷预测研究 . 现代电力, 2014, 31(3): 74-79.
    [15] 崔 勇, 王 川, 陈小龙, 范名贵.  基于灰色马尔科夫预测模型的中长期电力负荷预测 . 现代电力, 2011, 28(3): 38-41.
    [16] 马 杰, 韩民晓, 姚蜀军.  基于模型参数递推修正的电力负荷建模 . 现代电力, 2010, 27(2): 11-14.
    [17] 帅 丽, 马 进, 肖友强.  负荷模型对PSS参数整定的影响 . 现代电力, 2010, 27(2): 1-5.
    [18] 黄文杰, 傅 砾, 肖 盛, 郭世繁.  基于模糊层次分析法的风速短期预测组合模型 . 现代电力, 2010, 27(3): 49-53.
    [19] 褚 菲, 王福利, 顾大为, 王小刚, 马鸣太.  基于KPLS的燃气蒸汽联合循环变工况建模研究 . 现代电力, 2010, 27(6): 41-45.
    [20] 王林川, 白 波, 于奉振, 袁明哲.  基于QPSO参数优化的WLSSVM短期负荷预测 . 现代电力, 2010, 27(5): 49-52.
  • 加载中
图(4) / 表 (5)
计量
  • 文章访问数:  16
  • HTML全文浏览量:  4
  • PDF下载量:  9
  • 被引次数: 0
出版历程
  • 收稿日期:  2020-09-07
  • 刊出日期:  2021-06-03

基于Prophet与XGBoost混合模型的短期负荷预测

doi: 10.19725/j.cnki.1007-2322.2020.0321
    基金项目:  国家自然科学基金资助项目(51667007);贵州省科学技术基金项目([2019]1058)
    作者简介:

    朱江行(1995),男,硕士研究生,通信作者,研究方向:配网供电可靠性。Email:479722911@qq.com

    邹晓松(1965),男,博士,教授,研究方向:电力系统运行与控制,E-mail: 734279482@qq.com

    熊炜(1972),女,硕士,副教授,研究方向:配电网经济运行,E-mail: 420034562@qq.com

    袁旭峰(1976),男,博士,教授,研究方向:电力系统运行与控制,E-mail: 17015676@qq.com

    艾小清(1995),男,硕士研究生,研究方向:多端柔性直流配电网可靠性,E-mail: 1073399424@qq.com

    彭月(1992),女,硕士研究生,研究方向:配电网运行与控制,规划与可靠性研究,E-mail: 645861746@qq.com

  • 中图分类号: TM715

摘要: 准确有效的预测电力负荷对电网的安全稳定运行具有重要的参考价值。通过对Prophet框架和XGBboost (eXtreme gradient boosting)机器学习模型的深度分析,提出了基于Prophet与XGBoost的混合电力负荷预测模型,针对大量的历史电负荷数据、日期信息、气象数据,分别构建Prophet电力负荷预测模型和XGBboost机器学习预测模型,通过误差倒数法将Prophet和XGBoost结合得到混合预测模型。应用所提方法对西南地区某地市历史电负荷数据进行验证,结果证明,Prophet-XGBoost混合模型比支持向量机回归模型(SVR, support vector regression)、Prophet模型和XGBoost模型拥有更高的预测精度,且与SVR模型相比运行时间更短。

English Abstract

朱江行, 邹晓松, 熊炜, 袁旭峰, 艾小清, 彭月. 基于Prophet与XGBoost混合模型的短期负荷预测[J]. 现代电力, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
引用本文: 朱江行, 邹晓松, 熊炜, 袁旭峰, 艾小清, 彭月. 基于Prophet与XGBoost混合模型的短期负荷预测[J]. 现代电力, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
Jianghang Zhu, Xiaosong Zou, Wei Xiong, Xufeng Yuan, Xiaoqing Ai, Yue Peng. Short-Term Power Load Forecasting Based onProphet and XGBoost Mixed Model[J]. Modern Electric Power, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
Citation: Jianghang Zhu, Xiaosong Zou, Wei Xiong, Xufeng Yuan, Xiaoqing Ai, Yue Peng. Short-Term Power Load Forecasting Based onProphet and XGBoost Mixed Model[J]. Modern Electric Power, 2021, 38(3): 325-331. doi: 10.19725/j.cnki.1007-2322.2020.0321
    • 在我国高速经济发展中,电力负荷的预测已成为一项重要而艰巨的任务。通过可靠且高质量的负荷预测模型准确地预测电负荷及其变化趋势能够为电网制定调度策略、供电计划提供重要参考[1-2]

      电力系统信息化的发展,分布式电源的大量使用以及电动汽车的出现,增加了配电网中电力消耗的复杂性,对电负荷预测的准确性和稳定性提出了更高的要求。国内外众多学者已对电力负荷预测的理论和方法开展了大量的研究,针对用电负荷的预测,常用的方法主要包括时间序列分析法和机器学习分析法两类[3-4]:时间序列分析方法主要包含指数平滑模型法[5]、自回归方法[6]和累积自回归滑动平均(Auto regressive Integrated Moving Average model,ARIMA)方法[7]等,时间序列分析方法主要根据历史电负荷和现在电负荷预测未来电负荷,但其只考虑了数据的时间相关性因素,并没有考虑外界因素对预测对象的影响,故当有特殊时段时,其预测结果偏差可能较大;机器学习分析法主要包含专家系统法[8]、支持向量机(support vector regression,SVM)[9]、随机森林[10]和人工神经网络(Artificial Neural Network,ANN)[11]等。文献[12]提出了一种基于岭回归估计的径向基函数神经网络短期负荷预测方法,解决了输入多重共线性问题;文献[13]利用改进的PSO-RVM (Particle swarm optimization-Relevance Vector Machine)算法对各小波分量进行预测然后叠加得到最终预测值,为后期运行可靠性评估提供数据支撑,机器学习分析法能够考虑气象、时间及日期等多特征进行预测,提高预测精度。此外也有不少研究人员将多种单一模型进行结合得到混合模型;文献[14]针对负荷数据时序性和非线性的特点,通过卷积神经网络(Cellular Neural Network,CNN)构建多特征向量作为长短期记忆网络(Long Short-Term Memory,LSTM)的输入,将CNN与LSTM有效结合,进一步提高了预测精度;文献[15]采用误差倒数法将LSTM与XGBoost (Xtreme gradient boosting)结合,修正单一模型误差较大的时序数据,以降低单一预测模型误差。

      Prophet模型可将时间序列通过一定的函数变换为每小时、每日、每周、每季度及每年等不同时间维度的组合模式,并加以整体趋势[16],其主要考虑了时间相关性,对气象等因素考虑较少;XGBoost算法运行速度较快,并且通过人为对数据进行预处理,构建考虑气象,日期等多因素的特征向量,考虑了多因素影响[17]。兼顾Prophet和XGBoost各自独有的优点,本文提出一种基于Prophet-XGBoost混合模型的短期负荷预测方法,较单一模型预测精度更高,较SVR模型运行时间更短。

    • 2017-02-24,Facebook发布了时间序列预测框架Prophet,与传统的时间序列预测方法相比,有以下优点:其具有较好的灵活性,轻松适应多个季节的季节性,并通过分析对趋势做出不同的假设;测量值不必呈等间距分布,也不需要插值缺失值;拟合速度较快;预测模型具有易于解释的参数,这些参数可通过分析对预测进行强加。

      Prophet实质上是一个基于自加性模型的预测时间序列数据的模型,模型整体可以分解为三个主要部分:趋势项(growth) $g\left( t \right)$、季节项 (seasonality) $s(t)$、节假日项(holidays) $h(t)$,它们通过下式叠加在一起:

      $$P\left( t \right) = g\left( t \right) + s\left( t \right) + h\left( t \right) + {\varepsilon _t}$$ (1)

      式中:${\varepsilon _t}$代表误差项,一般情况下,假设其服从均值为0的正态分布,其主要用来反映未在模型中体现的异常变动。

      $g\left( t \right)$为趋势函数,包括调节模型光滑度的参数和不同程度的假设,主要是对时间序列中的分段线性增长或logistic饱和增长等非周期性变化进行建模,根据数据中的变化点(changepoint)检测趋势走向。本文采用logistic饱和增长模型,基本趋势项采用一个逻辑回归模型:

      $$g\left( t \right) = \frac{{C(t)}}{{1 + {e^{( - k(t - b(t)))}}}}$$ (2)

      式中:$k$代表增长率;$b(t)$表示偏移量;$C(t)$为模型容量;随着$t$的增加,$g\left( t \right)$趋近于$C(t)$

      $s(t)$代表周期性变化,为了拟合并预测季节的效果,Prophet基于傅里叶级数提出了一个灵活的模型,$s(t)$可根据以下公式进行估算:

      $$s(t) = \sum\limits_{{{n}} = 1}^N {\left( {{a_n}\cos \left(\frac{{2\pi nt}}{T}\right) + {b_n}\sin \left(\frac{{2\pi nt}}{T}\right)} \right)} $$ (3)

      式中:$N$代表周期总数;$T$代表某个固定的周期(年度数据的$T$是365.25,周数据的$T$是7);$2n$代表期望在模型中使用该周期的个数;${a_1},{a_2}, \cdots {a_N}$${b_1},{b_2}, \cdots {b_N}$表示模型中需要估计的参数。

      $h(t)$代表节假日效果,节假日和大事件都会导致时间序列中出现可预测的波动。不同节假日及大事件在不同时刻下的影响都能建立独立模型,给每个独立模型制定一个时间窗口,其中考虑了节假日的影响有窗口期(如中秋节的前几天和后几天),同一个窗口期中的影响为相同值。节假日效果模型$h(t)$根据以下公式进行估算:

      $$h(t) = \sum\limits_{i = 1}^{_L} {{\kappa _i}} 1(t \in {D_i})$$ (4)

      式中:$L$为节假日集合;$i$为第$i$节假日;${\kappa _i}$为对应节假日对预测值的影响因子;${D_i}$为窗口期中包含的时间$t$

      定义$Z(t) = [1(t \in {D_1}), \cdots 1(t \in {D_L})]$,可得:

      $$h(t) = Z(t)\kappa ,\kappa \sim Normal(0,{v^{\rm{2}}})$$ (5)
    • 电力负荷数据具有时序性,本文利用Prophet模型对历史电力负荷数据进行实验,模型构建步骤如下:

      1)数据处理。

      Prophet的输入量是一个包含两列的数据框,第一列为日期,第二列为与日期相对应的电力负荷数据,本文采用西南地区某地市2013-01-01至2015-12-31日的电力负荷数据,数据的采样周期为1h,包含了每天24个采样点的负荷情况,其中训练集选为2013-01-01到2015-03-13的电力负荷数据,预测目标为2015-03-14日各小时点的电力负荷。

      2)参数调优。

      在python3.7环境下调用fbprophet软件包,Prophet预测模型中对实验结果影响较大的参数有趋势模型、转折点数量、季节拟合度和假期拟合度。具体步骤如下:

      ① 选择趋势模型为分段线性的趋势;

      ② 根据电力负荷数据的规律给参数转折点设定一个初始值为2,选择季节拟合度和假期拟合度的初始值都分别为8和9,并在节假日项中设置节假日特征如表1所示;

      表 1  节假日特征表

      Table 1.  Holidays feature list

      节假日日期
      元旦节2013-01-012014-01-012015-01-01
      春节2013-02-102014-01-312015-02-19
      清明节2013-04-042014-04-052015-04-05
      劳动节2013-05-012014-05-012015-05-01
      端午节2013-06/122014-06-022015-06-20
      中秋节2013-09-192014-09-082015-09-27
      国庆节2013-10-012014-10-012015-10-01

      ③ 用处理好的训练集对Prophet模型进行训练,通过作图观察拟合效果,调节上述模型参数,使模型预测效果最佳。

    • XGBoost实现的是一种通用的Tree Boosting算法,相比梯度提升算法,性能有10倍以上的提升。所用树模型是回归数(CART)模型,树的集成模型为:

      $${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i} = \sum\limits_{k = 1}^K {{f_k}\left( {{x_i}} \right)} ,\;{f_k} \in F$$ (6)

      式中:${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i}$为第$i$个样本的预测值;$K$为树的数目;$F$为CART(回归树)的集合;${f_k}$对应于集合$F$中的一个函数;${x_i}$表示输入的第$i$个数据。

      XGBoost模型的目标函数$L$包含两部分:

      $$L = \sum\limits_{{{i}} = 1}^n {l\left( {{y_i},{{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} }_i}} \right)} + \sum\limits_{k = 1}^K {\varOmega \left( {{f_k}} \right)} $$ (7)

      式中:第1项代表预测值${\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i}$和真实值${y_i}$之差;第2项为对树模型规模的惩罚项,是所有回归树的复杂度之和,即:

      $$\varOmega \left( {{f_k}} \right) = \gamma T + \frac{1}{2}\lambda {\left\| w \right\|^2}$$ (8)

      式中:$\gamma $$\lambda $为惩罚系数;$T$为叶子节点个数;$w$为叶子节点的分数。

      式(7)在计算过程中,通过寻找最佳${f_t}\left( {{x_i}} \right)$,不断叠加来最小化目标函数。第$t$轮的目标函数可改写为:

      $$\begin{split} {L^{\left( t \right)}} &= \sum\limits_{i = 1}^n {l\left( {{y_i},{{\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} }_i}} \right)} + \sum\limits_{k = 1}^K {\varOmega \left( {{f_k}} \right)} \\ &= \sum\limits_{i = 1}^n {l\left( {{y_i},\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i^{\left( {t - 1} \right)} + {f_t}\left( {{x_i}} \right)} \right)} + \varOmega \left( {{f_k}} \right) \end{split} $$ (9)

      对式(9)进行二阶泰勒近似展开,定义${I_j} = \left\{ {i|q\left( {{x_i} = j} \right)} \right\}$为第$j$棵树每一叶子中的样本集合。其中,${g_i} = {\partial _{\bar y_i^{t - 1}}}l\left( {{y_i},\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i^{\left( {t - 1} \right)}} \right)$为一阶导数,${h_i} = \partial _{\bar y_i^{t - 1}}^2l $$ \left( {{y_i},\overset{\lower0.5em\hbox{$\smash{\scriptscriptstyle\frown}$}}{y} _i^{\left( {t - 1} \right)}} \right)$为二阶导数,于是可得:

      $$\begin{split} {L^{\left( t \right)}}& \cong \sum\limits_{i = 1}^n {\left[ {{g_{_i}}{f_t}\left( {{x_i}} \right) + \frac{1}{2}{h_i}f_t^2\left( {{x_i}} \right)} \right]} + \varOmega \left( {{f_k}} \right) \\ &{ \cong \sum\limits_{i = 1}^n {\left[ {{g_{_i}}{f_t}\left( {{x_i}} \right) + \frac{1}{2}{h_i}f_t^2\left( {{x_i}} \right)} \right] + } \gamma T + \frac{1}{2}\lambda \sum\limits_{j = 1}^T {w_j^2} } \\ &{ \cong \sum\limits_{j = 1}^T {\left[ {\left( {\sum\limits_{i \in {I_j}} {{g_{_i}}} } \right)} \right]w_j^2 + } \frac{1}{2}\left( {\sum\limits_{i \in {I_j}} {{h_i} + \lambda } } \right)w_j^2 + \gamma T} \end{split} $$ (10)

      定义${G_j} = \displaystyle\sum\nolimits_{i \in {I_j}} {{g_{_i}}}$${H_j} = \displaystyle\sum\nolimits_{i \in {I_j}} {{h_i}}$可得:

      $${L^{\left( t \right)}} \cong \sum\limits_{j = 1}^T {\left[ {{G_j}{w_j} + \frac{1}{2}\left( {{H_j} + \lambda } \right)w_j^2} \right]} + \gamma T$$ (11)

      对上式中$w$求偏导可得最优$w$为:

      $${w_j} = \frac{{{G_j}}}{{{H_j} + \lambda }}$$ (12)

      将式(12)代入式(11)可得:

      $${L^{\left( t \right)}} \cong - \frac{1}{2}\sum\limits_{j = 1}^T {\frac{{G_j^2}}{{{H_j} + \lambda }} + \gamma T} $$ (13)

      目标函数越小则模型越好,在训练过程中,应用贪心算法对子树进行划分,并枚举可行的分割点,不断计算结点损失以选择增益最大的叶子结点。增益${L_{Gain}}$的计算公式如下:

      $${L_{Gain}} \cong \frac{1}{2}\left[ {\frac{{G_L^2}}{{{H_L} + \lambda }} + \frac{{G_R^2}}{{{H_R} + \lambda }} - \frac{{\left( {{G_L} - {G_R}} \right)}}{{{H_L} + {H_R} + \lambda }}} \right] - \gamma $$ (14)

      式中:第1项为左子树分裂后的增益;第2项为右子树分裂后的增益;第3项表示不进行子树分裂的增益。

    • 综合考虑气象,日期等因素对电力负荷数据的影响,采用XGBoost模型对电力负荷数据进行预测,模型的构建步骤如下:

      1)数据处理。

      在1.1节的数据基础上加入气象数据,构建数据集,将前5个时刻的负荷数据,工作日信息,温度,湿度,风速,降雨量构建特征向量作为输入,预测第6个时刻的负荷数据,训练集与预测范围同1.1节。

      2)参数调优。

      在python3.7环境下调用XGBoost软件包,XGBoost预测模型的参数由3种类型组成,其中通用参数用于宏观函数控制,Booster参数用于决定每一步的booster,学习目标参数用于控制学习的表现,具体步骤如下:

      ①确定各个参数初始值及范围如表2所示;

      表 2  参数初始化值及范围

      Table 2.  Initialization value and range of parameters

      参数名初始化值范围
      n_estimators 迭代次数 800 500~1500
      Gamma 函数00~0.2
      Subsample 下采样0.80.5~0.9
      colsample_bytree 列占比0.80.5~0.9
      learning_rate 学习率0.10.01~0.3

      ②采用网格搜索法对迭代次数、函数、下采样、列占比及学习率进行高负荷搜索,通过观察拟合效果,调整各参数值,如:若过拟合,则减小下采样值,直到达到最好的效果。

    • 根据电力负荷数据分别构建Prophet模型和XGBoost机器学习模型,假设在$t$时刻,Prophet模型的预测值为$P(t)$,XGBoost机器学习模型的预测值为$X(t)$$t = 1,2, \cdots ,n$,然后采用误差倒数法将两个单一模型进行组合。此时,定义集成后的Prophet-XGBoost混合预测模型为:

      $${Y_t} = {\omega _1}P(t) + {\omega _2}X(t),t = 1,2, \cdots ,n$$ (15)
      $${\omega _1} = \dfrac{{{\varepsilon _{_X}}}}{{{\varepsilon _{_P}} + {\varepsilon _{_X}}}}$$ (16)
      $${\omega _2} = \dfrac{{{\varepsilon _{_P}}}}{{{\varepsilon _{_P}} + {\varepsilon _{_X}}}}$$ (17)

      式中:${\varepsilon _{_P}},{\varepsilon _{_X}}$分别为Prophet和XGBoost的平均相对误差;${Y_t}$$t$时刻的混合预测值。

      应用如式(16)和式(17)所示的倒数误差法求取权重,该方法通过对平均相对误差小的模型赋较大的权重,使整个混合模型的平均相对误差趋于减小,得到更准确的预测值。

      基于Prophet-XGBoost混合模型的电力负荷预测流程如图1所示。

      图  1  Prophet-XGBoost混合模型预测流程

      Figure 1.  Forecasting flow chart of Prophet-XGBoost hybrid model

    • 为评估各预测模型的质量,本文采用平均相对误差(mean absolute percentage error,MAPE),平均误差(mean error,ME)和均方根误差(root mean square error,RMSE)作为预测评价指标。各评价指标的计算方法如下:

      $${X_{MAPE}} = \frac{1}{n}\sum\limits_{t = 1}^n {\frac{{\left| {{y_t} - {{\hat y}_t}} \right|}}{{{y_t}}}} $$ (18)
      $${X_{ME}} = \frac{1}{n}\sum\limits_{t = 1}^n {\left| {{y_t} - {{\hat y}_t}} \right|} $$ (19)
      $${X_{RMSE}} = \sqrt {\frac{1}{n}\sum\limits_{t = 1}^n {{{\left( {{y_t} - {{\hat y}_t}} \right)}^2}} } $$ (20)

      式中:${y_t}$代表$t$时刻电力负荷值实际值;${\hat y_t}$代表$t$时刻电力负荷预测值;$n$代表电力负荷数据数量。

    • 本文采用西南地区某地市2013-01-01至2015-12-31的电力负荷数据、气象数据、工作日数据,分别采用1.1节和2.1节所述方法对Prophet模型和XGBoost模型进行参数调优,各最优参数如表3表4所示。

      表 3  Prophet模型各参数最优值

      Table 3.  Optimal values of parameters in Prophet model

      参数名最优值
      转折点数量3
      季节拟合度10
      假期拟合度10

      表 4  XGBoost模型各参数最优值

      Table 4.  Optimal values of parameters in XGBoost model

      参数名最优值
      n_estimators 迭代次数740
      Gamma 函数0
      Subsample 下采样0.7
      colsample_bytree 列占比0.7
      learning_rate 学习率0.08

      通过实验,式(1)中趋势项、季节项、节假日项3部分对应的分析结果如图2所示,图2(a)图2(b)依次为总体增长趋势、节假日项、日周期趋势。

      图  2  组成成分分析

      Figure 2.  Component analysis

      图2可知,该地区电力负荷呈现上升趋势,各节假日对电力负荷的影响程度不同,从日趋势来看,白天用电量多于夜晚用电量,符合实际情况。

      混合模型与各单一模型的预测值和实际值的对比如图3所示,各模型的平均相对误差如图4所示,MAPE、ME和RMSE值如表4所示。

      图  3  各模型预测曲线对比图

      Figure 3.  Comparison of forecasting curves by various models

      由图可3知,各模型对次日实际负荷预测都得到较好的结果,其中本文所提出的Prophet-XGBoost混合预测模型相比三个单一模型有更高的预测精度,其预测曲线与实际曲线变化趋势相似,Prophet模型较XGBoost模型精确度更高,SVR模型精确度最低。由图4可知本文提出的Prophet-XGBoos混合预测模型各时刻平均相对误差较小且波动不大,有效降低了预测误差,表现出更好的预测效果。由表5可知,与SVR模型,单一Prophet模型和XGBoost模型相比,Prophet-XGBoos混合预测模型具有最小的MAPE、ME及RMSE值,分别为5.3%、2.643 MW和1.625 MW。与SVR模型相比,Prophet-XGBoos混合预测模型运行时间缩短了60%,大大提升了预测效率。

      图  4  各模型平均相对误差对比

      Figure 4.  Comparison of mean relative error by various models

      表 5  MAPE、ME和RMSE

      Table 5.  MAPE、ME and RMSE

      模型MAPE/%ME/MWRMSE/MW
      SVR0.0955.3472.312
      Prophet0.0834.2032.050
      XGBoost0.0613.2091.792
      Prophet-XGBoost0.0532.6431.625
    • 1)混合模型中的Prophet模型对数据中的趋势变化点和节日效应具有出色的适应能力,尤其对大量的异常值、缺失值和趋势转变的鲁棒性极强,降低了数据波动性对预测的不利影响。

      2)应用误差倒数法将Prophet模型和XGBoost机器学习模型进行结合得到Prophet-XGBoost混合模型,其兼顾了两个单一模型各自的优点,弥补了单一模型预测误差较大的缺陷,该混合模型达到了提升短期负荷预测精度的效果。

参考文献 (17)

目录

    /

    返回文章
    返回