




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
時間序列分析與LSTM網(wǎng)絡(luò)
原理與實踐提綱時間序列分析與LSTM原理LSTM進(jìn)行時間序列預(yù)測實現(xiàn)
時間序列算法簡介LSTM是長短期記憶網(wǎng)絡(luò),是一種時間遞歸神經(jīng)網(wǎng)絡(luò),適合于處理和預(yù)測時間序列中間隔和延遲相對較長的重要事件。LSTM在算法中加入了一個判斷信息有用與否的“處理器”,這個處理器作用的結(jié)構(gòu)被稱為cell。一個cell當(dāng)中被放置了三扇門,分別叫做輸入門、遺忘門和輸出門。一個信息進(jìn)入LSTM的網(wǎng)絡(luò)當(dāng)中,可以根據(jù)規(guī)則來判斷是否有用。只有符合算法認(rèn)證的信息才會留下,不符的信息則通過遺忘門被遺忘。說起來無非就是一進(jìn)二出的工作原理,卻可以在反復(fù)運算下解決神經(jīng)網(wǎng)絡(luò)中長期存在的大問題。目前已經(jīng)證明,LSTM是解決長序依賴問題的有效技術(shù),并且這種技術(shù)的普適性非常高,導(dǎo)致帶來的可能性變化非常多。各研究者根據(jù)LSTM紛紛提出了自己的變量版本,這就讓LSTM可以處理千變?nèi)f化的垂直問題相對于傳統(tǒng)ARMA模型,
LSTM適合于處理和預(yù)測時間序列中間隔和延遲非常長的重要事件。在非線性預(yù)測能力、抽象能力或者集成學(xué)習(xí)能力上,LSTM具有明顯優(yōu)勢,且ARMA模型確定階數(shù)過程復(fù)雜繁瑣,而LSTM可自行學(xué)習(xí)相關(guān)參數(shù)。但LSTM的效果必須在龐大數(shù)據(jù)量基礎(chǔ)上才能發(fā)揮出色,在小樣本情況下ARMA往往比LSTM效果要好。LSTM算法簡介(神經(jīng)網(wǎng)絡(luò)基礎(chǔ)原理請看BP神經(jīng)網(wǎng)絡(luò))關(guān)鍵字提取流程數(shù)據(jù)清洗,序列切分,序列平穩(wěn)化劃分?jǐn)?shù)據(jù)集,測試集建立序列模型為模型添加適當(dāng)?shù)木W(wǎng)絡(luò)層,設(shè)計權(quán)重表達(dá)方式,正則化規(guī)則(或隨機(jī)失效),激活函數(shù)定義損失函數(shù),訓(xùn)練模式,提前停止機(jī)制模型訓(xùn)練模型檢驗應(yīng)用關(guān)于LSTM輸入序列,一般整理為3D張量,即[樣本量,序列,數(shù)據(jù)]關(guān)于數(shù)據(jù)切分,為獲得足夠詳盡的序列,一般采用滑動窗口切分,例如序列ABCD,窗口為2,預(yù)測一期,則序列劃分為[[ABC][BCD]]其余參數(shù)設(shè)置可見BP神經(jīng)網(wǎng)絡(luò)教程提綱時間序列分析與LSTM原理LSTM進(jìn)行時間序列預(yù)測實現(xiàn)LSTM實驗前提準(zhǔn)備系統(tǒng)準(zhǔn)備:centos6.8、Spark2.3.1、Pyrhon3.X,導(dǎo)入pandas,keras,numpy數(shù)據(jù)準(zhǔn)備:標(biāo)注普洱500指數(shù)。建模目的:訓(xùn)練時間序列模型對股票后期走勢進(jìn)行預(yù)測。實例:啟動python,讀取數(shù)據(jù)importnumpyasnpimportpandasaspdfromkeras.modelsimportSequentialfromkeras.layersimportDensefromkeras.layersimportLSTMfromkeras.layersimportDropoutimportkeras#讀取數(shù)據(jù)df=pd.read_csv('sp500.txt',
header=None)
#type:pd.DataFrame
data=np.array(df[0])
#數(shù)據(jù)整理,假設(shè)通過50個歷史數(shù)據(jù)預(yù)測未來一期,則先整理出訓(xùn)練數(shù)據(jù)集time_step=50
sequence_length=time_step+1
實例:序列拆分,平穩(wěn)化result=[]#獲取全部可能序列#序列平穩(wěn)化,本例選用相對變化率,即F(t)/F(0)-1forxin
range(len(df)-sequence_length):
data_cut=data[x:x+sequence_length]
#平穩(wěn)化
data_norm=[((x*1.0/(data_cut[0]+1))-1)forxindata_cut]
data_norm.append(data_cut[0])
result.append(data_norm)
result=np.array(result)實例:數(shù)據(jù)集劃分#隨機(jī)打亂并劃分訓(xùn)練集80%和測試集20%row=int(round(0.8*result.shape[0]))train=result[:row,:]
#數(shù)據(jù)形如[[1,2,3],[1,2,3]]np.random.shuffle(train)x_train=train[:,:-2]y_train=train[:,-2]x_test=result[row:,:-2]y_test=result[row:,-2]
mark_test=result[row:,-1]
x_train=np.reshape(x_train,(x_train.shape[0],x_train.shape[1],
1))
#數(shù)據(jù)形如[[1],[2],[3]],[[1],[2],[3]]]x_test=np.reshape(x_test,(x_test.shape[0],x_test.shape[1],
1))#構(gòu)建神經(jīng)網(wǎng)絡(luò)#模型為1->50->100->1網(wǎng)絡(luò)model=Sequential()
#序列型神經(jīng)網(wǎng)絡(luò),即網(wǎng)絡(luò)傳播路徑只有一條
#建立全連接層-首層需要指定輸入層維度model.add(LSTM(output_dim=50,
#輸出維度,配合下面return_sequences,返回[samples,timesteps,output_dim],即每個樣本進(jìn)入該層,返回[50,50]維數(shù)據(jù)
input_shape=(50,
1),
#輸入維度,上面整理的輸入張量每條序列有50個數(shù)組,每個值有一個元素
activation="tanh",
#激活函數(shù)
use_bias=True,
#使用偏置
return_sequences=True
#返回整個序列,由于需要連接下一層LSTM,所以需要輸出整個序列
))model.add(Dropout(0.2))
#連接20%概率隨機(jī)失效
model.add(LSTM(output_dim=100,
#輸出維度無指定return_sequences情況下,輸出[100]維數(shù)據(jù)
activation="tanh",
use_bias=True
))
#本層下接全連接層,無需返回序列,return_sequences默認(rèn)Falsemodel.add(Dropout(0.2))
model.add(Dense(units=1,
activation="linear",
use_bias=True,
))實例:構(gòu)建神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)實例:構(gòu)建訓(xùn)練模式并訓(xùn)練#建立評估函數(shù)#設(shè)計目標(biāo)誤差函數(shù),以及訓(xùn)練方法pile(loss='mean_squared_error',
optimizer="rmsprop")
#提前結(jié)束訓(xùn)練的閾值,下面參數(shù),觀察誤差,連續(xù)5次無改善.則結(jié)束訓(xùn)練early_stopping=keras.callbacks.EarlyStopping(monitor='loss',
patience=5,
verbose=0,
mode='auto')
#模型訓(xùn)練,寫入數(shù)據(jù),目標(biāo),迭代次數(shù),批數(shù),訓(xùn)練詳情(0不顯示),訓(xùn)練提早結(jié)束條件,分割5%作為驗證model.fit(x_train,y_train,
epochs=50,
batch_size=512,
verbose=1,
validation_split=0.05,
callbacks=[early_stopping])實例:模型預(yù)測評價#模型預(yù)測與評價pred=model.predict(x_test).reshape(len(x_test))#構(gòu)建評價數(shù)據(jù)F=pd.DataFrame({"y":y_test,
"pred":pred,
"mark_test":mark_test})F["pred"]=F["pred"].map(lambdax:x+1)*F["mark_test"].map(lambdax:x-1)F["y"]=F["y"].map(lambdax:x+1)*F["mark_test"].map(lambdax:
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題開題報告:基本建成學(xué)習(xí)型社會的指標(biāo)體系和實踐途徑研究
- 2025年電子體重秤合作協(xié)議書
- 雪泥企業(yè)ESG實踐與創(chuàng)新戰(zhàn)略研究報告
- 二零二五年度醫(yī)療專家個人特聘合同書
- 2025年度高空作業(yè)勞務(wù)安全保障及責(zé)任明確合同
- 二零二五年度勞動解除協(xié)議書:電力行業(yè)員工退工補(bǔ)償與節(jié)能減排協(xié)議
- 2025年度新能源技術(shù)研發(fā)資金撥付合同
- 二零二五年度知識產(chǎn)權(quán)質(zhì)押擔(dān)保合同協(xié)議
- 2025年度駕校與社區(qū)共建交通安全教育合作協(xié)議范文
- 二零二五年度網(wǎng)絡(luò)安全實習(xí)生勞動合同
- 保險經(jīng)紀(jì)人考試題庫含答案
- 中移系統(tǒng)集成有限公司招聘筆試題庫2024
- 2024-2030年中國骨傳導(dǎo)耳機(jī)行業(yè)銷售渠道及供需前景預(yù)測報告
- 大學(xué)介紹清華大學(xué)宣傳
- 2024年導(dǎo)游服務(wù)技能大賽《導(dǎo)游綜合知識測試》題庫及答案
- 專項訓(xùn)練-解決問題訓(xùn)練(專項訓(xùn)練) 六年級下冊數(shù)學(xué)人教版
- 心肺復(fù)蘇技能操作考核表
- SHT 3060-2013 石油化工企業(yè)供電系統(tǒng)設(shè)計規(guī)范
- 2024年俄羅斯高空作業(yè)平臺車行業(yè)應(yīng)用與市場潛力評估
- 蕪湖2024年安徽蕪湖傳媒中心招聘編外工作人員5人筆試歷年典型考題及考點附答案解析
- 2024版年度經(jīng)濟(jì)法基礎(chǔ)完整全套課件
評論
0/150
提交評論