目錄
隊伍簡介
- 王禮芳 國立成功大學敏求智慧運算學院 (隊長)
- 莊秉宸 國立成功大學統計學系
- 李旻昊 國立成功大學敏求智慧運算學院
- 余振揚 國立成功大學敏求智慧運算學院
- Public: 372065.1 (5th)
- Private: 386003.4 (4th)
資料夾目錄
BlaBlaBlazzz/
: 主程式所在目錄image_readme/
: readme 文件的圖片other_works/
: 過去嘗試的資料整理與其他模型嘗試
資料格式
資料集包含以下欄位:
LocationCode : 發電站位置代碼
DateTime : 時間
WindSpeed(m/s) : 風速
Pressure(hpa) : 氣壓
Temperature(°C) : 溫度
Humidity(%) : 濕度
Sunlight(Lux) : 陽光照射強度
Power(mW) : 發電量(目標值)
模型架構
將目標預測任務以日為單位,切分成兩百個子問題(一天視為一個問題),並建立「目標時間和站點-運轉中發電站」字典。
我們透過篩選目標發電站與預測日期同時運轉的其他發電站,取得其歷史資料的交集。將目標發電站的發電量視為標籤值,並將預測日期同時運轉的其他發電站的相關資料作為特徵,構建模型訓練資料集。
我們為每個目標發電站與目標日期中運轉的發電站建立隨機森林模型,並將預測輸出通過 Softmax 層,根據模型 MAE 分配權重,將預測發電量進行加權聚合。
以上流程將分別對兩百個子問題逐一進行,並將每個迭代出的預測值進行串接,生成最終的輸出檔案。
我們以目標發電站的發電量為標籤,利用同時也在運轉的另一發電站其他特徵進行訓練,建置出一由兩成對的發電站資料訓練而成的隨機森林模型。
在合併各隨機森林模型時,我們引入 softmax layer 為各模型預測值加上權重,一模型的 MAE 愈小,將給其愈大的權重值。換句話說,我們期待能由此提升誤差較小的模型之影響力,同時亦想保留由其他發電站特徵訓練出的模型所挾帶的資訊。
超參數分析
在聚合預測值的 Softmax 層中(公式如下):
我們使用 Beta 值來調整模型間的權重影響力
簡單來說較大的 Beta 值會使 MAE 較小的模型有更大的權重,而 MAE 較大的模型效果會被稀釋。
發現 beta 約在 0.12~0.13 時能使模型有更優秀的表現,這是因為此時的權重分配適度強化了 MAE 較低的模型,而未過度削弱 MAE 較高的模型。
但因時間問題,我們最終選擇 beta = 0.1 作為最終模型的超參數。未能上載beta = 0.12~0.13的成績。
程式碼
- 作業系統:Ubuntu 18.04.6LTS
- 程式語言:Python 3.9+
pip install -r requirements.txtcd BlaBlaBlazzz python run.py
本隊伍於此次比賽期間,撰寫程式時,部分經由 ChatGPT 協助除錯。