この記事は「【リアルタイム電力予測】需要・価格・電源最適化ダッシュボード構築記」シリーズの一日目です
こんにちは。アドカレ初参戦のなかみんです。
今年は私も参加してみたい!どうせ参加するならかわいいQiitanのぬいぐるみが欲しい!ということで..
ひとりアドベントカレンダーという場を借りて、電力需要・価格・電源最適化が組み込まれたダッシュボートを構築します!!!
ダッシュボード構成は以下の予定です👇
ダッシュボード構成
以下の予測と数理最適化を毎朝6:00に自動更新する仕組みにします。
- 電力需要予測
- 電力価格予測
- 電源構成の最適化 ※これはおまけ(おまけなのに一番難しい..)
完成物
25日間の予定
🗓️ 第1章:導入
| 日付 | タイトル | 概要 |
|---|---|---|
| Day1 | 【リアルタイム電力予測】需要・価格・電源最適化ダッシュボード構築記 | システム全体像(データ→予測→最適化→アプリ)、使用技術 |
⚡ 第2章:電力需要予測
| 日付 | タイトル | 概要 |
|---|---|---|
| Day2 | 特徴量の取得(天気、電力需要、日付) | TEPCO需要、気象庁気温の取得 |
| Day3 | EDA(天気、電力需要、日付) | 簡単なEDA(季節性・時間帯性) |
| Day4 | LightGBMを使ってみる | 特徴量の比較実験 |
| Day5 | GRUを使ってみる | 特徴量の比較実験 |
| Day6 | 結果分析と需要予測の課題 | 残差分析、改善ポイント |
💰 第3章:電力価格予測
| 日付 | タイトル | 概要 |
|---|---|---|
| Day7 | 電力価格データの構造と取得 | JEPXスポット市場の構造。データの取得 |
| Day8 | EDA(価格、燃料・為替、日付) | 簡単なEDA |
| Day9 | 分位点回帰(理論編) | 数式、損失関数、上限・下限予測の意義 |
| Day10 | LightGBM で分位点回帰 | 0.1, 0.5, 0.9 の3分位モデルを実装 |
| Day11 | LGBM分位点回帰 + GAM | GAMによって精度改善を狙う |
| Day12 | 結果可視化と誤差考察 | 上下分位のバンド可視化、誤差分析 |
🔧 第4章:電源構成の数理最適化
| 日付 | タイトル | 概要 |
|---|---|---|
| Day13 | 電力システムにおける最適化問題とは | 電力システムの最適化数理最適化 |
| Day14 | 変数・目的関数・制約の定義 | 各電源の制約条件などを定義 |
| Day15 | 発電上限やコストを決める | 各電源のコストなどを定義 |
| Day16 | モデル構築 | Pythonで数理最適化モデルの構築 |
| Day17 | 結果の可視化と分析 | Pythonで数理最適化モデルの構築 |
🌐 第5章:ダッシュボード化
| 日付 | タイトル | 概要 |
|---|---|---|
| Day18 | データ自動取得(電力需要・天気) | requestでデータ取得 |
| Day19 | データ自動取得(燃料と為替) | request、APIでデータ取得 |
| Day20 | データ自動取得(電力価格) | スクレイピングでデータ取得 |
| Day21 | データ自動予測(電力需要) | 保存済みモデルで需要予測 |
| Day22 | データ自動予測(電力価格) | 保存済みモデルで価格予測 |
| Day23 | Streamlitによる可視化設計 | 可視化実装 |
| Day24 | GitHub Actions で自動更新 | 日次ジョブでデータ取得 |
| Day25 | Hugging Face Spacesで公開 | Streamlitアプリを公開の手順 |
使用技術
スクレイピング
Playwrite
電力価格を公開しているJEPXのサイトからcsvをダウンロードするときにブラウザ操作が必要だったので使用しました。
可視化
streamlit
ダッシュボードを構築するにあたり、Pythonで簡単にWeb公開できるため使用しました。
自動化・デプロイ
Github Actions
データを毎日同時刻に更新したかったので定期ジョブを行う仕組みを作りました。
Hugging Face Spaces
Streamlitを公開するために使用しました。Streamlitだけでも公開自体はできますが、Github Actionsで自動更新されたデータを認識し手間を掛けずに毎日更新されるように作りたかったからです。
モチベーション
- 電力取引や需給予測に興味があるから(元電力会社社員)
- 数理最適化を勉強して習得したいから
- Qiitanぬいぐるみが欲しいから
ちょっと自己紹介
現在は、医療/生物系の研究機関において、深層学習やマルチオミクス解析に携わっているエンジニア2年目、社会人6年目です。
