标签: forecasting

用PyBrain神经网络预测时间序列数据

问题

我试图使用5年的连续历史数据来预测下一年的价值.

数据结构

我的输入数据input_04_08如下所示,其中第一列是一年中的某一天(1到365),第二列是记录的输入.

1,2
2,2
3,0
4,0
5,0
Run Code Online (Sandbox Code Playgroud)

我的输出数据output_04_08看起来像这样,是一列,在一年的那一天记录了输出.

27.6
28.9
0
0
0
Run Code Online (Sandbox Code Playgroud)

然后我将0到1之间的值标准化,以便给网络的第一个样本看起来像

Number of training patterns:  1825
Input and output dimensions:  2 1
First sample (input, target):
[ 0.00273973  0.04      ] [ 0.02185273]
Run Code Online (Sandbox Code Playgroud)

方法(S)

前馈网络

我在PyBrain中实现了以下代码

input_04_08 = numpy.loadtxt('./data/input_04_08.csv', delimiter=',')
input_09 = numpy.loadtxt('./data/input_09.csv', delimiter=',')
output_04_08 = numpy.loadtxt('./data/output_04_08.csv', delimiter=',')
output_09 = numpy.loadtxt('./data/output_09.csv', delimiter=',')

input_04_08 = input_04_08 / input_04_08.max(axis=0)
input_09 = input_09 / input_09.max(axis=0)
output_04_08 = output_04_08 / output_04_08.max(axis=0)
output_09 = output_09 / output_09.max(axis=0) …
Run Code Online (Sandbox Code Playgroud)

python neural-network forecasting pybrain lstm

8
推荐指数
1
解决办法
4508
查看次数

如何告诉先知不要预测负值

在 R 中使用 facebooks 'Prophet' 包进行预测。想知道是否有一种方法可以使用它,这样它就不会预测负值?

谢谢!

r forecasting

8
推荐指数
1
解决办法
7740
查看次数

带假期的每周预测

我使用Hyndman的forecast软件包tbats在每周级别上产生一些准确的预测,但我在假期时会出现重大错误.如何在模型中包含假期?此外,有证据表明Arima不适合我的每周数据.所以假期必须以非芳香的方式添加.

我见过两种解决方案.一个https://robjhyndman.com/hyndsight/dailydata/显示如何使用傅里叶项将假期添加为虚拟变量.问题是假变量采用1或0的形式.我知道不同的假期有不同的效果,1或0不会捕获.例如,黑色星期五与中国新年非常不同.

另一个解决方案是在https://robjhyndman.com/hyndsight/forecast7-part-2/,其中covariate nnetrchange用作auto.arima的替代品,带有季节性虚拟变量.问题是我没有看到如何编写R代码来输入我的假期.一个例子很有用.

r time-series forecasting

8
推荐指数
3
解决办法
1852
查看次数

.NET开发的未来:ASP.NET还是WPF/Silverlight/Winforms?

请原谅我提出一个主观问题,但我真的想知道.NET开发在不久的将来会走向何方?我们是否会看到更多的ASP.NET开发人员,还是会对Silverlight/WPF && WinForms开发人员有更多的需求?

.net forecasting

7
推荐指数
1
解决办法
7013
查看次数

时间序列建模与不规则数据

我目前正在开展一个宠物项目,从历史基础油价预测未来的基础油价格.数据是每周一次,但在价格缺失之间有一段时间.

我对使用完整数据建模时间序列有点不错,但是当涉及到不规则数据时,我学到的模型可能不适用.我是否使用xts类并以常规方式在R中继续使用ARIMA模型?

在建立预测未来价格的模型后,我想考虑原油价格波动,柴油利润率,汽车销售,经济增长等(多变量?)来提高准确性.有人可以说明如何以有效的方式实现这一目标吗?在我看来,它看起来像一个迷宫.

编辑:修剪数据:https : //docs.google.com/document/d/18pt4ulTpaVWQhVKn9XJHhQjvKwNI9uQystLL4WYinrY/edit

