-
Notifications
You must be signed in to change notification settings - Fork 14
/
Copy pathREADME.Rmd
88 lines (60 loc) · 4.47 KB
/
README.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
---
title: "光伏短期功率预测大赛"
subtitle: "项目结稿"
author: "李家翔,武睿琦,靳晓松"
date: "`r Sys.Date()`"
output: github_document
bibliography: [../imp_rmd/refs/add.bib]
---
<!-- README.md is generated from README.Rmd. Please edit that file -->
```{r setup, include = FALSE}
knitr::opts_chunk$set(
collapse = TRUE,
echo=FALSE,
comment = "#>"
)
```
# 模型融合
我们尝试的模型融合有
1. 神经网络模型
1. Xgboost模型
1. **时间序列模型**
1. **基于概率模型的融合**
# 结论
本次比赛,我们主要的实现方式是神经网络模型,最终的排名是**52**名。我们的特征工程涵盖了时间相关变量、平方项、立方项、比率、滚动SMA、滚动方差、PCA主成分、实发辐射的测试集预测值、NMF衍生变量、prophet等,而模型融合则涵盖了神经网络模型、Xgboost模型、时间序列模型以及基于概率模型的融合。
# 光伏短期功率预测大赛
这个项目是参加国能日新的[光伏短期功率预测大赛](http://www.dcjingsai.com/common/cmpt/%E5%9B%BD%E8%83%BD%E6%97%A5%E6%96%B0%E5%85%89%E4%BC%8F%E5%8A%9F%E7%8E%87%E9%A2%84%E6%B5%8B%E5%A4%A7%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html)的结稿。我们的团队名为 `PHotoVoltaic (phv)`,最终排名是**52**名。
在这个比赛中,我们尝试了一系列的特征工程和模型融合,以提高模型的性能。在特征工程方面,我们加入了时间相关变量、平方项、立方项、比率、滚动SMA、滚动方差、PCA主成分、实发辐射的测试集预测值、NMF衍生变量、prophet等;在模型融合方面,我们尝试了神经网络模型、Xgboost模型、时间序列模型以及基于概率模型的融合。
我们的实现方式主要是神经网络模型,具体见Python代码`wushen.ipynb`,而Xgboost的融合则见R代码`note.Rmd`。我们也使用了`trelliscope`来进行EDA,交互方便,但是不适合上线部署,不便于交流。
最终,我们的模型达到了较好的效果,跑出了**52**名的排名。
```{r}
knitr::include_graphics('pic/rank.png')
```
# EDA
使用`trelliscope`,交互方便,但是不适合上线部署,不便于交流。
```{r echo=FALSE, results='asis'}
index_path <- fs::dir_ls(recurse = TRUE, regexp = "index.html")
index_name <- dirname(index_path)
index_path <- file.path("https://jiaxiangbu.github.io/phv/",index_path)
glue::glue("1. [{index_name}]({index_path})")
```
# 后续可以做的空间
## 深度学习的方法
1. 可以采用空洞卷积的方法[@oord2016wavenet;@oord2016conditional;@sprangers2022parameter;@kechyn2018sales],这种方法可以用于一些其他的应用,比如音频的频谱、长时间序列等。
## XGBoost
1. 由于比赛过程中主办方修改了数据集和评价函数,我们无法复现原来的历史预测,因此,我们没有将神经网络和XGboost进行融合,这也是我们下一次比赛需要注意的问题。
1. 我们可以采用更加合理的窗口特征提取方式[@elsayed2021we],以及考虑多任务的框架,如MT-GBT[@ying2022mt],来提高模型的性能。
## EDA和特征工程
1. 我们需要做好EDA,观察被解释变量关于时间的波动,查看异常值。
1. 在特征工程的部分,为了拟合非线性关系,我们可以使用更高效的Ramsey’s RESET test,详见[Github](https://github.com/JiaxiangBU/learn_fe)。
1. 我们也可以参考[预测值迁移](https://jiaxiangbu.github.io/channel_valuation/about)的问题,发现模型可能存在[欠拟合](https://jiaxiangbu.github.io/learn_fe/)的情况,并采取[模型校正部分](https://jiaxiangbu.github.io/train_model/learning_notes.html)的方法来解决。
1. 因为有四个光伏板,并且都是时间序列,所以这里可以采用LSTM训练,参考[6神经网络应用](https://jiaxiangbu.github.io/learn_longitudinal_analysis/analysis/introduction-panel-data.html)。
1. 既然考虑了PCA作为聚类特征,那么应该考虑DTW[@salvador2007toward;@izakian2015fuzzy]和TS-PCA[@chang2018principal]。
1. 既然考虑了prophet,那么应该使用prophet的NNs训练[@triebe2021neuralprophet]。
***
<h4 align="center">**Code of Conduct**</h4>
<h6 align="center">Please note that the 'phv' project is released with a
[Contributor Code of Conduct](CODE_OF_CONDUCT.md).
By contributing to this project, you agree to abide by its terms.</h6>
<h4 align="center">**License**</h4>
<h6 align="center">MIT © [Jiaxiang Li;Ruiqi Wu;Xiaosong Jin](LICENSE.md)</h6>