-
大小: 5KB文件類型: .py金幣: 1下載: 1 次發(fā)布日期: 2021-05-13
- 語言: Python
- 標(biāo)簽: LSTM??一維預(yù)測(cè)??
資源簡(jiǎn)介
采用LSTM循環(huán)神經(jīng)網(wǎng)絡(luò)對(duì)時(shí)序數(shù)據(jù)進(jìn)行預(yù)測(cè),根據(jù)評(píng)價(jià)指標(biāo)對(duì)測(cè)試集進(jìn)行誤差計(jì)算,具有較好的預(yù)測(cè)精度
代碼片段和文件信息
#?-*-?coding:?utf-8?-*-
“““
Created?on?Fri?Nov?17?11:09:14?2017
@author:?Administrator
“““
import?time
import?numpy
from?math?import?sqrt
from?numpy?import?concatenate
from?matplotlib?import?pyplot
from?pandas?import?read_csv
from?pandas?import?Dataframe
from?pandas?import?concat
from?sklearn.preprocessing?import?MinMaxScaler
from?sklearn.preprocessing?import?LabelEncoder
from?sklearn.metrics?import?mean_squared_error
from?keras.models?import?Sequential
from?keras.layers?import?DenseActivationdropout
from?keras.layers?import?LSTM
#?convert?series?to?supervised?learning?將序列轉(zhuǎn)換成監(jiān)督學(xué)習(xí)問題
def?series_to_supervised(data?n_in=1?n_out=1?dropnan=True):
????n_vars?=?1?if?type(data)?is?list?else?data.shape[1]
????df?=?Dataframe(data)
????cols?names?=?list()?list()
????#?input?sequence?(t-n?...?t-1)
????for?i?in?range(n_in?0?-1):
????????cols.append(df.shift(i))
????????names?+=?[(‘var%d(t-%d)‘?%?(j?+?1?i))?for?j?in?range(n_vars)]
????#?forecast?sequence?(t?t+1?...?t+n)
????for?i?in?range(0?n_out):
????????cols.append(df.shift(-i))
????????if?i?==?0:
????????????names?+=?[(‘var%d(t)‘?%?(j?+?1))?for?j?in?range(n_vars)]
????????else:
????????????names?+=?[(‘var%d(t+%d)‘?%?(j?+?1?i))?for?j?in?range(n_vars)]
????#?put?it?all?together
????agg?=?concat(cols?axis=1)
????agg.columns?=?names
????#?drop?rows?with?NaN?values
????if?dropnan:
????????agg.dropna(inplace=True)
????return?agg
#?load?dataset
dataset?=?read_csv(‘tuoluoyi-A-kewen1-csv.csv‘?header=0?index_col=0)??#header?第一列為編號(hào)??index_col為取索引的參數(shù)
values?=?dataset.values
pyplot.figure(1)
pyplot.plot(values)?
pyplot.show()
#?integer?encode?direction
#encoder?=?LabelEncoder()???#簡(jiǎn)單來說?LabelEncoder?是對(duì)不連續(xù)的數(shù)字或者文本進(jìn)行編號(hào)
#values[:?4]?=?encoder.fit_transform(values[:?4])??#將第四列進(jìn)行文本編碼
#?ensure?all?data?is?float
values?=?values.astype(‘float32‘)??#轉(zhuǎn)化為浮點(diǎn)型
#?normalize?features
scaler?=?MinMaxScaler(feature_range=(0?1))????#歸一化處理
scaled?=?scaler.fit_transform(values)
#?frame?as?supervised?learning
reframed?=?series_to_supervised(scaled?1?1)??#轉(zhuǎn)化為監(jiān)督學(xué)習(xí)??設(shè)計(jì)預(yù)測(cè)維數(shù)
#?drop?columns?we?don‘t?want?to?predict
#reframed.drop(reframed.columns[[567]]?axis=1?inplace=True)?#reframed.drop?刪除不預(yù)測(cè)的列
print(reframed.head())
#?split?into?train?and?test?sets
values?=?reframed.values
n_train_hours?=?41000
train?=?values[:n_train_hours?:]
test?=?values[n_train_hours:?:]
#?split?into?input?and?outputs
train_X?train_y?=?train[:?:-1]
- 上一篇:python詞云源碼
- 下一篇:python騰訊文字識(shí)別 OCR腳本
評(píng)論
共有 條評(píng)論