Enefit - Kaggle项目

news/2025/11/25 13:44:23/文章来源:https://www.cnblogs.com/moonlight1209/p/18801789

项目简述

对能源系统中的安装了太阳能的消费者兼生产者(prosumers)消费或生产的电力进行预测以减少电力不平衡带来的损失或者说调节电力不平衡的费用。

问题描述

预测具体任务:实际是属于区域的电力预测,基本单元是county,在此基础上又对product_type,is_bussiness进行了区分,实际应用中应该更加面向电力运营商、或区域性电力交易的需求。

  • 一个独特的segment是[county, product_type, is_bussiness, is_consumption]的组合
    时间问题:
    预测时间:2023-05-27 11:00:00
    预测目标:2023-05-28 00:00:00 - 23:00:00的能源生成or消耗
    可用其它数据(avaliable):
client 滑窗的历史target historical_weather forecast_weather(2025-05-27 00:00:00生成后面两天的) electricity_prices gas_prices
2023-05-26 client也随着时间改变 为何只用昨天的? 2025-05-26 11:00:00~2025-05-27 10:00:00 2025-05-27 01:00:00~2025-05-29 23:00:00 每天下午两点公布 每天下午两点公布

数据集

💡thinking:机器学习项目中,拿到不熟悉领域的数据集该怎么办呢? -> 这正是特征工程困难的地方
记录一下各个数据集的字段的含义:

  1. train.csv
  • county - 县的ID代码。
  • is_business - 表示能源客户是否是商业客户的布尔值。
  • product_type - 契约类型的ID代码,包括 {0: "Combined", 1: "Fixed", 2: "General service", 3: "Spot"} 的映射。
  • target - 相关时段的电力消耗或产生量。时段由 county、is_business 和 product_type 定义。
  • is_consumption - 表示该行数据的目标是电力消耗还是产生的布尔值。
  • datetime - 爱沙尼亚时间(EET / EEST)。
  • data_block_id - 具有相同data_block_id的所有行将在同一时间进行预测。这取决于实际制定预测时可用的信息。❓
  • row_id - 行的唯一标识符。
  • prediction_unit_id - county、is_business 和 product_type 组合的唯一标识符。测试集中可能会出现或消失新的预测单位。-> 所以预测的每条数据是按这个类别作为一条的,而非一户一个预测。
  1. gas_prices.csv:
  • origin_date - 前一天的天然气价格数据的日期。
  • forecast_date - 价格应该生效的日期。(the date when the prices should be revelant),同理,第二天才知道昨天的价格。
  • [lowest/highest]_price_per_mwh - 天然气在前一天的日前市场的最低/最高价格,以欧元每兆瓦时计。
  • data_block_id
  1. client.csv:
  • product_type - 契约类型。
  • county - 县的ID代码。
  • eic_count - 能源消耗点(EICs - European Identifier Code)的汇总数量。❓
  • installed_capacity - 安装的光伏太阳能电池板容量,以千瓦为单位。
  • is_business - 表示能源客户是否是商业客户的布尔值。
  • date
  • data_block_id
  1. electricity_prices.csv:
  • origin_date - 电力价格数据的日期。
  • forecast_date - 价格应该生效的日期。也就是说9月1号才能得到8月31日的价格。
  • euros_per_mwh - 前一天日前市场上电力的价格,以欧元每兆瓦时计。-> 说明这个项目的预测背景是日前市场
  • data_block_id
  1. forecast_weather.csv:
    每天凌晨两点生成之后一天的天气预报数据:
  • [latitude/longitude] - 天气预报的坐标。
  • origin_datetime - 天气预报生成的时间戳。(timestamp of when the forecast is made)
  • hours_ahead - 天气预报生成时间与预测天气之间的小时数。每个预测涵盖总共48小时。
  • temperature - 地面上2米高处的空气温度(摄氏度)。
  • dewpoint - 地面上2米高处的露点温度(摄氏度)。
  • cloudcover_[low/mid/high/total] - 不同高度区域(0-2公里、2-6公里、6+公里以及总体)的云层覆盖百分比。
  • 10_metre_[u/v]_wind_component - 测量地表上方10米的风速的东向/北向分量,以米每秒计。
  • data_block_id
  • forecast_datetime - 预测天气的时间戳,即预测的是哪个时刻的时戳,由origin_datetime和hours_ahead生成。
  • direct_solar_radiation(DNI) - 每小时沿着与太阳方向垂直的平面上达到地表的直接太阳辐射,以瓦特时每平方米计。
  • surface_solar_radiation_downwards(GHI) - 达到地球表面的水平面上的太阳辐射,包括直接辐射和散射辐射,以瓦特时每平方米计。
  • snowfall - 过去一小时内的降雪量,以水当量米计。
  • total_precipitation - 过去一小时内在地球表面降落的液态降水(包括雨和雪)的累积量,以米为单位。
  1. historical_weather.csv:
  • datetime - 日期时间。
  • temperature - 温度。
  • dewpoint - 露点温度。
  • rain - 与预测约定不同。前一小时的大尺度天气系统降雨量(毫米)。
  • snowfall - 与预测约定不同。前一小时的降雪量(厘米)。
  • surface_pressure - 地表处的大气压力(百帕)。
  • cloudcover_[low/mid/high/total] - 与预测约定不同。云层覆盖在不同高度区域(0-3公里、3-8公里、8+公里以及总体)的百分比。
  • windspeed_10m - 与预测约定不同。地面上方10米处的风速(米每秒)。
  • winddirection_10m - 与预测约定不同。地面上方10米处的风向(度)。
  • shortwave_radiation - 与预测约定不同。全球水平辐射(瓦特时每平方米)。
  • direct_solar_radiation - 直接太阳辐射。
  • diffuse_radiation - 与预测约定不同。漫射太阳辐射(瓦特时每平方米)。
  • [latitude/longitude] - 天气站的坐标。
  • data_block_id
  1. weather_station_to_county_mapping.csv
    给了对应气象站对应的经纬度和county名称,气象站数量

