遇见数据集

theforecastingcompany/enedis-with-holidays

收藏
Hugging Face2026-05-29 更新2026-05-31 收录
官方服务:

资源简介:

--- license: cc-by-4.0 language: - en - fr task_categories: - time-series-forecasting tags: - time-series - forecasting - covariates - holidays - electricity - enedis - france size_categories: - n<1K configs: - config_name: default data_files: - split: train path: data/train-* --- # enedis-with-holidays Five years (2020-07-18 → 2025-07-17) of the French total electricity consumption (`consommation_totale`) published by [Enedis](https://data.enedis.fr/), at three frequencies: `30min`, `6h`, and `D` (daily). Each row carries the matching covariates (smoothed observed temperature, smoothed climatological-normal temperature, French public holiday flag) and nine forecast windows anchored on three 2024 holidays for backtesting. This dataset is designed to **evaluate how well forecasting models capture holiday effects**. French public holidays cause large, predictable drops in electricity consumption that are notoriously hard to forecast with seasonality alone — Labour Day (May 1), Armistice (Nov 11), and the Christmas / New-Year cluster are all included explicitly, with multiple forecast-creation dates per holiday so you can compare model behaviour across short, medium, and long holiday lead times. The `is_france_holiday` future covariate is the hook for testing covariate-aware models against ones that have to infer the holiday calendar themselves. The half-hourly row preserves the raw cadence; the 6h and daily rows are time-bucket aggregations (sum for the energy target, mean for temperatures, max for the holiday indicator). Forecast windows are expressed in each row's own frequency units. ## Quickstart ```python from datasets import load_dataset ds = load_dataset("theforecastingcompany/enedis-with-holidays", split="train") for row in ds: print( row["item_id"], row["freq"], "T =", len(row["target"][0]), "targets =", len(row["target_names"]), "windows =", len(row["window_fcd_idxs"]), ) # enedis_bilan_30min 30min T = 87648 targets = 1 windows = 9 # enedis_bilan_6h 6h T = 7305 targets = 1 windows = 9 # enedis_bilan_D D T = 1827 targets = 1 windows = 9 ``` Ground truth for window `i` is: ```python fcd = row["window_fcd_idxs"][i] horizon = row["window_horizons"][i] ground_truth = np.array(row["target"])[:, fcd + 1 : fcd + 1 + horizon] # shape (1, horizon) ``` ## Rows | `item_id` | `freq` | T | targets | past covs | future covs | windows | | -------------------- | ------- | ------ | ------- | --------- | ----------- | ------- | | `enedis_bilan_30min` | `30min` | 87 648 | 1 | 1 | 2 | 9 | | `enedis_bilan_6h` | `6h` | 7 305 | 1 | 1 | 2 | 9 | | `enedis_bilan_D` | `D` | 1 827 | 1 | 1 | 2 | 9 | All three rows start at `2020-07-18` and end at `2025-07-17` (modulo each frequency's bucketing). The post-2024-10-04 15-min era in the raw Enedis data is aggregated to 30-min mean before the half-hourly row is emitted, so the timeline is uniform across the five-year span. ## Schema | field | type | meaning | | ------------------------------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------ | | `item_id` | `string` | row id, encoding the frequency | | `start` | `timestamp[ns]` | timestamp of `target[:, 0]` | | `freq` | `string` | pandas freq alias (`30min`, `6h`, `D`) | | `target` | `Sequence(Sequence(float32))` `(D_t, T)` | target — single channel (`consommation_totale`); always 2-D with `D_t = 1` | | `target_names` | `Sequence(string)`, length 1 | always `["consommation_totale"]` | | `past_feat_dynamic_real` | `Sequence(Sequence(float32))` `(D_h, T)` | history-only covariates — 1 channel | | `past_feat_dynamic_real_names` | `Sequence(string)`, length 1 | | | `feat_dynamic_real` | `Sequence(Sequence(float32))` `(D_f, T)` | known-future covariates — 2 channels | | `feat_dynamic_real_names` | `Sequence(string)`, length 2 | | | `window_fcd_idxs` | `Sequence(int32)`, length 9 | i-th window: index of last observed step on the target axis | | `window_horizons` | `Sequence(int32)`, length 9 | i-th window: number of future steps to forecast | | `source` | `string` | provenance | | `source_item_id` | `string` | original id in the source data | ### Target - `consommation_totale` — total French electricity consumption, expressed as **energy delivered during the bucket in Wh**. At daily granularity the value is the total daily energy (≈ 1.2–1.5 TWh per day for France). Always exposed as a 2-D `(1, T)` array so the schema accommodates future multivariate versions without an API break. ### Covariates - **`past_feat_dynamic_real`** (history-only) - `temperature_reelle_lissee` — smoothed observed temperature (°C). - **`feat_dynamic_real`** (known-future) - `is_france_holiday` — binary, 1 on French public holidays. - `temperature_normale_lissee` — smoothed climatological-normal temperature (°C). For the 6h and daily rows: the consumption channel is the **sum** over the bucket (so units stay in Wh of delivered energy per bucket); the holiday flag is the **max** (any holiday inside marks the whole bucket); temperatures are bucket **means**. ## Forecast windows Nine windows = three holidays × three forecast-creation dates each. The FCDs sit 20 / 10 / 5 days before each holiday and the matched horizons extend through the holiday window. The Christmas–New-Year cluster uses longer horizons (28 / 18 / 13 days) so the forecast also covers New Year's Day. | holiday | date | FCDs (days before) | horizons (days) | | --------------------- | ------------ | ------------------ | --------------- | | Labour Day | 2024-05-01 | 20, 10, 5 | 20, 10, 5 | | Armistice | 2024-11-11 | 20, 10, 5 | 20, 10, 5 | | Christmas / New Year | 2024-12-25 | 28, 18, 13 | 28, 18, 13 | In each row the FCD indexes and horizons are expressed in steps of that row's frequency (so the `30min` row's `window_horizons` are in half-hours, the `6h` row's are in six-hour buckets, etc.). ## Source & license Built from the *bilan électrique demi-heure* series published by [Enedis Open Data](https://data.enedis.fr/) and mirrored on [data.gouv.fr](https://www.data.gouv.fr/fr/datasets/bilan-electrique-demi-heure/). The covariates are publicly available French public-holiday calendars and Météo-France smoothed temperature references. Redistributed under [CC-BY-4.0](https://creativecommons.org/licenses/by/4.0/) with credit to Enedis as the upstream data provider. ## Citation If you use this dataset, please credit Enedis as the upstream data provider and link back to this Hub repository.