编码:

Mod.fit<-arima(Y,order =c(3,2,6), method ="ML")
Run Code Online (Sandbox Code Playgroud)

结果:警告消息:在日志(s2)中:生成NaN

这个警告会影响我的模型准确度吗?

由于缺少数据,我无法使用ACF和PACF.有没有更好的方法来选择模型?我使用AIC(Akaike的信息准则)来比较使用该代码的不同ARIMA模型.ARIMA(3,2,6)给出了最小的AIC.

编码:

AIC<-matrix(0,6,6)
for(p in 0:5)
for(q in 0:5)
{
mod.fit<-arima(Y,order=c(p,2,q))
AIC[p+1,q+1]<-mod.fit$aic
p
}
AIC
Run Code Online (Sandbox Code Playgroud)

结果:

              [,1]     [,2]     [,3]     [,4]     [,5]     [,6] 
    [1,] 1396.913 1328.481 1327.896 1328.350 1326.057 1325.063 
    [2,] 1343.925 1326.862 1328.321 1328.644 1325.239 1318.282 
    [3,] 1334.642 1328.013 1330.005 1327.304 1326.882 1314.239 
    [4,] 1336.393 1329.954 1324.114 1322.136 1323.567 1316.150 
    [5,] 1319.137 1321.030 1320.575 1321.287 1323.750 1316.815 
    [6,] 1321.135 1322.634 1320.115 1323.670 1325.649 1318.015
Run Code Online (Sandbox Code Playgroud)

modeling r time-series forecasting

7
推荐指数
1
解决办法
5166
查看次数

如何使用机器学习从python中预测一组给定的地理数据?

我正在分析一些地理数据,并尝试预测/预测下次发生的事件的时间和地理位置.数据按以下顺序排列(带样本数据)

Timestamp Latitude     Longitude   Event 
13307266  102.86400972 70.64039541 "Event A"
13311695  102.8082912  70.47394645 "Event A"
13314940  102.82240522 70.6308513  "Event A"
13318949  102.83402128 70.64103035 "Event A"
13334397  102.84726242 70.66790352 "Event A"

第一步是将其分为100个区域,以减少尺寸和复杂性.

 
Timestamp Zone 
13307266  47
13311695  65
13314940  51
13318949  46
13334397  26

下一步是进行时间序列分析,然后我在这里停留了2个月,阅读了大量文献并认为这些是我的选择*ARIMA(自动回归方法)*机器学习

我想利用机器学习来预测使用python,但无法弄清楚如何.特别是有任何特定于用例的python库/开源代码,我可以构建它.

编辑1:为了澄清,数据松散地依赖于过去的数据,但在一段时间内均匀分布.可视化数据的最佳方式是,想象由算法控制的N个代理,它们分配从网格中挑选资源的任务.资源是社会经济结构的功能,也很大程度上依赖于地理.它的" 算法 " 感兴趣,能够预测需求区和时间.

ps:对于像ARIMA这样的自回归模型,Python已经有了一个库http://pypi.python.org/pypi/statsmodels.

python numpy machine-learning forecasting scikit-learn

7
推荐指数
1
解决办法
9262
查看次数

skflow回归预测多个值

我正在尝试预测时间序列:给定50个先前的值,我想预测下5个值.

为此,我正在使用该skflow包(基于TensorFlow),这个问题与Github repo中提供Boston示例相对接近.

我的代码如下:

%matplotlib inline
import pandas as pd

import skflow
from sklearn import cross_validation, metrics
from sklearn import preprocessing

filepath = 'CSV/FILE.csv'
ts = pd.Series.from_csv(filepath)

nprev = 50
deltasuiv = 5

def load_data(data, n_prev = nprev, delta_suiv=deltasuiv):  

    docX, docY = [], []
    for i in range(len(data)-n_prev-delta_suiv):
        docX.append(np.array(data[i:i+n_prev]))
        docY.append(np.array(data[i+n_prev:i+n_prev+delta_suiv]))
    alsX = np.array(docX)
    alsY = np.array(docY)

    return alsX, alsY