综上,我获得的数据集包含的信息是,地区性的不同用户类型的小时级的用电/发电信息,天然气价格信息,所有客户的信息,电价信息,网格化的历史和预测的天气信息;
❓ 为何天然气价格和电价没有区域的信息,所以默认全国一致?

竞赛思路1:

作为机器学习项目,主要使用特征工程、xgboost类似的模型来进行预测。
在code中,有选手使用了外部数据集location.csv,可以查找出county对应的经纬度坐标;❓咋找的
❓ 这些数据集如何合并使用的?
代码给出的方式是每个数据集用了不同的merge列名进行合并,最终是一个大的数据集。(所以还是需要理解每个标签的含义)

self.client_join = ['county', 'is_business', 'product_type', 'data_block_id'] # 形成唯一的数据条
self.weather_join = ['datetime', 'county', 'data_block_id'] # 历史天气需要处理时间为偏移;预报的天气不需要(使用forecast_date对齐即可) because? -> 
self.gas_join = ['data_block_id'] # gas就依据block_id对齐,because? -> block_id对应了forecast_date即可用日期,和train.csv是对应的,这里用的特征是前天预测的昨天的价格 ❓不知道预测生成的具体时间
self.electricity_join = ['datetime', 'data_block_id'] # datetime = forecast_datetime + pd.DateOffset(1) ,时间偏移后可以对齐,实际只用block_id貌似也行

特征工程:

  • 哑变量
1. main_data:
  • 增加特征:拆解时间(常用的特征工程做法),增加过去的值(类似滑窗)
2. historical weather:
  • 增加特征:location信息,只用统计信息(气象数据的平均值,以county,datetime,block_id作为聚类指标)
    需要注意对测试集的不同的处理:时间偏移,❓没懂
3. forecast_weather:

和historical_weather类似,没有做时间偏移

4. electricity_prices:

需要时间偏移

5. gas_price:
  • 增加特征:平均价格

疑问整理:

  • 时间偏移的理由
  • 数据对齐的依据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/975971.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年11月审计报告事务所推荐:知名机构选择指南及避坑要点详解

对于许多企业管理者而言,选择一家合适的审计报告事务所是确保财务合规、优化财税管理的重要环节。尤其在当前经济环境下,政策对民营企业财税透明度的要求不断提高,审计需求呈现专业化、定制化趋势。根据国家相关部门…

2025年11月高新技术企业认定公司推荐:榜单与权威选择指南

在当今经济环境下,高新技术企业认定已成为众多科技型企业发展的重要一环。对于许多企业管理者而言,选择一家专业可靠的认定服务机构至关重要。这些用户通常包括初创科技企业创始人、成长型企业的财务负责人以及寻求转…

Axis(/ˈksɪs/) Axes(/ˈksiːz/)两者的区别?

一、发音(国际音标+中文谐音,附重音提示)单词 国际音标 重音位置 中文谐音(便于记忆) 发音要点Axis /ˈksɪs/ 第1音节 阿克西斯(“阿”重读) 开头“ax”发 /ks/(类似“艾克斯”快速连读),结尾“is”发 /ɪs…

Vue 2 和 Vue 3 的简要对比

