上一篇博客针对prophet包上传了自己的代码,今天这篇博客我跟大家讲述一下prophet包工作原理,以及我对该模型做的一些优化。
上次使用prophet包做项目主要分为了四个部分,分别是读取数据,设定节假日(奇异点),训练模型,输出自定义结果这四部分,现在我就上个项目做分别讲解。
一、初始化:装载模型包并读取数据
library(prophet)
library(dplyr)
library(dplyr)
#初始化数据
all<-read.csv('d:/Rdata/zjd/ts/all.csv',na.string='NA',header=T)
qb30<-read.csv('d:/Rdata/zjd/ts/qb30.csv',na.string='NA',header=T)
history30n <- data.frame(ds = seq(as.Date('2016-01-01'), as.Date('2017-09-11'), by = 'd'), y = qb30$yn)
plot(history30n$ds,history30n$y)
plot(history30n$ds,history30n$y)
history45n <- data.frame(ds = seq(as.Date('2016-01-01'), as.Date('2017-09-11'), by = 'd'), y = qb45$yn)
读取数据这一部分就不用多说了,基本使用csv格式,最主要的一点是一定要保证是一列数据,并且如果是每天的数据,一定要设定好起始时间点,我的上一个版本是在生成数据集的时候设定时间,因每次都要逐条修改(因为金融产品的期数不同,还非常多),后来我直接用变量代替了,这样只用修改一次变量就行。代码如下:
alln<-read.csv('d:/Rdata/zjd/ts/qball.csv',na.string='NA',header=T)
start<-c('2017-01-01')
end<-c('2017-10-22')
# historyalln <- data.frame(ds = seq(as.Date('2017-01-01'), as.Date('2017-09-18'), by = 'd'), y = alln$yn)
history30 <- data.frame(ds = seq(as.Date(start), as.Date(end), by = 'd'), y = alln$y2031)
end<-c('2017-10-22')
# historyalln <- data.frame(ds = seq(as.Date('2017-01-01'), as.Date('2017-09-18'), by = 'd'), y = alln$yn)
history30 <- data.frame(ds = seq(as.Date(start), as.Date(end), by = 'd'), y = alln$y2031)
history45 <- data.frame(ds = seq(as.Date(start), as.Date(end), by = 'd'), y = alln$y4050)
二、设定节假日(数据奇异点)

最低0.47元/天 解锁文章
396

被折叠的 条评论
为什么被折叠?