X, y = load_data(ts.values) 
# Scale data to 0 mean and unit std dev.
scaler …
Run Code Online (Sandbox Code Playgroud)

python neural-network forecasting tensorflow skflow

7
推荐指数
1
解决办法
2112
查看次数

有没有办法从auto.arima强制季节性

随着forecast包,我有一个时间序列,我想?auto.arima自动选择订单,但我想强迫季节性.函数的默认值允许将seasonal参数设置为TRUE,但这只允许季节性选项而不是强制.

auto.arima(x, d=NA, D=NA, max.p=5, max.q=5,
     max.P=2, max.Q=2, max.order=5, max.d=2, max.D=1, 
     start.p=2, start.q=2, start.P=1, start.Q=1, 
     stationary=FALSE, seasonal=TRUE,
     ic=c("aicc", "aic", "bic"), stepwise=TRUE, trace=FALSE,
     approximation=(length(x)>100 | frequency(x)>12), xreg=NULL,
     test=c("kpss","adf","pp"), seasonal.test=c("ocsb","ch"),
     allowdrift=TRUE, allowmean=TRUE, lambda=NULL, biasadj=FALSE,
     parallel=FALSE, num.cores=2)
Run Code Online (Sandbox Code Playgroud)

r time-series forecasting

7
推荐指数
1
解决办法
5649
查看次数

如何使用深度学习模型进行时间序列预测?

我从机器上记录(m1, m2, so on)了 28 天的信号。(注意:每天的每个信号长度为 360)。

machine_num, day1, day2, ..., day28
m1, [12, 10, 5, 6, ...], [78, 85, 32, 12, ...], ..., [12, 12, 12, 12, ...]
m2, [2, 0, 5, 6, ...], [8, 5, 32, 12, ...], ..., [1, 1, 12, 12, ...]
...
m2000, [1, 1, 5, 6, ...], [79, 86, 3, 1, ...], ..., [1, 1, 12, 12, ...]
Run Code Online (Sandbox Code Playgroud)

我想预测未来3天每台机器的信号序列。即在day29, day30, day31. 不过,我没有为天的值293031。所以,我的计划如下使用 …

python time-series forecasting deep-learning lstm

7
推荐指数
1
解决办法
754
查看次数

tidyverts 中的分层建模/协调问题

我正在尝试按照Rob Hyndman 的 Rstudio.conf 研讨会的方式进行分层预测,但遇到了一些问题。这是我的代码:

library(dplyr)
library(tsibbledata)
library(tsibble)
library(fable)

aus_retail_2013_tr <- aus_retail %>%
    filter(Month <= yearmonth("2013 Dec"))
aus_retail_2013_vl <- aus_retail %>%
    filter(Month > yearmonth("2013 Dec"))

hmod <- aus_retail_2013_tr %>%
    aggregate_key(State*Industry, Turnover=sum(Turnover)) %>%
    model(ar=ARIMA(log(Turnover))) %>%
    reconcile(ar_adj=min_trace(ar))

fcasts_hmod <- forecast(hmod, aus_retail_2013_vl)

fcasts_hmod %>%
    filter(is_aggregated(Industry), State == "Victoria") %>%
    autoplot()
Run Code Online (Sandbox Code Playgroud)

该图的输出如下。

在此处输入图片说明

我的主要问题是:

  • 和解实际上似乎根本没有改变预测。图片表明arar_adj线是相同的。
  • 预测仅针对 2014 年至 2015 年的时间段,而我知道完整数据集到 2018 年。

我该如何解决这些问题?后一个可能是因为并非所有时间序列都涵盖整个时期,但我怎样才能reconcile不跳过缺失的时期?

这是 dplyr 0.8.5、fable 0.2.0、fabletools 0.1.3 和 tsibble 0.8.6。我在 Ubuntu/R 3.6.3 和 Windows 10/R 4.0.0 …

r forecasting fable-r tidyverts

7
推荐指数
1
解决办法
474
查看次数