Vue 2 和 Vue 3 的简要对比特性维度 Vue 2 (使用 Vue CLI) Vue 3 (推荐使用 Vite)构建工具 Vue CLI (基于 Webpack) Vite (基于 ESM,开发服务器启动和热更新更快)响应式原理 Object.defineProperty (对数组和新增属性…

C# Avalonia 18- ControlTemplates - FlipPanelAlternateTemplate

C# Avalonia 18- ControlTemplates - FlipPanelAlternateTemplate增加了动画以及用Style重写了样式。 FlipPanel.cs控制逻辑using Avalonia; using Avalonia.Animation.Easings; using Avalonia.Controls; using Avalo…

kube-proxy iptables 模式的原理

这是一个理解 Kubernetes Service 网络核心机制的关键知识点。总的来说,kube-proxy iptables 模式的核心原理是:监听 Kubernetes API 中 Service 和 Endpoint 的变化,然后动态地在每个节点的 iptables 中设置相应的…

Android EDLA开发认证说明和编写流程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

**`Series` / `DataFrame`** 和 **`ndarray`** 除了“容器”,还有别的叫法吗?

在数据科学和编程语境中,Series / DataFrame 和 ndarray 确实常被称作“容器”,但根据不同的抽象层次、使用场景或技术文档,它们还有更精确或更专业的称呼。下面我们分别说明:一、Series 和 DataFrame 的其他常见叫…

2025年11月审计报告事务所推荐榜单与选择指南:一份详尽的行业分析报告

在选择审计报告事务所时,企业决策者往往面临诸多考量,包括事务所的资质完备性、服务范围覆盖度、团队专业能力以及过往服务案例的真实反馈。当前,随着经济环境变化与监管政策趋严,企业对审计服务的需求不仅限于合规…

XML 序列化工具类

/// <summary> /// XML 序列化工具类 /// </summary> public static class XmlHelper {#region 基本序列化/反序列化/// <summary>/// 将对象序列化为 XML 字符串/// </summary>/// <typep…

2025年11月智能语音机器人品牌推荐对比分析:三大阵营专业维度深度评测报告

根据中国信息通信研究院发布的2024年智能语音产业发展白皮书显示,中国智能语音市场规模已达到382亿元,同比增长28.5%。随着人工智能技术的快速发展,智能语音交互在客服、教育、医疗等领域的渗透率持续提升。艾瑞咨询…

详解C语言操作符 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Numpy和Pandas都有哪些容器类型?Int64和DataFrame都叫数据类型?

要理清这个问题,核心是区分 “容器类型”(用于“装数据”的结构)和 “数据类型”(容器中“单个数据”的存储格式)——这是两个不同维度的概念。下面先分别拆解 NumPy 和 Pandas 的容器类型,再明确“Int64”与“S…

2025年11月智能AI客服品牌推荐热度榜:基于性能指标的结果承诺保障方案

行业格局分析 根据中国信息通信研究院发布的2024年人工智能产业发展报告,中国智能客服市场规模已达到285亿元,同比增长32.5%。智能客服在金融、政务、电商等行业的渗透率超过60%,成为企业数字化转型的核心应用场景。…

Cmake构建配置示例

配置构建产物位置 # Create build directory echo "Creating build directory..." mkdir -p build_static cd build_static# Configure QuantLib to build only static library echo "Configuring Quan…

vue3无缝滚动插件——vue-auto-scroll - larry

安装:npm install @fcli/vue-auto-scroll --save-dev 来安装在项目中使用 import VueAutoScroll from @fcli/vue-auto-scroll; const app=createApp(App) app.use(VueAutoScroll);使用:<div class="content&…

2025年11月呼叫中心系统服务商推荐选择指南:专业分析维度助力企业精准决策

行业格局分析 根据中国信通院发布的2024年客户中心产业发展报告显示,中国呼叫中心系统服务市场规模已达285亿元,年增长率稳定在12.5%。企业数字化转型需求持续释放,智能客服渗透率从2023年的35%提升至2024年的48%。…

2025年质量好的厨房瓷砖胶推荐TOP品牌厂家

2025年质量好的厨房瓷砖胶推荐TOP品牌厂家行业背景与市场趋势随着中国建筑装饰行业的持续发展,厨房装修作为家居环境的重要组成部分,对瓷砖胶产品的需求呈现稳定增长态势。根据中国建筑材料联合会最新发布的《2024-2…

2025年比较好的食品塑料袋厂家最新热销排行

2025年比较好的食品塑料袋厂家最新热销排行行业背景与市场趋势食品包装行业作为塑料制品应用的重要领域,近年来呈现出稳定增长态势。根据中国塑料加工工业协会最新发布的《2024-2025年中国食品包装塑料制品行业发展报…

深入解析:垂直原理:宇宙的沉默法则与万物运动的终极源头

深入解析:垂直原理:宇宙的沉默法则与万物运动的终极源头2025-11-25 13:17 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important…