-------------
AI算力陷阱,Prophet工程案例实测【zw,2019-4-23 ps 】 现在说 ai交易 全部是骗子 我是用量化回测 辅助分析
在和网友互动时,我经常说,现在AI、神经网络在金融量化方面的应用,还处于黑暗摸索阶段。 这其中,最重要的原因就是算力陷阱。 一个alphaGo,需要的参数超过有一亿个,而且围棋是受限模型。 最近,逼着使用Facebook旗下的Prophet,对dash-usdt数字货币,做了个简单测试。 因为Prophet0.4安装冲突,我们使用的是对标替代产品pmprophet,这两个语法基本完全相同,pmprophet理论上更加灵活、强大。 因为是简单的案例,所以没有采用Prophet进行复核,有兴趣的网友可以自己测试。 这个案例,基于dash-usdt交易对的45天15分钟分时数据(20190301–20190414),才4306条简化数据,就两个字段:tim+close 一个最简单的Prophet自动拟合模型,建模需要11个小时,i7-cpu平台 CBF2018不管如何,是个已经实现的工程案例,希望CBF2018这个案例,能够给AI智能投顾的应用带来一些启发。 文后是对应的输出信息,核心是这一条: INFO:pymc3:>Metropolis: [sigma_model]
0%| | 1/2500 [00:15<11:05:24, 15.98s/it] 建模需要11个小时
案例输出信息: df 4306
ds y
140745 2019-03-01 00:00:00 4.420
140746 2019-03-01 00:15:00 4.420
140747 2019-03-01 00:30:00 4.410
140748 2019-03-01 00:45:00 4.410
140749 2019-03-01 01:00:00 4.410
140750 2019-03-01 01:15:00 4.410
140751 2019-03-01 01:30:00 4.410
140752 2019-03-01 01:45:00 4.410
140753 2019-03-01 02:00:00 4.410
140754 2019-03-01 02:15:00 4.410 ds y
145041 2019-04-14 18:00:00 4.790
145042 2019-04-14 18:15:00 4.790
145043 2019-04-14 18:30:00 4.790
145044 2019-04-14 18:45:00 4.790
145045 2019-04-14 19:00:00 4.790
145046 2019-04-14 19:15:00 4.800
145047 2019-04-14 19:30:00 4.800
145048 2019-04-14 19:45:00 4.800
145049 2019-04-14 20:00:00 4.800
145050 2019-04-14 20:15:00 4.790 len-DF: 4306
WARNING:root:Note that the automatic changepoint feature is experimental
Sequential sampling (1 chains in 1 job)
INFO:pymc3:Sequential sampling (1 chains in 1 job)
CompoundStep
INFO:pymc3:CompoundStep
>Metropolis:
INFO:pymc3:>Metropolis:
>Metropolis: [intercept_model]
INFO:pymc3:>Metropolis: [intercept_model]
>Metropolis: [cgpt_inner]
INFO:pymc3:>Metropolis: [cgpt_inner]
>Metropolis: [beta]
INFO:pymc3:>Metropolis: [beta]
>Metropolis: [alpha]
INFO:pymc3:>Metropolis: [alpha]
>Metropolis: [growth_model]
INFO:pymc3:>Metropolis: [growth_model]
>Metropolis: [sigma_model]
INFO:pymc3:>Metropolis: [sigma_model]
0%| | 1/2500 [00:15<11:05:24, 15.98s/it] 核心代码很短,参见最后: #
tim0,tim9='2019-03-01','2019-04-15'
fss=rs0+'dashusdt_poloniex.csv'
xdf = pd.read_csv(fss, index_col=False)
xdf.sort_values('tim',ascending=True,inplace=True) #True:正序
xdf=tq.df_kcut8tim(xdf,tim0,tim9,ksgn='tim')
#tq.prDF(xdf,'xdf')
#
df=pd.DataFrame()
df['ds']=xdf['tim']
df['y']=np.log(xdf['close'])
#df = df.head(180)
tq.prDF(df,'df')
# m = PMProphet(df, auto_changepoints=True, growth=True, intercept=True, name='model')
m.fit(method=Sampler.METROPOLIS, draws=2000,chains=1)
df9 = m.predict(60, alpha=0.2, include_history=True, plot=True)
m.plot_components(intercept=False,)
tq.prDF(df9,'df9')
df9.to_csv('tmp\ddf090.csv')
|