亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實戰(zhàn)洞察。

R語言實現(xiàn)LSTM時間序列預(yù)測:從數(shù)據(jù)預(yù)處理到模型調(diào)優(yōu)

R語言實現(xiàn)LSTM時間序列預(yù)測:從數(shù)據(jù)預(yù)處理到模型調(diào)優(yōu) 我自己的項目經(jīng)歷里有相當(dāng)一部分時間是在跟時間序列數(shù)據(jù)打交道。早幾年做水文預(yù)報平臺時團(tuán)隊里Python用得比較多LSTM做徑流預(yù)測的教程一搜一大把但換到R語言環(huán)境就開始抓瞎。后來我在R里完整跑通了LSTM的建模流程從數(shù)據(jù)變換到模型訓(xùn)練再到預(yù)測評估全程沒離開RStudio才發(fā)現(xiàn)R這套生態(tài)其實被低估了。這篇東西就從一個實際做過R語言LSTM建模的人的角度把整個流程從頭到尾拆開講一遍。內(nèi)容包括R語言里做LSTM有哪幾條技術(shù)路線、時間序列數(shù)據(jù)怎么處理成LSTM能吃的格式、模型結(jié)構(gòu)怎么搭、訓(xùn)練參數(shù)怎么調(diào)、常見的坑有哪些最后用一個水文徑流預(yù)測的案例串起全部步驟。適合在R里頭做數(shù)據(jù)分析、但想往深度學(xué)習(xí)方向邁一步的朋友也適合那些已經(jīng)在Python里寫過LSTM、想了解R這邊對應(yīng)方案的人。1. R語言做LSTM先摸清楚技術(shù)路線別一上來就寫代碼1.1 LSTM到底在解決什么問題長短期記憶網(wǎng)絡(luò)Long Short-Term Memory, LSTM屬于循環(huán)神經(jīng)網(wǎng)絡(luò)RNN的一個變種1997年由Hochreiter和Schmidhuber提出。普通RNN處理長序列時有一個很要命的問題反向傳播過程中梯度會反復(fù)相乘導(dǎo)致梯度消失或梯度爆炸網(wǎng)絡(luò)根本記不住太久之前的信息。LSTM引入了一種叫“門控機(jī)制”的結(jié)構(gòu)通過遺忘門、輸入門、輸出門來控制信息的保留與丟棄相當(dāng)于給網(wǎng)絡(luò)加了一個可學(xué)習(xí)的記憶系統(tǒng)。我用一個生活化的類比解釋一下。普通RNN像一個記性不太好的門衛(wèi)只記得上一個訪客來過再往前的信息基本忘光了。LSTM像一個帶筆記本的門衛(wèi)每來一個人他會決定哪些信息要寫進(jìn)本子、哪些信息要劃掉、哪些信息要告訴下一個值班的人——這個“決定”是網(wǎng)絡(luò)訓(xùn)練出來的不是我們手動寫死的。在時間序列預(yù)測場景里這種能力非常重要。比如水文徑流預(yù)報今天的水位不僅跟昨天的降雨有關(guān)還跟一周前甚至一個月前的土壤含水量、前期降雨有關(guān)。LSTM能夠從數(shù)據(jù)中自己學(xué)會這種跨時間的依賴關(guān)系這是它比傳統(tǒng)ARIMA、SARIMA模型強(qiáng)勢的地方。除此之外LSTM在文本情感分析、語音識別、電力負(fù)荷預(yù)測等領(lǐng)域都有成熟應(yīng)用原理是相通的都是處理帶順序關(guān)系的數(shù)據(jù)。1.2 R語言實現(xiàn)LSTM的三條路線對比R語言里做LSTM正經(jīng)可用的路線有三條我簡單列個表做個對比。技術(shù)路線底層后端上手難度適合場景維護(hù)狀態(tài)keras包 TensorFlowPython TensorFlow通過reticulate橋接中等通用深度學(xué)習(xí)LSTM/CNN/Transformer都能做維護(hù)活躍社區(qū)資料多torch包luz封裝libtorchC通過Rcpp調(diào)用偏高更靈活的動態(tài)圖研究場景維護(hù)活躍但資料相對少RSNNS包SNNS斯圖加特神經(jīng)網(wǎng)絡(luò)模擬器低教學(xué)演示、簡單網(wǎng)絡(luò)基本停滯不推薦在生產(chǎn)中使用我個人的建議是如果你不是專門研究深度學(xué)習(xí)框架底層的優(yōu)先選keras路線。原因有幾個。第一keras是最成熟的高層API寫LSTM模型的代碼量非常少幾個函數(shù)就能把網(wǎng)絡(luò)堆出來跟Python里的Keras用法幾乎一一對應(yīng)網(wǎng)上Python教程里的思路基本都能照搬到R里。第二keras底層是TensorFlow訓(xùn)練性能有保障RNN、LSTM、GRU這些常用層都是現(xiàn)成的。第三踩坑時好排查——報錯信息能對上號社區(qū)討論多很多問題一搜就有答案。torch路線我也試過適合需要自定義網(wǎng)絡(luò)結(jié)構(gòu)、做研究型實驗的場景靈活性更高但你要接受它的API設(shè)計跟R語言風(fēng)格差異較大學(xué)習(xí)成本明顯高一個檔次。RSNNS我就直接跳過了十幾年前的產(chǎn)物對現(xiàn)代深度學(xué)習(xí)需求的支持幾乎為零除非是課程作業(yè)強(qiáng)制要求否則不建議浪費時間。1.3 選擇keras之前需要理解的一層“橋接”R里面用keras不是純R實現(xiàn)它底層是通過reticulate包去調(diào)用Python環(huán)境里的TensorFlow。這意味著你的電腦上必須先有一個可用的Python環(huán)境并且在這個環(huán)境里安裝好TensorFlow。很多初學(xué)者在這步就被卡住了因為R和Python之間的環(huán)境關(guān)系沒理順。我用一個比方來解釋R里的keras包相當(dāng)于一個“遙控器”它本身不干活真正干活的是Python那邊的TensorFlow“電視”。reticulate負(fù)責(zé)把兩者連接起來。你按遙控器上的按鈕實際上是R先把指令翻譯給PythonPython再驅(qū)動TensorFlow做計算。理解了這一層很多環(huán)境問題就豁然開朗了。比如報錯說找不到TensorFlow那極大概率是reticulate連到了一個沒有安裝TensorFlow的Python環(huán)境上。解決辦法也很直接要么在R里顯式指定要用哪個Python要么直接用install_keras()函數(shù)自動創(chuàng)建并配置一個專門的虛擬環(huán)境。這個配置過程我在后面會詳細(xì)演示。2. 建模前的關(guān)鍵準(zhǔn)備把原始時間序列變成LSTM能吃的數(shù)據(jù)2.1 數(shù)據(jù)預(yù)處理歸一化不能省LSTM這類基于梯度下降的神經(jīng)網(wǎng)絡(luò)對輸入數(shù)據(jù)的尺度非常敏感。如果某個特征的取值范圍是0到1另一個特征的范圍是幾千到幾萬訓(xùn)練時梯度更新會被大數(shù)值的特征主導(dǎo)模型很難收斂訓(xùn)練過程也會異常緩慢。在時間序列預(yù)測里最常見的處理方式是min-max歸一化把數(shù)據(jù)壓到0到1之間。公式很簡單[ x \frac{x - x_{min}}{x_{max} - x_{min}} ]在R里實現(xiàn)也就是幾行代碼的事# 假設(shè)你的原始序列存在 data$value 這一列 min_val - min(data$value, na.rm TRUE) max_val - max(data$value, na.rm TRUE) data$scaled - (data$value - min_val) / (max_val - min_val)這里有一個特別關(guān)鍵的細(xì)節(jié)歸一化的時候用到的最大值和最小值只能從訓(xùn)練集里計算不能把測試集也算進(jìn)去。原因很簡單如果用到了測試集的信息你在訓(xùn)練階段就“偷看”了考試答案評估出來的模型效果會虛高到了真實應(yīng)用場景立刻原形畢露。正確做法是先切分?jǐn)?shù)據(jù)再用訓(xùn)練集的min和max分別歸一化訓(xùn)練集、驗證集和測試集后面做預(yù)測時也要用訓(xùn)練集的min和max來反歸一化。2.2 滑動窗口把一列數(shù)變成“過去→未來”的樣本對LSTM不直接吃一列原始數(shù)字它吃的是“一個時間窗口的特征序列”和“對應(yīng)的目標(biāo)值”。這個概念初學(xué)者最容易繞暈我詳細(xì)展開一下。假設(shè)我們有一天的日徑流數(shù)據(jù)一共365天。我們設(shè)定用過去10天的徑流來預(yù)測今天第11天的徑流。那么窗口大小為10整個數(shù)據(jù)集就被拆成一系列樣本樣本1第1~10天作為輸入第11天作為輸出樣本2第2~11天作為輸入第12天作為輸出樣本3第3~12天作為輸入第13天作為輸出以此類推……這個過程相當(dāng)于把“時間序列預(yù)測”問題重構(gòu)成了“監(jiān)督學(xué)習(xí)”問題。R里自己寫一個構(gòu)造函數(shù)也不復(fù)雜# 將一列數(shù)值序列轉(zhuǎn)換為監(jiān)督學(xué)習(xí)格式 create_windows - function(data, lookback 10) { x - list() y - c() for (i in 1:(length(data) - lookback)) { x[[i]] - data[i:(i lookback - 1)] y[i] - data[i lookback] } x - do.call(rbind, x) y - as.matrix(y) list(x x, y y) } result - create_windows(data$scaled, lookback 10)這里有個需要思考的邏輯為什么叫“預(yù)測第11天”而不是“預(yù)測第1天”因為我們的目標(biāo)是用已知的歷史去推斷未知的未來窗口構(gòu)造天然就把數(shù)據(jù)切成了這種“過去→未來”的樣本對。2.3 LSTM輸入的三維數(shù)組新手最容易懵在R里用keras訓(xùn)練LSTM輸入數(shù)據(jù)必須是三維數(shù)組維度分別是(樣本數(shù), 時間步長, 特征數(shù))。前一步構(gòu)造的x矩陣是二維的形狀為(樣本數(shù), lookback)需要再加一個維度。很多人在這里犯迷糊我拆開解釋一下。以剛才的徑流數(shù)據(jù)為例樣本數(shù)就是滑動窗口一共生成了多少個樣本時間步長就是lookback即10特征數(shù)代表每個時間點上用幾個變量如果只用徑流這一個變量特征數(shù)就是1。代碼如下# 把二維的(樣本數(shù), 時間步長) 變?yōu)槿S的(樣本數(shù), 時間步長, 特征數(shù)) x_array - array(result$x, dim c(nrow(result$x), lookback, 1))這一步做完數(shù)據(jù)形態(tài)就對了。如果你的預(yù)測任務(wù)涉及多個輸入特征比如降雨量、氣溫、蒸發(fā)量等那特征數(shù)就是對應(yīng)的變量個數(shù)這需要在構(gòu)造窗口時就把多個變量的歷史值一起放進(jìn)去。2.4 訓(xùn)練集、驗證集、測試集的劃分時序數(shù)據(jù)的特殊規(guī)矩分類問題里我們可以把數(shù)據(jù)隨機(jī)打亂然后按比例分成訓(xùn)練集、驗證集和測試集。但時間序列數(shù)據(jù)絕對不能這么干——一打亂時間順序就沒了模型會拿未來數(shù)據(jù)去預(yù)測“過去”評估結(jié)果看起來好得不真實實際應(yīng)用時崩得一塌糊涂。正確做法是嚴(yán)格按時間先后順序切分。比如有1000天的數(shù)據(jù)我會切成前700天訓(xùn)練中間150天驗證最后150天測試。這樣做的好處是驗證集和測試集都是模型從未見過的“未來”與真實部署場景一致。我自己的習(xí)慣是“先切分、再歸一化、最后構(gòu)造窗口”。切分要在歸一化之前完成原因上一節(jié)已經(jīng)說過——歸一化參數(shù)只能來自訓(xùn)練集。構(gòu)造窗口可以在歸一化之后做兩者順序不影響結(jié)果只要記得最終模型輸入是三維數(shù)組就行。3. 核心實操在R里用keras搭建并訓(xùn)練LSTM模型3.1 環(huán)境安裝一條龍配置keras TensorFlow在R里配置keras環(huán)境我建議按下面這個順序操作每一步都別跳。# 第1步安裝兩個核心R包 install.packages(keras) install.packages(tensorflow) # 第2步讓R自動創(chuàng)建TensorFlow環(huán)境 # 這個函數(shù)會檢查本機(jī)Python環(huán)境按需創(chuàng)建一個專用于Keras的虛擬環(huán)境 library(keras) install_keras()第2步的執(zhí)行時間取決于你的網(wǎng)絡(luò)狀況經(jīng)常會持續(xù)十幾分鐘甚至更久因為要下載TensorFlow的依賴庫。裝完之后用一行代碼驗證是否成功library(keras) # 如果能打印出版本信息說明環(huán)境已經(jīng)就緒 tensorflow::tf_version()如果這條命令報錯最常見的三種情況分別是找不到Python、Python環(huán)境里沒有TensorFlow、以及reticulate連接到了錯誤的Python環(huán)境。我的排查習(xí)慣是先檢查reticulate當(dāng)前用的是哪個Pythonreticulate::py_config()看到這個輸出里列出了Python路徑和已安裝包列表問題就好定位了。如果python路徑不是你預(yù)期的可以用reticulate::use_python()強(qiáng)制指定。3.2 模型架構(gòu)設(shè)計與參數(shù)選擇邏輯R的keras包構(gòu)造一個LSTM模型代碼非常優(yōu)雅。以一個單變量時間序列預(yù)測任務(wù)為例下面的代碼搭建了一個最基礎(chǔ)的LSTM網(wǎng)絡(luò)library(keras) model - keras_model_sequential() %% layer_lstm(units 64, activation tanh, return_sequences TRUE, input_shape c(lookback, 1)) %% layer_dropout(rate 0.2) %% layer_lstm(units 32, activation tanh) %% layer_dropout(rate 0.2) %% layer_dense(units 1) model %% compile( optimizer adam, loss mse, metrics c(mae) ) model逐個參數(shù)拆解一下背后的邏輯。units表示LSTM隱層神經(jīng)元的數(shù)量。這個參數(shù)沒有絕對公式屬于典型的“調(diào)出來的經(jīng)驗值”。一般經(jīng)驗是數(shù)據(jù)量小、任務(wù)簡單unit可以設(shè)小一些比如16或32數(shù)據(jù)量大、序列復(fù)雜可以嘗試64或128。我見過很多人一上來就把units設(shè)成256或者512結(jié)果訓(xùn)練很慢還嚴(yán)重過擬合。深度學(xué)習(xí)里有個原則模型的容量跟任務(wù)復(fù)雜度匹配就好不是越大越好。activation tanh是LSTM層的默認(rèn)激活函數(shù)一般不輕易改。LSTM的數(shù)學(xué)設(shè)計里候選記憶單元使用tanh是經(jīng)過理論論證的把輸出壓縮到-1到1之間有助于維持梯度穩(wěn)定。return_sequences這個參數(shù)最關(guān)鍵它決定這一層LSTM輸出的是完整序列還是最后一個時間步的輸出。如果后面還要接LSTM層那前一層的return_sequences必須設(shè)為TRUE否則兩層LSTM之間數(shù)據(jù)形狀對不上。如果是最后一層LSTM后面接全連接層輸出預(yù)測值那就不需要返回序列。layer_dropout(rate 0.2)表示隨機(jī)丟棄20%的神經(jīng)元輸出防止過擬合。dropout是深度學(xué)習(xí)里最常用的正則化手段我一般會加在LSTM層之間。layer_dense(units 1)是輸出層因為這是一個回歸任務(wù)——預(yù)測一個連續(xù)的徑流值所以輸出是1個神經(jīng)元不加激活函數(shù)即線性激活。損失函數(shù)用mse均方誤差這是回歸任務(wù)的標(biāo)配。3.3 訓(xùn)練過程與回調(diào)函數(shù)讓模型自己“踩剎車”模型搭好之后訓(xùn)練環(huán)節(jié)有一些值得講究的地方。直接上代碼history - model %% fit( x x_train, y y_train, epochs 100, batch_size 32, validation_data list(x_val, y_val), callbacks list( callback_early_stopping(patience 10, restore_best_weights TRUE), callback_reduce_lr_on_plateau(patience 5, factor 0.5) ), verbose 1 )epochs是訓(xùn)練的總輪數(shù)我通常不會硬性設(shè)定一個固定值而是配合early stopping來動態(tài)停。callback_early_stopping會在驗證集損失連續(xù)10個epoch都沒有下降時自動停止訓(xùn)練并恢復(fù)到驗證集表現(xiàn)最好的那組權(quán)重。這個策略非常實用可以避免你死等幾百個epoch。callback_reduce_lr_on_plateau是個更聰明的優(yōu)化器策略當(dāng)驗證損失5個epoch不下降時把學(xué)習(xí)率乘以0.5。深度學(xué)習(xí)的經(jīng)驗法則之一是訓(xùn)練后期損失曲線進(jìn)入了平臺期調(diào)小學(xué)習(xí)率往往能繼續(xù)下降。這個回調(diào)相當(dāng)于自動幫你做這件事。batch_size是一次喂給模型多少樣本。這個參數(shù)受內(nèi)存限制32是保守值數(shù)據(jù)量大時可以嘗試64或128。小batch一般收斂更穩(wěn)定但訓(xùn)練時間會變長。我分享一個我自己的觀察方法訓(xùn)練結(jié)束后先別急著做預(yù)測用plot(history)把訓(xùn)練集損失和驗證集損失的曲線畫出來。這兩條曲線的走勢能告訴你非常多信息。如果訓(xùn)練損失下降驗證損失先下降后回升說明模型過擬合了——常見對策是加大dropout減少units或者提前終止訓(xùn)練。如果兩個損失都下降得很慢說明學(xué)習(xí)率偏小或模型容量不夠。3.4 模型評估與預(yù)測別忘記反歸一化訓(xùn)練完成到了評估和預(yù)測階段。這個階段的代碼邏輯很簡單但有兩個坑值得專門提醒。# 在測試集上評估 model %% evaluate(x_test, y_test) # 預(yù)測 pred_scaled - model %% predict(x_test) # 反歸一化把預(yù)測值還原到原始尺度 pred - pred_scaled * (max_val - min_val) min_val actual - y_test * (max_val - min_val) min_val # 計算指標(biāo) rmse - sqrt(mean((pred - actual)^2)) mae - mean(abs(pred - actual)) cat(RMSE:, rmse, \n) cat(MAE:, mae, \n)第一個坑是反歸一化。模型在歸一化后的數(shù)據(jù)上訓(xùn)練出來的預(yù)測值自然也是歸一化后的要對比真實的流量、溫度或水位必須用訓(xùn)練集的min和max反歸一化。第二個坑是評估指標(biāo)的解讀。我習(xí)慣同時看RMSE和MAE因為RMSE會放大誤差大誤差樣本對它的影響更明顯MAE則更穩(wěn)健兩個指標(biāo)一起看能了解誤差的分布特征。在水文徑流預(yù)報領(lǐng)域我還會額外算一個NSENash-Sutcliffe效率系數(shù)這是水文模型的經(jīng)典評價指標(biāo)公式是[ NSE 1 - \frac{\sum (y_{obs} - y_{sim})^2}{\sum (y_{obs} - \bar{y}_{obs})^2} ]R里實現(xiàn)如下nse - 1 - sum((actual - pred)^2) / sum((actual - mean(actual))^2) cat(NSE:, nse, \n)NSE越接近1說明模型效果越好。一般來說NSE大于0.7就屬于可以接受的預(yù)測水平大于0.9則是非常優(yōu)秀的水平。這個指標(biāo)比RMSE更好解釋也更容易跟領(lǐng)域內(nèi)的傳統(tǒng)模型做對比。4. 完整案例用R語言LSTM做日徑流預(yù)報4.1 案例背景與數(shù)據(jù)理解我用一個自己實際做過的例子來串起所有步驟。項目目標(biāo)是從歷史日徑流序列出發(fā)預(yù)測未來一天的徑流量。數(shù)據(jù)來自某水文站的逐日平均流量記錄時間跨度為2015年到2019年共1826條記錄。數(shù)據(jù)本身有典型的季節(jié)性特征汛期流量大枯季流量小豐枯變化劇烈。這種數(shù)據(jù)對時序模型最大的挑戰(zhàn)就是“突變”。比如連續(xù)幾天降雨導(dǎo)致流量突然暴漲模型需要從前幾天甚至更長時間窗口里捕捉信號。LSTM的記憶機(jī)制正好適合處理這種場景這也是我選擇LSTM而不是傳統(tǒng)ARIMA的原因。ARIMA本質(zhì)上是線性模型對非線性突變特征的刻畫能力很有限。先把數(shù)據(jù)讀進(jìn)來看看概貌library(readr) library(dplyr) # 讀取數(shù)據(jù)假設(shè)兩列date和flow df - read_csv(daily_flow.csv) df$flow - as.numeric(df$flow) # 缺失值處理 sum(is.na(df$flow)) # 通常水文實測數(shù)據(jù)會有極少數(shù)缺失簡單線性插值填補(bǔ) df$flow - zoo::na.approx(df$flow) # 繪制序列圖直觀感受時間變化 plot(df$flow, type l, main Daily Flow Series, xlab Day Index, ylab Flow (m3/s))4.2 數(shù)據(jù)切分、歸一化與窗口構(gòu)造按前面說的原則按時間順序切分?jǐn)?shù)據(jù)前70%做訓(xùn)練15%做驗證15%做測試。n - nrow(df) train_idx - 1:floor(n * 0.7) val_idx - (floor(n * 0.7) 1):floor(n * 0.85) test_idx - (floor(n * 0.85) 1):n # 歸一化參數(shù)只從訓(xùn)練集計算 train_flow - df$flow[train_idx] min_val - min(train_flow) max_val - max(train_flow) # 歸一化 scaled - (df$flow - min_val) / (max_val - min_val) # 構(gòu)造窗口lookback設(shè)為10天 lookback - 10 create_windows - function(data, lookback) { x - matrix(NA, nrow length(data) - lookback, ncol lookback) y - numeric(length(data) - lookback) for (i in seq_len(length(data) - lookback)) { x[i, ] - data[i:(i lookback - 1)] y[i] - data[i lookback] } list(x x, y y) } # 分別構(gòu)造訓(xùn)練、驗證、測試的輸入輸出 train_data - create_windows(scaled[train_idx], lookback) val_data - create_windows(scaled[min(train_idx):max(val_idx)], lookback) test_data - create_windows(scaled[min(test_idx):n], lookback) # 轉(zhuǎn)成三維數(shù)組 x_train - array(train_data$x, dim c(nrow(train_data$x), lookback, 1)) y_train - train_data$y x_val - array(val_data$x, dim c(nrow(val_data$x), lookback, 1)) y_val - val_data$y x_test - array(test_data$x, dim c(nrow(test_data$x), lookback, 1)) y_test - test_data$y這里有個細(xì)節(jié)值得說明驗證集和測試集的窗口構(gòu)造是從本段開頭開始的而不是從整個數(shù)據(jù)集的起點開始。這樣能確保每個子集內(nèi)部的樣本都滿足“用前10天預(yù)測第11天”的邏輯同時測試集的輸入窗口不會跨到驗證集里去。4.3 模型訓(xùn)練與結(jié)果對比模型結(jié)構(gòu)我選了一個相對保守的雙層LSTM第一層64個單元第二層32個單元中間加dropout防止過擬合。這個容量對于1826條日觀測數(shù)據(jù)來說是比較安全的既給了模型足夠的表達(dá)能力又不至于太過龐大。model - keras_model_sequential() %% layer_lstm(units 64, return_sequences TRUE, input_shape c(lookback, 1)) %% layer_dropout(rate 0.2) %% layer_lstm(units 32) %% layer_dropout(rate 0.2) %% layer_dense(units 1) model %% compile( optimizer adam, loss mse, metrics c(mae) ) history - model %% fit( x_train, y_train, epochs 100, batch_size 32, validation_data list(x_val, y_val), callbacks list( callback_early_stopping(patience 10, restore_best_weights TRUE), callback_reduce_lr_on_plateau(patience 5, factor 0.5) ), verbose 1 )訓(xùn)練結(jié)束用測試集做預(yù)測并評估。pred_scaled - model %% predict(x_test) pred - as.numeric(pred_scaled) * (max_val - min_val) min_val actual - y_test * (max_val - min_val) min_val rmse - sqrt(mean((pred - actual)^2)) mae - mean(abs(pred - actual)) nse - 1 - sum((actual - pred)^2) / sum((actual - mean(actual))^2) cat(sprintf(RMSE: %.3f m3/s\n, rmse)) cat(sprintf(MAE: %.3f m3/s\n, mae)) cat(sprintf(NSE: %.3f\n, nse))實際運(yùn)行結(jié)果在合理范圍內(nèi)NSE在0.82左右RMSE約15.6 m3/s。對于一個只用了單一流量歷史變量的LSTM模型來說這個水平已經(jīng)能說明模型捕捉到了徑流的主要變化規(guī)律。畫個對比圖視覺效果會更直觀plot(actual, type l, col black, lwd 1.5, main Observed vs Predicted Flow, xlab Test Sample, ylab Flow (m3/s)) lines(pred, col red, lwd 1.2) legend(topright, legend c(Observed, Predicted), col c(black, red), lwd c(1.5, 1.2))4.4 模型調(diào)優(yōu)方向從“能用”到“好用”第一版模型跑通之后我一般不會停下來而是會系統(tǒng)地嘗試幾方面的優(yōu)化讓模型從“能跑”變成“好用”。第一個方向是增加特征。徑流變化不是孤立的降雨量、氣溫、前期土壤濕度等都對徑流有直接影響。把降雨和氣溫作為額外特征拼接到輸入窗口里模型往往能學(xué)到更精準(zhǔn)的響應(yīng)關(guān)系。在R里實現(xiàn)多特征窗口構(gòu)建也不難只需把歷史窗口里的每一列特征都堆疊成最后一維。第二個方向是調(diào)整lookback長度。用10天作為窗口是基于水文過程的經(jīng)驗判斷——一場降雨的產(chǎn)流匯流過程通常在幾天內(nèi)完成。但不同流域的響應(yīng)時間差別很大山區(qū)小流域可能3天就完成匯流大江大河可能持續(xù)一兩個月。我建議把lookback當(dāng)作超參數(shù)來做網(wǎng)格搜索試試5、10、20、30天看驗證集損失怎么變化。窗口太長會引入噪聲太短會丟掉重要信息中間存在一個最優(yōu)區(qū)間。第三個方向是預(yù)測目標(biāo)的變換。直接預(yù)測原始流量值難度較大因為流量分布偏態(tài)嚴(yán)重峰值很高、常值很低。可以考慮對流量取對數(shù)后再做預(yù)測這樣數(shù)據(jù)分布更接近正態(tài)模型更容易學(xué)到規(guī)律。預(yù)測完再指數(shù)還原即可。這些優(yōu)化的效果評估我強(qiáng)烈建議全部放在驗證集上做不要看測試集。驗證集就是你的“模型調(diào)參試驗田”隨便試。測試集只能在所有調(diào)參工作結(jié)束之后最后用一次相當(dāng)于期末考試。5. 常見問題與排查技巧實錄5.1 環(huán)境與安裝類問題R里做LSTM我猜至少有六成的初學(xué)問題卡在環(huán)境配置上。我把遇到頻率最高的問題整理成一個速查表。報錯信息關(guān)鍵片段可能原因解決思路No module named tensorflowreticulate連到了未裝TensorFlow的Python用reticulate::py_config()查看當(dāng)前Python路徑install_keras()或use_python()指定正確環(huán)境ModuleNotFoundError: No module named kerasKeras R包與Python環(huán)境不匹配在R里執(zhí)行install_keras()它會自動在虛擬環(huán)境中裝對應(yīng)版本Error: Python version 2 was found, but need version 3系統(tǒng)默認(rèn)Python是2.x安裝并指定Python 3環(huán)境或配置環(huán)境變量訓(xùn)練過程中直接崩潰/內(nèi)存溢出數(shù)據(jù)數(shù)組太大或batch_size過大減小batch_size或者用keras的fit中的steps_per_epoch參數(shù)控制每輪步數(shù)keras加載模型失敗自定義層或損失函數(shù)未注冊加載時傳入custom_objects示例load_model(model.h5, custom_objects list(loss custom_loss))關(guān)于環(huán)境問題我還有一條獨家心得R Studio的“Session”菜單里有一個“Restart R”選項很多時候改完環(huán)境配置不用重啟整個軟件Restart R就能讓reticulate重新加載Python連接省時又省力。5.2 模型訓(xùn)練與結(jié)果類問題環(huán)境通了之后模型層面的問題也不少。下面這幾類是我在R語言LSTM實踐中最常碰到的預(yù)測結(jié)果是一條水平直線。這個現(xiàn)象新手會遇到老手偶爾也會。常見原因有三個一是訓(xùn)練集數(shù)據(jù)范圍極其不均勻比如大部分時間流量為0或固定值模型學(xué)會了輸出均值二是學(xué)習(xí)率過大損失震蕩嚴(yán)重模型干脆學(xué)成了“躺平模式”三是目標(biāo)數(shù)據(jù)包含異常值歸一化后正常值被壓得極小模型分辨不出差異。我的排查順序是先監(jiān)控訓(xùn)練損失曲線看看是否下降再檢查歸一化后的數(shù)據(jù)分布最后調(diào)低學(xué)習(xí)率比如從默認(rèn)的0.001調(diào)到0.0001試試。訓(xùn)練損失降得很低驗證損失卻在后期反彈。這是典型的過擬合。對策首先是加大dropout的比例比如從0.2提到0.4其次考慮增加訓(xùn)練數(shù)據(jù)量或做數(shù)據(jù)增強(qiáng)再就是減小網(wǎng)絡(luò)容量把units從64降到32甚至16最后確保early stopping的restore_best_weights TRUE讓模型停在驗證集表現(xiàn)最好的位置。預(yù)測值總是滯后于真實值也就是“預(yù)測曲線比實際曲線慢半拍”。這是單步滾動預(yù)測的典型癥狀——因為模型每次只用真實歷史窗口來預(yù)測下一步所以對突發(fā)拐點的響應(yīng)天然滯后。緩解辦法包括改用多步預(yù)測策略訓(xùn)練時讓模型一次性輸出未來多個時間步增加外部輸入特征降雨、前置信號或者接受現(xiàn)實調(diào)整業(yè)務(wù)預(yù)期——單步預(yù)測本來就只能做到這個程度不必苛求。整個窗口的預(yù)測都正常但峰值處明顯偏低。這幾乎可以肯定是歸一化的問題。水文數(shù)據(jù)偏態(tài)嚴(yán)重最大值可能是中位數(shù)的幾十倍min-max歸一化會讓大部分?jǐn)?shù)據(jù)集中在0到0.1之間模型自然學(xué)不到細(xì)節(jié)。解決方案是改用對數(shù)變換scaled - log(flow 1)或者使用分位數(shù)歸一化。記住一個原則歸一化的目的是讓數(shù)據(jù)分布對模型友好不是機(jī)械套公式。5.3 模型保存與部署的實操經(jīng)驗?zāi)P陀?xùn)練完之后保存和部署是最容易被忽視但同樣重要的環(huán)節(jié)。R的keras模型保存很簡單# 保存模型結(jié)構(gòu)、權(quán)重和訓(xùn)練配置 model %% save_model_hdf5(lstm_flow_model.h5) # 加載模型 model - load_model_hdf5(lstm_flow_model.h5)我習(xí)慣把模型保存時連同訓(xùn)練集的min_val、max_val、lookback等參數(shù)打包存到一個RData文件里。不然換了一臺電腦、過了幾個月回來加載模型做預(yù)測卻忘了怎么反歸一化這種尷尬我經(jīng)歷過。save(min_val, max_val, lookback, file lstm_preprocess_params.RData)在R環(huán)境里做實時預(yù)測時流程是這樣的拿最新的lookback天數(shù)據(jù) → 用歷史min_val和max_val歸一化 → 變換成(1, lookback, 1)的三維數(shù)組 → 模型預(yù)測 → 反歸一化 → 得到最終預(yù)測值。這個流程封裝成函數(shù)后可以放到R的Shiny應(yīng)用里做個簡單的預(yù)報面板也能用plumber包發(fā)布成API讓其他系統(tǒng)調(diào)用。6. 從R出發(fā)LSTM還能往哪走寫了這么多其實都在講一個主題在R語言里做LSTM不是什么神秘的事keras包幫你把幾乎所有的復(fù)雜度都封裝好了關(guān)鍵反而在于數(shù)據(jù)處理、模型理解和調(diào)試經(jīng)驗。我自己用下來的最大體會是R生態(tài)里的LSTM雖然不如Python那么鋪天蓋地但對于本身就在R環(huán)境里做數(shù)據(jù)分析的人來說完全不需要為了一個LSTM模型就跨語言切換到Python。數(shù)據(jù)處理用dplyr、繪圖用ggplot2、建模用keras、部署用plumber全套都在R里面搞定工程上非常順暢。如果你是R用戶、又對LSTM感興趣我建議先從單變量時間序列預(yù)測入手跑通一個端到端的例子再逐漸加入多特征、多步預(yù)測和模型調(diào)參。水文本、氣象、電力負(fù)荷、金融這些領(lǐng)域的時間序列用R語言LSTM這套組合拳能解決大量實際問題。最后再說一個小技巧LSTM不是所有時序問題的最優(yōu)解。如果數(shù)據(jù)量很少幾百條以內(nèi)傳統(tǒng)的時間序列模型如ARIMA、指數(shù)平滑反而更可靠如果數(shù)據(jù)量很大且序列超長Transformer家族可能是更好的選擇。但LSTM作為“既有時序結(jié)構(gòu)又有非線性能力”的模型在當(dāng)前階段依然是性價比極高的選擇。建議你動手跑一次完整的例子一定會有收獲。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
日韩免费福利在线观看| 蜜屁Av| 久久六六| 性爱AV天堂| 九九亚洲视频| 国产一级作爱毛片| 一级片视频啪啪| 天天插天天操天天摸天天射天天看| 欧美,日韩综合久久| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 人人看人人爰人人操| 欧美日韩大陆黑人少妇99| 狠狠狠狠狠狠| 国产AV高清AV无码| 国产亚洲国产超碰| 嗯嗯嗯啊啊啊在线免费观看| 久操操| 丁香九月 婷婷| 91色拍| 亚洲天堂资源在线| 日本午夜福利视频| 91嫩草欧美| 人妻嗯啊啊在线播放| 日韩一级成人毛片免费观看| 亚洲九月丁香| 亚洲综合激情五月久久| 色爱三区| 美女国产一区二区久久| 日韩av一级黄片| 欧美成人性活片| 嗯嗯嗯啊啊在线观看| 校园春色 男人天堂 | 伊人综合色网| 九九热精品在线| 亚洲av影音先锋| 精品国产三级av韩国在线| 天天干夜夜鈤| 国产一国产一级毛片古装| 欧美啪啪啪91| 亚洲欧美内射| 中文字幕一二三| 日韩三级伊人| 人妻色偷色噜| 国产家庭乱伦性爱视频| 国产无马在线| www.人人cao| 1769精品一区二区三区| 秋霞一级视频在线观看免费| 啊啊啊啊嗯嗯嗯用力好爽 | 日本爽爽爽爽爽爽免费视频| 蜜桃狠狠色伊人亚洲综合网站| 欧美在线电影| 欧美图片校园春色| 蜜臀中文字幕| 性无码专区2020| 秋霞一级鲁丝片A片| 99精品国产户外露出| 午夜啪| 国产在线视频午夜精华在| 粉嫩av在线| 免费操逼91| 美女啊啊啊啊啊| 青青草在线视频美女| 国产熟女无套内射| 亚洲 欧美 制服 另类 自拍| 性在久久久久久| 中文字幕日本久久| 丝袜视频一区二区在线播放国产中文| 亚洲91大片| 中国韩国明星一极片一区乱码毛片人妻熟女一区二区三区 | 歐美性天天| 三级AV入口| 97在线免费看视频| 人妖欧美一区二区| 超碰色大香蕉| 亚洲第一精品在线视频| 性爱av网站| 色爱综合网| 男人兔费天堂| 91色伦综合| 人妻喷水| 91蜜桃传媒精品久久久一区二区| 人人妻人人爽一区二区三区| 2017av无码免费无线播| 18禁精品网站在线看| 强奸乱伦资源| 澳门成人网站久国产日韩| 高跟伊人julia ann| 无码人妻系列少妇| 97手机日韩| 国产多人在线观看视频| 亚洲男人的天堂亚洲| 国产天天骚| 欧美丝袜美女电影一二三四区| 99色在线| 和协无码影院| 九久久九九久视频| 亚洲精品成人动漫在线| 黑人白女精品一区| 日韩三级一区| 亚洲情色综合网| 老女人综合网| 国内精品伊人久久久久影院会| 色哟哟-国产专区| 精品人妻视频一区二区在线播放| 一级AV性爱| 五十路六十路七十路熟婆| 大香蕉五月天| 内射中国少妇高清视频免费视频| 天天澡天天爽日日AV| 国产精品一区二区三区,亚洲综合| 日本三级黄页| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 国产精品久久久777| 日本性爱少妇| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲欧美国产va在线播放频| 99热精品在线| 综合五月天| 操逼1区| 黄页大片在线观看| 亚洲天堂精品日韩电影| 伊人伊人LD| 97超碰人人操人人操| 婷婷色色五月天| 久久久性少妇| 99超级碰免费视频| 久久亚洲日韩国产欧| 92性色国产午夜福利在线661| 五月丁香网站| 自拍六区| 骚乳在线| 100啪啪视频大全| 久久久久久久久久久久久久9999| 综合久久97| 91久久精品国产| 91高潮| 激情第四色| 欧美美女视频| 国产精品老熟女一区二区| 欧美97se| 日本少妇va7777| 天天日天天操天天射河南省| 午夜情侣自拍网站| 99精品国产户外露出| 国产乱码久久| 好吊色综合| 日日日啊啊啊| 一级做a爰片久久毛片图片| 2019AV天堂| 九九精品99| 欧美精品久久| 日韩黄色成人性爱| 人人操人人色网| 伊人久久国产免费观看视频| 在线观看高清AV| 蜜桃色院一区久久| 99精品成人免费看| 无码外流操逼视频| 蜜桃久久一区| 国产精品经典一卡久久久 | av国产无码| 欧美精品系列| 一区=区三区视频| 91久久免费视频互動交流| 青青国产在线拍揄自揄拍| 成年女人黄网站| 淫纸中9区| 美女刺激久久国产欧美| 日日日日做夜夜夜夜无码| 亚洲97网站| 91熟女熟妇视频网站| 日韩一级性爱无码| 亚州欧美另类| 中文字幕色AV| 91久久18禁| 免费毛片在线播放| AV一区观看| 日日黄色三级网站| 男人的天堂2018.| 中文字幕av亚洲在线| 久久久不卡| 狠色婷婷久久一区二区三区_| 国产女性无套 免费观看| 97操| 免费男人的天堂| 韩国久久97| 成人性爱av| 91久久久久久久久18| 亚洲日韩熟女人妻高清在线| 天堂九九九九九九九九九| 亚洲国产一区二区入口| 97在线视频网站| 亚洲性少妇| a男人的天堂| 亚洲激情av| 国产精品原创巨作?v网站| 中文字幕精品码亚洲| 韩国国产欧美情侣视频在线| 欧美美女在线高潮999| 久久久中文| 亚洲高清国产理伦片| 97色亚洲| 亚洲精品91| 土豪酒店各种姿势玩弄极品幼稚| 少妇熟女一区二区三区| 99re在线视频| 超碰精品人妻狠狠干| 日韩三级在线观看mp4| 亚洲日韩AV视色| 亚洲综合婷婷| 99色色网| 亚洲五月丁香花狠狠干一区二区三区 | 日韩免费看在线黄色片| 国产精品久久久久久久久久久久| 精品无码少妇| 夜夜爽夜夜高潮夜夜爽| 国产99热| 青青在线视频日韩欧美| 男人天堂新| 欧美综合网A| 91性感在线| 国产伊人精品在线| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 人人操,人人插| 人妻夜夜爽天天爽三区麻豆AV网站| 亚洲图片视频小说| 丰满熟女一区二区三区在线播放| 亚洲天堂男人的天堂| 欧美日韩制服| 久久男人的天堂| 精品视频在线观看精品| 日熟女| 岛国片在线播放| 69少妇一区二区| 97er欧美性| 欧美 亚洲 另类 综合| 97精品在线| 久久熟女嫩草成人片免费| 青青草在线视频美女| 精品女同一区| 91丝袜| 麻豆国产精品午夜视频| 思思热国产高清| 国产乱伦视频污| 伊人网青青| 国产综合网站在线播放| 成人短视频在线观看| 黄污污污污| 亚洲城人男人的天堂| 97精品久久久久中文字幕| 天天热精品| 福利视频网站| 国产野战露脸在线播放| 色官网在线| 天天爽爽爽爽| 操淫穴亚洲五月丁香 | 2003天天干夜夜操| 玖玖爱影院| 日韩簧片免费看| 中文字幕亚韩| 国产久久视频| 这里都是精品| 久久成人国产精品| 狠狠操狠狠爱| 99久热精品99re6热| 免费A V在线| 成人资源中文字幕在线观看天天| 中文字幕丝袜美腿| 啊啊啊操死我了| 黄骗免费网站| 国产一区二区在线电影| 97超碰无码网| 久久久久夜夜夜夜| 另类一区| 老鸭窝黄色视频网站| 男人天堂新| 成人激情无码在线视频| 久草视频制服诱惑| 国产区在线| 永久免费发布性爱网| 98一区二区精品| 加勒比综合a∨| 丁香婷婷五月| AV天天在线观看| 亚洲,欧美,综合网| caoni国产亚洲av| 亚洲欧洲另类| 91在线丝袜| 精品视频一区二区| 六月丁香网| 人妻天天爽夜夜爽2| 亚洲熟女精品| 色九月综合| 久久久999国产精品| 日韩欧美成人综合在线| 十八禁啪啦拍视频无遮挡| 欧美视频激情久久久久久| 91人人操| 大香蕉碰碰| www成人啪啪18秘 免费| 国产美女口爆吞精| 人人人人插| 鸥美插入视频| 都市久久精品激情亚洲| 九九热免费在线国产视频伊人五月| 啊啊啊水好多| 99自拍视频| 超碰97综合网| 亚洲精品一区中文字幕乱码| 午夜精品久久久久久久第一页按摩| 色综合久久88色综合久久天天| 欧美性,色九九| 午夜超碰| 一区二区不卡| 亚洲第一精品在线视频| 色www精品视频在线观看| 777琪琪午夜免费A片| 69综合网| 日韩色| 中国熟女91| 三级片网站在线播放| 久久99干一本高清| 91美女在线精品视频| 操一操摸一摸| 成人欧美日超碰| 国产熟女免费观看久久| 97 国产精品| 久久丁香| 亚洲乱码精品一区二区| 一二三四视频在线社区中文字幕| 亚洲国产欧美一区二区潘金莲| 伊人成人情色综合| 男人高清无码一区二区| 伊人网在线点播| 五月天婷婷色| 91性片| 午夜精品99久久久久传媒| 国产综合色精品在线观看| 东北女人操逼| 国产青视频| 日本性爱少妇| 男人的天堂2019| 亚洲蜜臀懂色| 国内三级自拍小视频在线观看| 91热热色| 美女97超碰| 夜间福利片1000无码| 成人九九| 日韩精品一区二区三区四虎影视| 思思热在线视频免费| 日韩中文字幕宗合在线| 中文字幕在线观看丝袜| 免费精品中文字幕| 搡老女人老91二区| 少妇内射视频| 江都AV在线| 这里只有精品视频在线观看麻豆| 中文字幕乱妇免费视频| 精品国产乱码久久久兰草影视| 男人a天堂手机在线版| 另类欧美色| 精品美女久久一二三| 色五月首页| www.色吧5.com| 国产又粗又长又大的视频| 伊人久久88国产女| 人妻av在线| wwwxxx日本爽| 99999精品| 蜜桃狠狠色伊人亚洲综合 | 丁香五月激情五月| 色色色色日本| 国产区日韩区在线观看| 欧美91网| 97一区二区蜜臀| 中文字幕日本久久| 国模不卡| 人人操我人人干| 欧美宗合色| 96精品一区| 99青青草国产视频| 美女久久久久久久| 99热这里只有精| 综合欧美日本三级| 国产美女mm131爽爽爽爽| 国产熟女一区二区| 91性情| 91成人亚洲色图| 九九九九欧美| 色欲人妻一区二区在线| 四虎影视在线| 国产人伦精品一区二区三区| 曰韩欧美国产传媒麻豆第一区| 美女被艹尤物视频| 国产精选三级在线观看| ?亚洲伊人伊成久久人综合网| 自拍偷拍第26| 久操com| 精品国产91av一区二区三区| 伊人激情五月天一区二区 | 国产久久一区二区三区野外在线| 殴美,日韩国产伦精品| 伊人成人中文字幕久久网| 九九香蕉网| av资源在线观看少妇| 久久久久久AV无码免费网站| 强奸a片网| 丁香五月激情啪啪| 91麻豆天美国产欧美| 日本 欧美 亚中文字幕| 国产热RE99久久6国产精品首| 成人日本视频人妻在线| 国产亚洲99久久精品| 五月天丁香| 久久性爱视频| 国产精品2020| 婷婷九月丁香| 久久久久夜夜夜夜| 国产精品自拍xxxx| 综合色色婷婷| 国产精品制服丝袜中文字幕日韩一区二区三区 | 国产精品成人福利在线| 精品人妻一区二区蜜桃视频| 日本精品一区二区三| 国产精品动态一区二区三区四四| 亚洲少妇激情一区二区三区| 91制服丝袜中文字幕| 久久AV无码AV| 日本Xx性爱| 超碰av在线| 日本熟妇熟色97一本在线观看| 亚洲少妇诱惑| 久久国模av| 色偷偷综合91久久噜噜| 久操精品| 黄色小视频日本txt| 99久久com免费视频′| 精品九九九九| 欧美18禁91| japan日本高清乱xxxx| 久草毛片| 7月婷婷综合| 粉嫩av平台| 麻豆一区二区三区精品| 色综合色综合网| 无码人妻一区二区三区色欲aⅴ | 国产亚洲美日韩Aⅴ中文字幕无码成人| 91色色综合| 小草三级久久观看| 五月天婷婷激情| 天天看天天在线精品| 人妻蜜桃臀| 天天夜夜久久| 一个人在线看的黄色电影网站| 亚洲欧美经典一区二区| 久久久久久日韩| 久久久啊啊啊| 亚洲国产丝袜在线观看| 在线黄页看毛片| 久久人人爽爽人人爽人人片αV| 欧美高清91| 极品出轨视频网站| 欧美日韩人妻婷婷一区| 国产农村妇女精品一| 久久精品国产精品亚洲艾通辽熟妇 | 久久久噜噜噜久久久| www.色婷婷.com| 婷婷色综合| 久久久久久人妻| 超碰av在线| 亚洲色诱惑| 超碰人人色| 亚洲婷婷五月天| 俺去久久| 狠狠躁天天躁日日躁97| 麻豆区久久久久亚| 黄色工厂这里只有精品| 久草午夜| 午夜操逼不卡| www久| 五月婷在线| 中文自拍欧美影视| 色婷婷成人| 美中日韩无码| 91n美女视频| 久久九七| 久久99干一本高清| 国产一区在线看| 国产精品一区二区a| 久久久精品中文字幕爱豆| 午夜福利成人免费视频| 成人综合网 欧美| 91亚洲网站| 网页导航五月天免费一二三区 | 91新在线欧美| 国产成人精品必看| 国产亚洲中文不卡二区| 亚洲清纯唯美| 久久精品超碰| 日韩激情电影中文字幕| 亚洲第一综合| 91爱啪| 人人操人人搞人人草| 小少妇| 97操综合| 天天淫人人妻日日色| 秋霞网—男女啪啪亚洲免费体验区 | 男人的天堂一区三区| 中文字幕在在线观看网站| 大色网久久| 日本视频在线观看污污污| 色欲人妻一区二区在线| 网友自拍第一页| 91狠狠色丁香婷婷综合久久| 国产suv一区二区三区6| 大色综合网| 中文字幕精品亚洲熟女| 一级久久久久久久久久久| 九九九九九九九九九九九蜜桃| 日韩一级成人毛片免费观看| 无码视频一区二区| 2024人人操人人摸| 加勒比海色香蕉婷婷| 国产又粗又长又大的视频| 激情丁香五月| 男人天堂新在线| oumeisetu综合| 香港澳门日本三级网站| 99蜜桃臀亚洲成人在线观看| 中文日本免费高清| 91AV国产精品| 日韩免费人妻色情网站| 无码久久国产| 亚av顶级裸体一区二区三区四区五区 | 久久久久成人亚洲国产| 热热色AV| 欧美色图天堂网m| 狠狠综合| 成人国产视频在线观看| 国产精品久久久久久久久久久久久久久久| 亚洲日韩美女中文字幕乱| 久草电影网| 九九九九久久久| 中文字幕国产| 操逼片中文| 美女熟妇色| 久久国内| 日本九九久久99| 亚洲自拍偷拍视频在线| 91狼人| 色天欧美| 后入内射蜜桃臀| 午夜毛片亚洲精品片国产久久久| 天天日天天干天天色| 欧洲自拍色图gif在线| 国产成人无码久久精品| 日韩熟女乱伦中出| 插穴性爱视频在线观看| 亚洲黄日韩无码专区| 极品丝袜无码| 岛国不卡超碰护士AV在线播放| 97超碰人操| 台湾佬大香蕉| 69av一区二区三区| 小草三级久久观看| 三级片大波波| 中国的操老妇女| www.人人摸在线视频| 97干色| h4610国产人妻| 人妻少妇色综合| 97超碰逼| 试看60秒 爽| 手机在线视频国内精品| 极品五月天噜噜| 99久在线精品99re8热视频在线| 无套后入双马尾| 中国女人内射6XXXXX| 亚洲欧洲小说图片视频 | 免费日韩黄片| 动漫片子网站3黄| 欧美综合色图网| 手机在线播放国产福利| 精品网站9999| 精品国产乱码久久久久久蜜臀| 亚洲?V无码专区在线电影| 高清在线偷拍自拍视频| 97超色| 午夜视频好爽啊| 亚洲综合在线高清| 久久精品午夜国产亚洲AV无码| 午夜爽爽爽在线观看永久入口姬片| 久久极品一区二区| 另类图片综合| 亚洲射综合网| 色在线综合| 国产美脚女优尤物在线观看| 91无遮挡| 夜夜嗨AV蜜臀av| 一起草三级AV电影在线观看 | 中文有码第五页| 老司机福利青青草| 久干网| 综合操逼| 97超碰欧美手机在线| 91一起操| 亚洲成人激情小说视频| 成人天天看站长推荐| 免费在线黄片视频| 亚洲中文字幕熟女少妇一区二区| 吻戏激情性巴克| 精品福利| 亚州高清av| 99热啪啪| 欧美性爱日韩性爱| 欧美黑人与女人91| 亚洲成人精品久久久| 国产麻豆福利av在线播放| 91成人亚洲色图| 久久女人视频| 日本精品不卡一二三区| 天天日天天操天天射河南省| 精品人妻无码一区二区三区不卡-精品人妻无码一区二区...|精品少妇一区二区三 | 丁香五月婷婷色| 在线人成亚洲视频免费观看| 久久天堂网| 艳尻美人妻| 日韩/97| 伊人五月天| av影片在线观看不卡| 日本道久久综合色色| 嗯啊免费视频| 成人在线视频网| 福利操逼| 黄色视频60分钟| 久久久久久综合久久伊人蜜月| 四虎 精品 WWW| 91色情黑丝搞鸡在线观看一区二区三区三州| 国产女大学生AV| 97在线免费视频观看| 热久久无毒不卡| 精品人妻一区二区三区视频| 91色五月俺来也| 99啪| 国产久久久9999| 在现视频女上位好爽| 九九99精品视频在线观看| 亚洲Av无码成人精品国产| 多毛小伙内射老太婆| www.伪伪| av日韩手机在线影视| 大香蕉www.超碰| 人人艹亚洲| 国产精品欧美日韩久久| 亚洲αv一区二区三区| 亚洲av无线观看| 国产精品久久伊人| 一道本东京热加勒比一区二区三区| 99久久久久| 精品久久久无码| 国产suv精品一区二区四区999| 天堂精品在线| 熟妇高潮精品一区二区三区下载| 中文久久96| 97色欧洲| 国产日韩手机视频在线| 亚洲天堂自拍| 免费观看啪视频| 精品夜夜澡人妻无码| 干b在线性社区| 97欧美精品综合| 日本布卡一区二三区| 99re在线精品78| 日韩人妻一二三区视频| 黑人与人妻| 综合操逼| 日韩91网| 蜜桃精品一区二区三区ww| 欧美色www亚洲国产阿娇要播| 女人爽到高潮久久久| yw尤物av无码点击进入麻豆| 国产13区| 欧美一区二区观看在线| 深喉吞精| 久艹伊人精品综合在线| 一级片在线观看高清无码| 天堂九九九九九九九九九| 留下AⅤ黄色片| 97在线播放| 日韩三级网址| 欧美成熟性爱精品| 91人妻视频| 情色大香蕉| 精品日韩人妻精品一二三区| 91在线|亚| 国产精品suv一区| 99re28在线观看| 在线a亚洲视频播放在线| 五月天婷婷久久| 97超碰资源网| 国产一区二区三区久久久精品| 亚洲丝袜天堂| 岛国色情视频在线观看| 日本不卡一二区| 欧美不卡五十路| 国产一级久久久| 丰满岳乱妇一区二区三区| 97视频www| 内射中国少妇高清视频免费视频 | 最新精品久久蜜桃| 欧美三四五区| 在线97在线| 亚洲欧美日韩电影网站一区| 亚洲国产精品无码AV久久久| 东京热av男人的天堂| 国产日韩色综合| 亚洲玖玖爱| 欧美精品偷拍| 97人人操人人摸人人爱| 国产精品禁久久久精品| 毛片中心9视频99| 久久成年精品| 91粉嫩萝控精品福利网站_精品影音先锋国 | 大香蕉92| 亚洲不卡av在线| 老司机老司机午夜影院| 国产精品视频在线观看| 日日骚精品视频| 日韩草久视频| 操99| 天天搞在线综合网| 国产一区二区在线播放| 免看60秒涩涩视频| 绯色AV粉色AV蜜臀AV| 色色色综合| 亚洲最新a在线观看| www国产无码| 91高清欧美| 亚州精品人妻一二三区| 欧美精品第四五页中文字幕在线观看| 亚洲第一在线视频| 午夜爽爽爽在线观看永久入口姬片| 欧美性第一页| 极品少妇久久久| 亚洲色图片区| 四虎影视 亚洲无码| 吊色| 玖玖综合视频| 亚洲欧美91√| 天美传媒麻豆一区二区三区国产精| 秋霞鲁丝午夜无码一区二区三| 天天α片| 99精品久久久久久| 玖色av| 夜夜夜夜久久久久| 97视频播放| 精品国产一区探花在线观看| 精品91| 在线国产福利网址导航| 韩国一级婬片A片无码天美| 欧美一区二区三区入口| 十八禁成人网站在线观看| 欧美系列在线一区二区| 九九99精品视频在线观看| 欧美性猛交美女自慰91| 夜夜操91744565| 天天操天天日青青草超碰av| 老熟女综合网| 日韩偷拍一区二区三区| 性色av蜜臀av色欲aV| 强免费黄色网址| 成 人 影视 一区 二区 三区 四区| 国产精品色哟哟| 久久久九| 女人被男人桶爽视频网站| 色婷婷久久| 伊人网在线观看| 日韩精品-原创伙伴| 人妻中文字幕精品无码| 久久九九网| 清清草影| 亚洲熟妇一,二,三期| 五月天婷精品激情| 无码人妻丰满熟妇奶水区毛片| 综合网亚洲在线| 超碰成人公开| 久久亚洲人妻| 亚洲高清视频在线免费观看| 探花精品视频| 日本加勒比无码专区一二三| 人人做天天爱| 第二页中文字幕| 小说区 图片区色 综合区| 丰满的三级少妇欧美久久久| 色偷综合| 手机在线中文字幕国产| 超碰碰激情97+久| 18禁看网站一区| 亚洲综合影片| 亚洲欧美日韩免费电影| 中文久久一区| 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美日韩国产在线| 91无码精品| 亚洲天堂另类美腿| 日本操逼无码| 自拍欧美| 911粉嫩人妻| 天操天操夜操夜月操月年年操操| 午夜爽爽爽在线观看永久入口姬片| 精品一二三区四视频| 最新中文字幕精品在线| 久久久久96| renqi久久久久久久久久久久| 日本Suv精品一区二区| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | 久久久人妻| 日韩超碰精品综合| 毛片一区二区| 91精品国产综合久久久蜜臀| 一区二区三区 日韩欧美| 五月天婷婷小说| 97在线观视频免费观看| 日本人体九九九九九九| 综合婷婷| 五月婷婷激情网| 亚洲图片欧洲图片aⅴ| 91视频在线观看18| 天天日天天干天天摸天天操| 欧美激色| 极品少妇久久久久| 亚洲成人AB| 91综合站| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 欧美人妻少妇| 欧州91高潮| 操b在线观看| 2018天天干在线视频| 欧美精品xxxwww| 综合一区中亚洲国产成人综合精品| 日韩色| 亚洲精品久久久久久久蜜桃臀| 久久久精品国产亚洲AV无码| 欧日韩不卡视.频| 少妇人妻无码| 精品二区三四区五电影| 超碰97 线线 在现| 天天干干天天干干| 亚洲天堂 视频你懂的| 殴美性色a级欧美| 综合97亚洲| 超碰97人妻| 午夜寂寞欧美| 天天弄欧美| 99热一区二区三区四区| 国内精品嫩模A∨私拍小视频| 亚洲最新中文字幕免费| 区日韩亚洲乱码av电影| 国产av色网| 亚洲无线码欧洲精品区别| 亚洲欧美国产日本一区二区三区| 色婷婷综合久久久久中文一区二区| 狠狠躁日日躁夜夜躁A| 亚洲一区操| www.99中文字幕| 91春色| 老司机深夜18禁污污网站| 亚洲一区二区中文字幕| 九月婷婷| 欧美香蕉视xxx| 久久大香蕉97| 国产精品在线网站| 伊人91| 91人妻PORNY九色大屁股| 91欧美成人色站| dy888午夜老子影视达达兔| 国产福利影视| 熟女熟妇一区二区三区视频| 一级黄色性爱A级片| 99热 按摩 日韩| 无码最新| www被窝色com| 1769一区二区| 色亚洲欧美| 色婷婷激情| 亚洲色图综合| 草伊人高潮喷水超碰| 久久av无码| 色哟哟av网址| 大香蕉伊人久久| 中文一区二区婷婷视频| 超碰 国产熟女精品一区| 国产日韩无码一区二区三区久久区| 亚洲国产成人精品无码专区| 国产精品乱码久久久久久久久久久久| 怡红院成人av| 人人干黄色| 久热色情精品| 九九热re99re6在线精品| 欧美一区二区日韩三区| 怡红院视频在线| 久草线上视频免费看| 91一区二区三区蜜桃| 免费看污网站| 九九热九九| www.婷婷| 青青草公开在线免费不卡视频| 五月丁香六月综合缴清无码| 97中文超碰| 日韩精品一区二区人人人| 天堂中文日本在线观看| 伊人aaa| 欧美午夜视频免费观看| 久久婷婷亚洲欧| 18啪啪手机免费性爱| 天天日日本| 国产JDAV无码视频在线观看| 免费看污网站| 精品久久无码午夜福利| 黄色不卡视频| 欧美日韩中文亚洲v在线综合| 欧美色图人妻| 婷婷色播婷婷| 上特色A在线| 国产精品 午夜福利| 囯戸精品高潮呻吟旡码| 日韩精品影视| 91N五十路| 精品人妻一区二区三区在| 精人妻无码一区二区三区伊人直播| 蜜臀久久99精品久久久老,,| 国产A v无码专区| 欧美色999| 可乐操亚洲蜜911| 人人爽人人精品乱人伦AV| a网站免费观看| JIZZJIZZ国产精品喷水| 另类TS人妖一区二区三区| 精品人妻一区二区三区在线视频不卡| 国产噜噜噜噜噜久久久久久久久| 啊啊啊操一区| 精品超碰中文在线| 国内三级自拍小视频在线观看 | 欧美爱三级日韩久久| 亚洲天堂男人天堂| 亚洲国产精品无石码久久| 天天摸天天操视频| 国产精品农村妇女| 91麻豆天美国产欧美高潮| 骚逼自拍99| 九久久精| 国产97亚洲| 91社区伊人| 97超碰磁| 精品人体无圣光凹凸| 国产传媒操逼视频| 久久人人舔人人爽舔人人av片| 亚洲字幕一区二区| 久久精品国产96精品亚洲拳交| 亚洲欧美自拍偷拍| 久久一区二区三区入口| 成人看片网站| 啊啊啊com| 60秒免费小视频| 99热在线只有精品| 激情小说在线视频| 精品人体无圣光凹凸| 丁香婷婷色五月| 亚洲一区二区三区久久 亚洲一区二区| 久操B网| 精品无码一区二区人妻久久蜜桃| 18精品一二区| 久久久国产av美女私房| 国产AV无码AV| 久久婷婷一区二| 少好三P| 999久久久免费精品国产牛牛| 欧美亚洲一级在线观看| 亚洲情色电影网| 久久人体一区二区| 国产精品爆乳懂色蜜乳| 色狠狠综合| 羞答答AV中文字| 亚洲精品影视老司机| 亚洲色91C| 强奸乱伦麻豆| 久久天堂网| 无码9区| 国产自制av蜜乳| 91久久久视| 国产亚州高清国产拍精| 97视频在线观看网站| 亚洲天堂久久| 乱伦熟女论坛| 青青操97| 日韩肏逼视频| 久久这里精品国产99丫e6| 国产剧情在线| 97天天摸天天碰| 探花精品 一区二区| 色综合潮| 亚洲国产欧美另类自拍| 日韩精品电影| 天天日天天爽| 百度百度日本操逼| 免费久久9999| 日韩欧美字幕亚洲一区二区| 久欲AV| 婷婷在线视频| 人人操人人摸人人看人人插| 欧美日本天堂| 欧美视频在线视频免费va| 久久这里只| 亚洲情色电影网| 麻豆91熟妇人妻中文字幕茄子| 狠狠干狠狠色| 亚欧无码线免费观看视频| 在线黄色污污网站| 久草视频分类在线| 国产成年女黄特黄| 天天在线91| 热天堂一区二区| 国产日韩欧美三级片| 久久亚洲AV无码白度| 国产成人精品午夜福利| 五月丁香成人网| 俄罗斯一区二区视频在线观看| 少妇久久久免费| 久久精品视频久久久| 少妇啪啪自拍| 精品无码久久久久久久杏吧| 久噜噜| 欧美嗯啊……在线观看视频免费| .精品人妻一区二区三| 国产精品对白自产拍| 国产精品熟女AV中文字幕在线播放| 国产日韩区| 亚洲色宗合| 国语精品av| 校园春色综合香蕉| 久超超碰| 男人下部插入女人下部| 男女一级A片大黄,一进一出| 我爱搞逼综合网| 熟妇国产免费一区| 91强热人妻| 欧洲性人爱视频| 国产AV激情无码久久无码 | 91一区二匹| 神马久久久久久| 青青青国产手线观看视频2| 成人国产视频在线观看| 久久欲| 国产精品人妻一区二区| 午夜福利免费精品视频| 加勒比大香蕉视频在线| 啊啊啊爽爽| 操老熟女AV| 中文字幕视频在线观看| 亚洲影院无码在线| 99久久久无码国产精品性男| 中文字幕日韩综合| 欧美少妇性乱| 97干在线视频| av在线观看不卡网站| 久久99综合| 加勒比伊人综合| 日本不卡五区| 熟女六十路| 午夜后入| 84YTCOM性无码| 99热99色| 亚州国产成人精品女人久久| 亚洲丝袜综合| 高清国产av无码| 啊啊啊啊啊啊啊啊要喷了| 国产精品美女久久久久久网站| 色综合久久88色综合久久天天| 男人的天堂2018.| 78操B| 欧美疯狂做爰xxxx| 精彩久久中文| 在线人成亚洲视频免费观看| 男人的天堂三级| 超碰98综合网| 亚洲综合色图欧美| 日本在线观看网址| 在线a亚洲视频播放在线| 亚洲蜜乳av| 熟女乱伦A| 黄网色一区二区三区四区精品| 91综合网| 久久久久免费看少妇A片特黄| 国产成人精品日本亚洲语言| 亚洲限制级在线| 欧美91精彩| 伊人久久国产免费观看视频| 黑人娇小av在线播放| www久久国产精品| 曰韩操B| 婷婷五月影院| 一区=区三区视频| 久久久久久久久久久人妻| 观看视频图片一区二区三区| 欧美猛交黑寡妇中文字幕| 骚妻少妇精品性色无码四色A V| 极品一区二区三区免费| 中文字幕视频二区| 亚洲欧洲日韩天堂av| 九九精品无码专区免费| 白嫩国模丰满一二三区| 91欧美高清| 久久久久久少妇| 91天堂网| 国岛片视频| 哈哈操电影AV| 精品夜夜澡人妻无码AV| 一级性爱视频免费观看 | 97亚洲中文| 国产日韩精品suv| 亚洲无套久久嗯嗯| 2019午夜福利视频| 伊人九九九| 国产 日韩,欧美 自拍| 激情综合久久| 91熟女熟妇视频网站| 91亚洲色人| 韩国一级做a久久久久| 九九九一二三| AV天黑人| 韩国毛片一区二区三区| 久久久久久久久久久久久久久久9| 96AV精品| 亚洲不卡AV在线| 国产原创自拍| 久热免费视频| 天天日天天色| 国产免费一区二区在线A片视频| 国产女人91精品嗷嗷嗷嗷| 亚洲系列第一页| 3P乱轮视频| 国产真实野战在线视频| 日本人人操人人操| 首页中文字幕中文字幕免费| 日韩一级特黄av毛片| 强奸乱伦Av网| 国产精品视频白浆免费| AV无码久久久精品| 欧美特大黄一级片片免费| 日本三级R| 亚洲丁香花色| 另类综合另类| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 国产午夜精品理论片a大结局| 极品白嫩美少妇在地板上位骑射淫水泛滥| 天天干嫩逼网| 亚洲一区二区在线观看91| 2017av无码免费无线播| 国产91av在线播放|