Five years (2020-07-18 → 2025-07-17) of the French total electricity consumption (`consommation_totale`) published by Enedis, at three frequencies: `30min`, `6h`, and `D` (daily). Each row carries the matching covariates (smoothed observed temperature, smoothed climatological-normal temperature, French public holiday flag) and nine forecast windows anchored on three 2024 holidays for backtesting. This dataset is designed to evaluate how well forecasting models capture holiday effects. French public holidays cause large, predictable drops in electricity consumption that are notoriously hard to forecast with seasonality alone — Labour Day (May 1), Armistice (Nov 11), and the Christmas / New-Year cluster are all included explicitly, with multiple forecast-creation dates per holiday so you can compare model behaviour across short, medium, and long holiday lead times. The `is_france_holiday` future covariate is the hook for testing covariate-aware models against ones that have to infer the holiday calendar themselves.

提供机构:
theforecastingcompany
搜集汇总
数据集介绍
theforecastingcompany/enedis-with-holidays 数据集图片
构建方式
该数据集源自法国电力传输运营商Enedis公开的半小时电力消费数据,时间跨度覆盖2020年7月18日至2025年7月17日,共计五年。原始数据以半小时为粒度记录,数据集在此基础上进一步聚合生成6小时和日度两种频率版本,形成三种时间粒度的子集。每个子集包含法国总电力消费量作为目标变量,并附带平滑观测温度、平滑气候学常态温度以及法国公共假日标志等协变量。构建过程中,特别针对劳动节、停战纪念日以及圣诞新年假期三个2024年公共假日,设置了九个回测窗口,每个假日对应三个不同的预测创建日期(距假日20、10、5天),从而系统评估模型对不同提前期下假日效应的捕捉能力。
特点
该数据集的核心特色在于其专门为评估时序预测模型在假日效应场景下的表现而设计。法国公共假日会引发电力消费可预测的大幅下降,而纯季节性模型往往难以精准刻画此类突变。数据集通过显式编码假日标志作为未来已知协变量,为对比协变量感知模型与依赖隐含假日推断模型的性能提供了标准化测试基准。三个频率版本(30分钟、6小时、日度)保存了原始数据的不同时间粒度特征,半小时数据保留原始节奏,聚合数据则采用桶内总和、均值或最大值等统计量,确保各粒度数据在单位上的一致性。九个月份预测窗口覆盖短、中、长三种提前期,尤其圣诞新年假期的28天长窗口能涵盖新年节日效应,使得对模型表现的评价更加全面。
使用方法
用户可通过HuggingFace Datasets库直接加载该数据集,使用`load_dataset('theforecastingcompany/enedis-with-holidays', split='train')`即可获取包含三个时间序列行的迭代器。每个行对象携带item_id标识频率类型、start表示起始时间戳、target为二维数组存储电力消费量,以及past_feat_dynamic_real和feat_dynamic_real分别存储历史协变量和未来已知协变量。窗口索引数组window_fcd_idxs和window_horizons提供了每个预测窗口的构造日期索引与预测长度,用户可根据这些索引从target中截取对应区间的真实值进行验证。对于半小时频率数据,时间序列长度达87648个时间点,日度数据则为1827个时间点,适合作为长序列预测任务的基准。
背景与挑战
背景概述
电力负荷预测是能源系统管理中的关键环节,准确的预测对于电网稳定运行与市场交易至关重要。然而,公共假日引发的用电模式突变,如法国劳动节、停战纪念日以及圣诞-新年期间电力消耗的显著下降,构成了传统季节性模型难以捕捉的复杂特征。该数据集由Enedis与The Forecasting Company于2025年联合构建,基于2020年7月至2025年7月间法国全国总电力消耗的半小时、六小时及日度频率数据,融入平滑观测温度、气候常态温度及法国公共假日标志等协变量。通过围绕2024年三个假日设置九个回测预测窗口,该数据集为评估模型对假日效应的捕捉能力提供了标准化基准,对推动时序预测领域在事件驱动型负荷建模方面的发展具有重要意义。
当前挑战
该数据集所解决的核心领域问题在于,传统时序模型依赖于历史周期性模式,却难以准确预测由公共假日引发的突发性、结构性用电变化,如劳动节与圣诞假期中电力需求的大幅下降,这要求模型必须能够整合未来的协变量信息。同时,数据构建过程中面临多重挑战:需将2024年10月后Enedis原始数据的15分钟粒度统一重采样为30分钟以保持时间轴均匀;需从法国气象局的温度数据中提取并平滑处理观测值与气候常态值;还需精心设计三个假日、每个假日对应三种不同提前期(5、10、20天)的预测窗口,以同时测试模型在短期、中期及长期假日时序下的表现,确保评估的全面性与科学性。
常用场景
经典使用场景
该数据集专为评估时间序列预测模型对节假日效应的捕捉能力而设计,尤其适用于法国电力消费预测领域。其经典使用场景在于提供包含平滑观测温度、气候标准温度及法国公共假日标志等协变量的多频率电力消耗数据,研究者可通过三个特定假日(劳动节、停战纪念日、圣诞新年)对应的九个预测窗口,对比模型在短期、中期和长期假日提前期下的预测表现。这种设计使得研究人员能够系统性地检验协变量感知模型与依赖季节性推断假日日历的模型在假日效应预测上的差异。
实际应用
在实际应用中,该数据集直接服务于法国电力系统的负荷预测与运维调度。电力公司可基于该数据训练和验证模型,以更精确地预测劳动节、停战纪念日和圣诞新年等假日期间的电力需求波动,从而优化发电计划、减少备用容量浪费,并保障电网稳定运行。此外,该数据集还为能源交易市场提供决策支持,帮助交易员在节假日前后制定更合理的电力购售策略。其包含的三种时间粒度数据(30分钟、6小时、日)可灵活适配不同预报精度的实际业务需求,从日内调度到长期规划均可受益。
衍生相关工作
该数据集衍生了一系列聚焦于协变量融入时间序列预测的经典工作,推动了节假日效应建模的研究进展。典型的研究方向包括:开发基于注意力机制的假日感知递归神经网络、设计融合日历特征和温度协变量的梯度提升模型,以及探索利用预训练基础模型微调以适应特定节假日模式的方法。这些工作不仅验证了显式引入假日协变量对预测精度的提升作用,还衍生出针对不同频率数据的多尺度建模策略和跨领域迁移学习框架,逐步建立起一个完善的节假日电力消费预测方法论体系。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务