neupy 时间序列信号处理

neupy 时间序列信号处理

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

# -*- coding: utf-8 -*-
import numpy as np
from sklearn.model_selection import train_test_split
from neupy import algorithms, estimators, environment

# 只是自己定义的包,用来输入基金数据
import finance.fund
import pytseries

environment.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 sequence
datax, 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 grnn
grnnet = algorithms.GRNN()
grnnet.train(x_train, y_train)

back = 0
data0 = 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 plt

plt.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()

某基金累计净值预测

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值