#-*- coding: utf-8 -*-
import os
import sys
import time
import numpy as np
from keras.models import Sequential
from keras.models import load_model
from numpy import newaxis
import matplotlib.pyplot as plt
from keras.layers import LSTM,Dense,Activation,Dropout
reload(sys)
sys.setdefaultencoding('utf-8')
def load_data():
data = open('data.txt', 'r').read()
data=data.split('\n')
sequence_length = 50
result = []
for index in range(len(data) - sequence_length):
result.append(data[index: index + sequence_length+1])
print np.shape(result)
result = np.array(result)
row = int(round(0.9 * result.shape[0]))
train = result[:row, :]
np.random.shuffle(train)
x_train = train[:, :-1]
y_train = train[:, -1]
x_test = result[row:, :-1]
y_test = result[row:, -1]
x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], 1))
x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], 1))
return x_train, y_train, x_test, y_test
def build_model(layers=[1, 50, 100, 1]):
model = Sequential()
model.add(LSTM(
input_shape=(50,1),
units=layers[1],
return_sequences=True))
model.add(Dropout(0.2))
model.add(LSTM(
units=layers[2],
return_sequences=False))
model.add(Dropout(0.2))
model.add(Dense(
units=layers[3]))
model.add(Activation("linear"))
start = time.time()
model.compile(loss="mse", optimizer="rmsprop")
print "Compilation Time : ", time.time() - start
return model
def predict_point_by_point(model, data):
#直接对测试数据进行预测
predicted = model.predict(data)
predicted = np.reshape(predicted, (predicted.size,))
return predicted
def predict_sequence_full(model, data, window_size):
#将每次新预测的值作为最后一个,插入到下一个预测队列中
curr_frame = data[0]
predicted = []
for i in range(len(data)):
predicted.append(model.predict(curr_frame[newaxis,:,:])[0,0])
curr_frame = curr_frame[1:]
curr_frame = np.insert(curr_frame, window_size-2, predicted[-1], axis=0)
return predicted
def predict_sequences_multiple(model, data, window_size, prediction_len):
#每prediction_len步后重新获取初始预测数据,每prediction_len内将本次预测插入预测数据作为下一次预测的数据
prediction_seqs = []
for i in range(int(len(data)/prediction_len)):
curr_frame = data[i*prediction_len]
predicted = []
for j in range(prediction_len):
predicted.append(model.predict(curr_frame[newaxis,:,:])[0,0])
curr_frame = curr_frame[1:]
curr_frame = np.insert(curr_frame, window_size-2, predicted[-1], axis=0)
prediction_seqs.append(predicted)
return prediction_seqs
def plot_results(predicted_data, true_data):
fig = plt.figure(facecolor='white')
ax = fig.add_subplot(111)
ax.plot(true_data, label='True Data')
plt.plot(predicted_data, label='Prediction')
plt.legend()
plt.show()
if __name__=='__main__':
epochs = 5
seq_len = 50
print 'Loading data... '
X_train, y_train, X_test, y_test = load_data()
print '\nData Loaded. Compiling...\n'
model = build_model([1, 50, 100, 1])
model.fit(
X_train,
y_train,
batch_size=512,
epochs=epochs,
validation_split=0.05)
# model.save('./lstm_time_series.model')
# model=load_model('./lstm_time_series.model')
predicted = predict_point_by_point(model, X_test)
sub=np.array(predicted).astype('float64')-np.array(y_test).astype('float64')
print np.sqrt(np.sum(map(lambda x:x**2,sub)))
plot_results(predicted,y_test)
相关推荐
MATLAB实现基于SCA-LSTM正弦余弦算法(SCA)结合长短期记忆网络(LSTM)进行时间序列预测的详细项目实例
MATLAB实现SCA-LSTM时间序列预测项目摘要 本项目提出了一种基于正弦余弦算法(SCA)优化的长短期记忆网络(LSTM)模型(SCA-LSTM)用于时间序列预测。该方法融合了智能优化算法与深度学习的优势,通过SCA全局搜索LSTM关键超参数,克服了传统梯度下降方法易陷入局部最优的缺陷。项目在MATLAB环境下实现了完整工作流程,包括数据预处理、SCA参数优化、LSTM模型训练和预测评估。实验结果表明,该方法在电力负荷、金融数据等多种时间序列上具有更高的预测精度和稳定性。项目创新性地设计了振幅递减机制
LSTM滑窗-预测(二)
import os import time import warnings import numpy as np from numpy import newaxis from keras.layers.core import Dense, Activation, Dropout from keras.layers.recurrent import LSTM from keras.models im...
MATLAB实现基于AOA-LSTM算术优化算法(AOA)优化长短期记忆网络(LSTM)进行时间序列预测的详细项目实例
本项目提出了一种基于算术优化算法(AOA)优化长短期记忆网络(LSTM)的时间序列预测方法。通过AOA算法自动调整LSTM的关键超参数(如隐藏单元数、学习率、dropout率等),有效提升了模型的预测精度和泛化能力。项目在MATLAB环境下实现完整流程,包括数据预处理、AOA-LSTM模型训练、预测和性能评估,并设计了可视化GUI界面。实验结果表明,该方法能够准确预测金融市场、工业设备监测等领域的时间序列数据,具有较高的工程应用价值。项目创新性地融合了群体智能优化算法与深度学习技术,为时间序列分析提供了高效
基于RNN的时间序列预测
1. 这是整个项目的文件结构 2. 配置文件 config.py # data_provider: data_power_consumption path_to_dataset = '../data/household_power_consumption.txt' sequence_length = 50 ratio= 0.5 epochs = 1 save_path = "../model...
Python实现基于VMD-LSTM变分模态分解(VMD)结合长短期记忆网络(LSTM)进行时间序列预测的详细项目实例
本项目提出了一种基于变分模态分解(VMD)和长短期记忆网络(LSTM)的混合时间序列预测方法。主要内容包括: 创新性地结合VMD信号分解技术和LSTM深度学习模型,实现对复杂非平稳时间序列的高精度预测。VMD将原始信号自适应分解为多个模态,LSTM分别学习各模态时序特征。 建立了完整的预测流程:数据预处理→VMD分解→模态LSTM建模→预测结果融合。采用模块化设计,包含数据处理、模型训练、评估可视化等功能模块。 项目实现了一个交互式GUI系统,支持参数设置、模型训练、预测评估和结果导出。通过多种指标和可视化
MATLAB实现基于MIC-LSTM最大信息系数(MIC)结合长短期记忆网络(LSTM)进行时间序列预测的详细项目实例
本项目基于最大信息系数(MIC)与长短期记忆网络(LSTM)相结合,构建了一套高效的时间序列预测系统。通过MIC筛选与目标变量强相关的特征,显著提升了LSTM模型的预测精度和训练效率。系统在MATLAB平台实现了完整流程,包括数据预处理、特征筛选、模型训练和预测评估,并配备了可视化界面和多维度性能指标。 主要创新点包括: 深度融合MIC特征选择与LSTM时序建模能力 设计多层LSTM架构优化长期依赖捕捉 开发高效的非线性特征筛选机制 提供全面的模型评估体系和可视化工具 项目适用于金融预测、工业监测、环境分析
对LSTM中间变量形状shape的理解, 附keras中LSTM的各个变量的shape理解
假设输入的shape是[bs, length, d], bs是批数量, length是预定义的最大序列长度, d是序列中每个step的维度(对于图像序列,可以理解为每一帧的特征向量维度). 下面说对于bs中1个样本的情况, 也就是shape为[1, length, d] LSTM(或者RNN)有多个cell, 1个cell对应1个step(1个时刻的状态), 这些cell之间的网络层是共享的, ...
【Matlab光伏功率预测】基于LSTM长短期记忆网络的光伏功率时间序列预测(附MATLAB代码)
基于LSTM长短期记忆网络的光伏功率时间序列预测(附MATLAB代码)
深度学习之LSTM时间序列预测
LSTM(long short-term memory,LSTM):长短时记忆网络,是循环神经网络(recurrent neural network,RNN)的一个重要结构,循环神经的主要用途是处理和预测序列数据。全连接神经网络(感知机,BP神经网络,RBF 神经网络等)或卷积神经网络模型中,网络结构都是从输入层到隐含层再到输出层,层与层之间是全连接或部分连接,每层节点之间是无连接的。然而循环神经...
【回归预测-Lstm预测】基于长短期记忆网络LSTM实现电价时间序列单步预测附matlab代码
时间序列数据往往反映了某个事件发展的规律,蕴含着丰富的潜在信息。长短期记忆(LSTM)神经网络由于其网络结构的特殊性可以储存信息,解决长期依赖问题,常被用于时间序列预测。对LSTM的研究有利于高效挖掘出时序数据中的重要信息,对社会、经济等各个方面的发展均有着重要的影响。智能优化算法。
DeepSeek绝了!3分钟生成PPT,专治“五彩斑斓的黑“!!(保姆教程)
DeepSeek绝了!3分钟生成PPT,专治"五彩斑斓的黑"!!(保姆教程)
时间序列预测——LSTM模型(附代码实现)
长短时记忆网络( Long short-term memory,LSTM )是一种循环神经网络 (Recurrent neural network, RNN)的特殊变体。
MATLAB与STK互联23:卫星对象操作(14)—仿真分析案例1,建立8个地面站,分析对卫星的可见性
学习到这里,我们有必要做个仿真分析案例,把之前我们学习的零散知识点串起来,看一下在真实的分析中怎么应用。 分析要求:建立8个地面站,分析每个地面站对某个轨道高度500km、倾角60°圆轨道的卫星,1天内的可见次数、可见弧长以及可见弧段间隔列表。 基本约束:地面站仰角8°~90°,作用距离<2000km,太阳矢量与地面站到卫星视线夹角不小于15°,可见弧段应大于30s。地面站站址可随机生成,但要求在南北纬50°范围内。 下面上代码: uiap = actxserver(‘STK11.application’)
基于ANN和LSTM的时间序列预测
如何使用python开发一个基于Keras+ANN+LSTM的时间序列预测程序? 本文的目的是解释人工神经网络(ANN)和长期短期记忆递归神经网络(LSTM RNN),使您能够在现实生活中使用它们,并为预测时间序列构建最简单的ANN和LSTM递归神经网络。 数据 股票代码VIX是著名的芝加哥期权交易所波动率指数,它是衡量S&P500(标准普尔500)指数期权并预示股市波动预期的一种流...
Linux实战:rMATS可变剪切分析从零到一,避坑指南与结果深度解析
本文详细介绍了在Linux系统上从零开始部署rMATS进行可变剪切分析的完整流程,包括环境搭建、安装避坑指南、参数优化及结果解读。特别针对gfortran依赖、数学库配置等常见问题提供解决方案,并深入解析JC与JCEC结果的差异及可视化技巧,帮助生物信息学研究者高效完成可变剪切分析。
光学系统设计:波段、光源、光纤与探测器匹配指南
在光学测量和光纤通信系统中,波段、光源、光纤和探测器的匹配关系是系统设计的核心基础。波段指电磁波谱中的特定波长范围,光源负责产生特定波长的光信号,光纤作为传输介质需要与波长匹配以降低损耗,探测器则负责将光信号转换为电信号。理解各组件的光谱特性对于系统性能至关重要,例如在850nm短波长多模光纤系统中,VCSEL激光器与PIN光电二极管的组合能提供最佳性价比。典型应用场景包括生物医学成像、光纤通信和气体传感,其中光谱重叠优化、模场直径匹配和偏振特性协调是关键技术要点。通过实测数据对比不同组合的传输性能,可以为
时间序列预测股票数据—以LSTM模型为例
时间序列是按照一定时间间隔排列的数据,时间间隔可以是任意时间单位,通过对时间序列的分析,我们可以探寻到其中的现象以及变化规律,并将这些信息用于预测。这就需要一系列的模型,用于将原始时间序列数据放进模型中进行训练,并用训练好的时间序列模型来预测未知的时间序列。提供的数据:“中国平安”2016-2018年股票数据,背景为平安保险集团。
HackRF实战:用Portapack扩展板玩转GPS信号模拟(附固件刷写教程)
本文详细介绍了如何使用HackRF与Portapack扩展板进行GPS信号模拟,包括固件刷写、信号生成与发射配置等实战操作。通过专业工具和优化技巧,读者可以掌握软件无线电的高级应用,解决手机定位难题,同时强调安全合规使用的重要性。
时序预测 | MATLAB实现基于LSTM-AdaBoost长短期记忆网络结合AdaBoost时间序列预测 替换数据可以直接使用,注释清楚,适合新手
在金融市场、气象预测、股票走势等领域,时间序列预测一直是一个重要的问题。随着人工智能和机器学习的发展,越来越多的方法被应用于时间序列预测中。本文将介绍一种基于长短期记忆网络(LSTM)结合AdaBoost的时间序列预测方法。长短期记忆网络是一种特殊的循环神经网络,它在处理时间序列数据时表现出色。LSTM网络能够学习长期依赖关系,对于时间序列数据中的趋势和周期性变化有着较好的表现。然而,单独的LSTM网络可能无法充分捕捉时间序列数据中的复杂特征,因此需要结合其他方法进行预测。
智慧矿山无人机空地一体化解决方案
未来,随着技术的不断进步和应用场景的不断拓展,智慧矿山无人机空地一体化解决方案将在矿业领域发挥更加重要的作用,为矿山的可持续发展提供更加有力的保障。该系统能够实现矿山的全方位、全天候监测与管理,提升矿山生产效率,降低安全风险,并为矿山的可持续发展提供有力支持。智慧矿山无人机空地一体化解决方案是当前矿业领域技术创新的重要方向,旨在通过集成无人机技术、物联网、大数据、人工智能等先进技术,实现矿山的智能化、高效化和安全化运营。在矿山爆破、挖掘等危险作业中,无人机可进行远程监控和指挥,降低人员安全风险。
多准则决策方法体系(AHP、熵权法、随机森林、加权线性法、TOPSIS、模糊综合评价)
多准则决策方法体系的基础,是由三大赋权方法和三大评价框架构成的 “3+3” 核心模块。赋权方法聚焦于准则重要性的量化,评价框架则专注于多准则信息的综合集成,二者共同覆盖了从 “确定权重” 到 “输出结果” 的全流程决策需求。
时间序列预测 | Matlab基于长短期记忆网络(LSTM)的时间序列预测
时间序列预测是一项重要的任务,它在许多领域中具有广泛的应用,如金融、气象、交通等。准确地预测未来的时间序列趋势对于决策制定和规划具有重要意义。近年来,深度学习技术在时间序列预测中取得了显著的进展,其中长短期记忆网络(LSTM)成为了一种非常有效的方法。LSTM是一种递归神经网络(RNN)的变体,专门用于处理具有长期依赖关系的序列数据。相比于传统的RNN,LSTM能够更好地捕捉时间序列中的长期依赖关系,并且能够避免梯度消失或爆炸的问题。这使得LSTM成为了时间序列预测中的一种首选方法。
微信小程序推广策略,打开小程序领域流量大门
本文旨在为小程序开发者、运营者和企业主提供一套完整的微信小程序推广策略体系,帮助他们在竞争激烈的小程序生态中获得更多流量和用户。内容涵盖从0到1的冷启动策略,到成熟期的增长技巧。本文将首先介绍小程序的基础推广设置,然后深入探讨各种流量获取渠道,接着分析数据驱动的优化方法,最后展望未来发展趋势。小程序:无需下载安装即可使用的应用,运行在微信生态内:独立访客数:页面浏览量转化率:完成目标行为的用户比例留存率:用户在一定时间后仍活跃的比例自然流量获取:通过优化搜索、完善资料等方式获得基础流量社交裂变。
【Matlab股票价格预测】基于LSTM长短期记忆网络的股票价格时间序列预测(附MATLAB代码)
股票价格预测是金融领域中一项极具挑战性的任务。随着人工智能和机器学习技术的不断发展,基于深度学习的股票价格预测模型变得越来越受到关注。在这篇博文中,我们将探讨一种基于LSTM双向长短期记忆网络的股票价格时间序列预测模型。股票价格预测是指利用历史股票价格和相关数据,通过建立数学模型,来预测未来股票价格的变化趋势。这对于投资者和金融机构来说具有重要意义,因为准确的股票价格预测可以帮助他们做出更明智的投资决策。
C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片
基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正
win10 跳过U8环境检测的IE WebControls.rar
win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。
WOA-LSTM时序预测 | MATLAB实现WOA-LSTM鲸鱼算法优化长短期记忆网络时间序列预测
长短期记忆网络 (LSTM) 作为一种有效的循环神经网络,在时间序列预测领域展现出强大的能力。然而,LSTM 网络的性能高度依赖于其超参数的设置,而这些参数的优化往往需要耗费大量的时间和精力。本文提出了一种基于鲸鱼优化算法 (WOA) 优化的 LSTM 时间序列预测模型 (WOA-LSTM)。该模型利用 WOA 算法对 LSTM 网络的超参数进行全局寻优,从而有效提升模型的预测精度和泛化能力。
jre9下载 jdk9
(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】
1649



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



