Datawhale AI春训营】AI + 新能源(发电功率预测)Task1

打印 上一主题 下一主题

主题 1636|帖子 1636|积分 4910

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
赛题链接
官网
新能源发电功率预测赛题进阶方案

下面是ai给的一些建议
新能源发电功率预测赛题进阶方案

一、时序特性深度发掘

1. 多尺度周期特征

  1. # 分钟级周期编码
  2. train['15min_index'] = (train['hour']*4 + train['minute']//15)
  3. # 周周期特征
  4. train['weekday'] = pd.to_datetime(train['date']).dt.weekday
  5. # 傅里叶基函数
  6. from statsmodels.tsa.deterministic import Fourier
  7. fourier = Fourier(order=3, period=24)
  8. fourier_features = fourier.in_sample(train.index)
  9. # 气象指标滞后序列
  10. for lag in [1, 2, 3, 24, 24 * 7]:
  11.     train[f"t2m_lag{lag}"] = train["t2m"].shift(lag)
  12. # 功率自回归特征
  13. train["power_lag96"] = train["power"].shift(96)  # 昨日同时间点
  14. window_sizes = [4, 24, 48]  # 1h/24h/48h窗口
  15. for ws in window_sizes:
  16.     train[f"wind_rolling_mean_{ws}"] = train["wind_speed"].rolling(ws).mean()
  17.     train[f"ghi_rolling_max_{ws}"] = train["ghi"].rolling(ws).max()
复制代码
二、气象数据增强

  1. # 网格点标准差
  2. train["spatial_std"] = dataset["data"].std(axis=(1,2))
  3. # 梯度计算函数
  4. def calc_gradient(field):
  5.     grad_x = np.gradient(field, axis=1)
  6.     grad_y = np.gradient(field, axis=2)
  7.     return np.sqrt(grad_x**2 + grad_y**2)
  8.    
  9. from pvlib import solarposition
  10. # 太阳位置计算
  11. times = pd.to_datetime(train.index)
  12. solpos = solarposition.get_solarposition(times, 30.6, 114.3)  # 武汉坐标
  13. train["solar_zenith"] = solpos["zenith"]
复制代码
三、模子架构优化

  1. def split_predict(df):
  2.     # 黎明阶段(5-8点)使用LSTM
  3.     dawn_model = build_lstm(df.between_time('5:00','8:00'))
  4.    
  5.     # 平稳阶段使用LightGBM
  6.     stable_model = lgb.train(df.between_time('9:00','18:00'))
  7.    
  8.     return combine_predictions(dawn_model, stable_model)
  9.    
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用多少眼泪才能让你相信

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表