neupy 时间序列信号处理

来源:互联网 发布:lol物品数据库 编辑:程序博客网 时间:2024/06/04 18:21

neupy 时间序列信号处理

neupy 时间序列信号处理。在Python神经网络模块界,neupy 可能不算知名,但是它确实比较好用,设计简单直观,容易上手。

# -*- coding: utf-8 -*-import numpy as npfrom sklearn.model_selection import train_test_splitfrom neupy import algorithms, estimators, environment# 只是自己定义的包,用来输入基金数据import finance.fundimport pytseriesenvironment.reproducible()# input data# 读者要用这段代码,需要自己获得时间序列数据,然后把时间序列转换成训练样本。fd = finance.fund.Fund.load('161226',500)data = fd['累计净值'].values[::-1]# data = np.sin(np.linspace(0,10,300)) # 另一个例子# 移动均值pytseries.TimeSeries([np.mean(data[k:k+order]) for k in range(len(data)-order+1)])ts = pytseries.TimeSeries(data)step = 30# generate samples for training from the sequencedatax, datat = ts.generate_Xy(step=step, style='row')x_train, x_test, y_train, y_test = train_test_split(datax, datat, train_size=0.99)# construct grnngrnnet = algorithms.GRNN()grnnet.train(x_train, y_train)back = 0data0 = ts[-step:][np.newaxis,:]ys = grnnet.predict(data0)y = ys.copy()for _ in range(50):    data0 = np.hstack((data0[:,1:], y))    y = grnnet.predict(data0)    ys = np.vstack((ys, y))import matplotlib.pyplot as pltplt.plot(ts.values[step:], 'o', color='blue')datay = grnnet.predict(datax)# plt.plot(y, '*', color='blue')plt.plot(np.vstack((datay, ys)), color='red')error = estimators.rmsle(datat, datay)plt.title("CODE: %s, GRNN RMSLE = %.4f"%(fd.code, error))plt.show()

某基金累计净值预测

原创粉丝点击