IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【笔记】【LSTM算法】简单的时序预测 -> 正文阅读

[人工智能]【笔记】【LSTM算法】简单的时序预测

数据介绍

? ? ? ? 数据是是一个单列数据,只保留六个数据作为测试集,采用单步预测,一个预测一个,数据集部分如下所示

data1=pd.read_csv('Dinghang.csv', usecols=[1])   #读取第二列数据
dataset = data1.values
dataset = dataset.astype('float32')

?LSTM模型介绍

LSTM的介绍

#数据标准化
scaler=sklearn.preprocessing.MinMaxScaler(feature_range=(0,1))        #将数据缩放至(0,1),以供使用
scaler_data=scaler.fit_transform(dataset)

?比较拉跨的分隔数据

#划分数据集,多少作为训练集,所少作为测试集

train=scaler_data[0:138]      #训练集
test=scaler_data[138:144]       #测试集
print(len(train),len(test))

分隔好数据后要对数据进行构造,使其能够在模型中使用

f creat_data(data):              #将数据构造成两列
    dataX=[]
    dataY=[]
    for i in range(len(data)-2):   #这里的look_step是1,预测一步,再减一是为了避免出现bug
        a=data[i:i+1,0]
        dataX.append(a)
        dataY.append(data[i+1,0])
    return np.array(dataX),np.array(dataY)

trainX,trainY=creat_data(train)            
testX,testY=creat_data(test)

trainX,testX是大矩阵中套了好多小矩阵?

一般情况下构造的数据为[测试样本,时间步长,预测],[sample,times_step,features]

即训练的样本,look_steps,滑动窗口的大小,要预测的数据个数

trainX = np.reshape(trainX, (trainX.shape[0], 1, trainX.shape[1]))
testX = np.reshape(testX, (testX.shape[0], 1, testX.shape[1]))
model=Sequential()
model.add(LSTM(4, input_shape=(1, 1)))        #input_shape(time_step,预测个数)
model.add(Dense(1))              
model.compile(loss='MAE', optimizer='adam')     #使用MAE评价,优化算法
model.fit(trainX, trainY, epochs=100, batch_size=1, verbose=0)   #batch_size定义每次训练的批量数(整数型),verbose=2为每个epoch输出一行记录

#对数据预测
trainPredict = model.predict(trainX)
testPredict = model.predict(testX)

?对数据进行反向归一化处理,并以mae作为评价指标,评估预测模型。

#反转预测
trainPredict = scaler.inverse_transform(trainPredict)      #将标准化的数据转换为原始的数据
#trainY = scaler.inverse_transform([trainY])
testPredict = scaler.inverse_transform(testPredict)

testY = scaler.inverse_transform([testY])
testScore=mean_absolute_error(testY[0], testPredict[:,0])
# mae_test=np.sum(np.absolute(testPredict-testY))/4
print(testScore)

?

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-28 09:00:22  更:2021-08-28 09:00:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/1 12:29:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码