欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

LSTM時(shí)間序列預(yù)測(cè)源碼解析:從Excel數(shù)據(jù)處理到多步預(yù)測(cè)避坑指南

LSTM時(shí)間序列預(yù)測(cè)源碼解析:從Excel數(shù)據(jù)處理到多步預(yù)測(cè)避坑指南 簡(jiǎn)介這是一套基于PyTorch的LSTM時(shí)間序列預(yù)測(cè)完整源碼定位是讓小白也能快速跑通整個(gè)預(yù)測(cè)流程解決單變量/多變量輸入、單步/多步預(yù)測(cè)等常見(jiàn)時(shí)序建模需求。程序從Excel或CSV讀取數(shù)據(jù)更換數(shù)據(jù)集無(wú)需改動(dòng)核心代碼內(nèi)置MAE、MSE、R2、MAPE等評(píng)估指標(biāo)并按標(biāo)準(zhǔn)框架劃分訓(xùn)練集、驗(yàn)證集與測(cè)試集便于觀察模型在不同階段的表現(xiàn)。資源共27個(gè)文件約9.22MB以py源碼、pyc編譯文件、xlsx示例數(shù)據(jù)、png效果圖及pdf/docx使用說(shuō)明手冊(cè)為主另附帶訓(xùn)練好的模型權(quán)重可快速對(duì)照示例結(jié)果驗(yàn)證。配套注釋和使用手冊(cè)覆蓋數(shù)據(jù)替換、模型訓(xùn)練、預(yù)測(cè)與評(píng)估全流程做課程設(shè)計(jì)、畢業(yè)設(shè)計(jì)或復(fù)現(xiàn)實(shí)驗(yàn)對(duì)比都很順手。已有266人學(xué)習(xí)下載適合剛接觸時(shí)序預(yù)測(cè)并希望直接套用模板的初學(xué)者。1. LSTM時(shí)間序列預(yù)測(cè)的“無(wú)腦”源碼這個(gè)包到底幫你省了哪些事當(dāng)你手里只有一份 Excel——銷(xiāo)量、傳感器溫度、設(shè)備振動(dòng)幅度、水庫(kù)水位——卻要在幾天內(nèi)交付一個(gè)能跑的基于 LSTM 的時(shí)間序列預(yù)測(cè)程序時(shí)真正讓人頭大的往往不是模型數(shù)學(xué)而是數(shù)據(jù)怎么喂進(jìn)去、訓(xùn)練完怎么保存權(quán)重、預(yù)測(cè)完怎么算誤差。這份基于 PyTorch 的 LSTM 預(yù)測(cè)源碼包刻意走“少折騰、直接出結(jié)果”的路線單變量/多變量輸入自由切換單步/多步預(yù)測(cè)自動(dòng)適配數(shù)據(jù)直接從 Excel/CSV 讀取訓(xùn)練集、驗(yàn)證集、測(cè)試集標(biāo)準(zhǔn)三切分訓(xùn)練結(jié)束一口氣給你 MAE、MSE、R2、MAPE 四個(gè)指標(biāo)。我拆過(guò)它全部代碼結(jié)論是它配得上“無(wú)腦”兩個(gè)字但里面還是藏了四個(gè)隱蔽坑。這篇文章從文件結(jié)構(gòu)到模型參數(shù)、從數(shù)據(jù)替換到指標(biāo)計(jì)算把這包源碼一次講透。2. 數(shù)據(jù)從 Excel 讀到 LSTM 輸入格式要求、歸一化與三集劃分2.1 數(shù)據(jù)讀取Excel/CSV 的打開(kāi)方式與格式紅線這個(gè)源碼包的數(shù)據(jù)入口是 Excel 或 CSV不是網(wǎng)上現(xiàn)成的數(shù)據(jù)集。你需要把數(shù)據(jù)整理成至少兩列一列是時(shí)間或順序索引一列是目標(biāo)值跑多變量就再加若干特征列目標(biāo)列放最后一列。先看最小讀取代碼import pandas as pd import numpy as np # data.xlsx 是默認(rèn)數(shù)據(jù)文件sheet_name0 表示第一個(gè)工作表 df pd.read_excel(data.xlsx, sheet_name0) print(df.columns.tolist()) # 確認(rèn)列名 print(df.head()) # 確認(rèn)前幾行 print(df.dtypes) # 確認(rèn)每列數(shù)據(jù)類(lèi)型這段代碼里有兩個(gè)容易被忽略的點(diǎn)。第一列名不要用中文和空格雖然源碼里很多位置靠列索引取值但換數(shù)據(jù)時(shí)列名干凈能大幅減少排錯(cuò)成本。第二dtypes 輸出很關(guān)鍵Excel 里看著是數(shù)字的列經(jīng)?;烊肷倭课谋咀兂?object 類(lèi)型后續(xù) sklearn 的 MinMaxScaler 會(huì)直接報(bào)錯(cuò)。正常的 dtype 應(yīng)該是 float64 或 int64看到 object 就說(shuō)明數(shù)據(jù)表里藏了非數(shù)字內(nèi)容。CSV 的讀取稍微不同df pd.read_csv(data.csv, encodingutf-8-sig)編碼參數(shù)我建議固定寫(xiě) utf-8-sig。Windows 上用 Excel 另存的 CSV 默認(rèn)是 ANSI/GBK 編碼不帶這個(gè)參數(shù)中文列名或者文字型特征讀進(jìn)來(lái)直接亂碼。utf-8-sig 的好處是同時(shí)兼容帶 BOM 和不帶 BOM 的 UTF-8 文件Linux 和 Windows 之間來(lái)回拷文件都不出問(wèn)題。讀取之后第一件事是清理數(shù)據(jù)。時(shí)間序列數(shù)據(jù)的清理按順序做先 dropna() 或者 fillna(methodffill)把缺值處理掉再用肉眼掃一遍有沒(méi)有明顯超出量級(jí)的異常值。時(shí)間序列里如果混入一個(gè) 1000 倍的峰值歸一化時(shí)整個(gè)數(shù)據(jù)的尺度都會(huì)被拉歪模型的預(yù)測(cè)基本作廢。源碼包里數(shù)據(jù)是干凈的但換成你自己的 Excel 時(shí)這一關(guān)必須自己過(guò)。2.2 歸一化為什么選 MinMaxScaler 而不是 StandardScalerLSTM 內(nèi)部激活函數(shù)默認(rèn)是 tanh輸出被壓在 [-1,1]原始數(shù)據(jù)如果是幾萬(wàn)、幾十萬(wàn)的量級(jí)梯度在反向傳播時(shí)很容易爆炸。源碼包默認(rèn)用 MinMaxScaler 把數(shù)據(jù)壓到 [0,1]。from sklearn.preprocessing import MinMaxScaler scaler MinMaxScaler(feature_range(0, 1)) data scaler.fit_transform(df.iloc[:, 1:].values.astype(np.float32))這里有兩個(gè)細(xì)節(jié)。第一個(gè)是 .values.astype(np.float32)PyTorch 默認(rèn)的 FloatTensor 是 32 位浮點(diǎn)如果喂 float64 的 numpy 數(shù)組在構(gòu)造 Dataset 時(shí)大概率報(bào) dtype 不匹配。第二個(gè)是 df.iloc[:, 1:]如果 DataFrame 里有時(shí)間列或 id 列必須先切掉時(shí)間戳在數(shù)學(xué)上沒(méi)有時(shí)序預(yù)測(cè)意義混進(jìn)去反而干擾特征計(jì)算。注意fit_transform 用在整份數(shù)據(jù)上還是先 fit 訓(xùn)練集再 transform 測(cè)試集最嚴(yán)格的寫(xiě)法是先對(duì)訓(xùn)練集 fit驗(yàn)證集和測(cè)試集用同一個(gè) scaler 做 transform避免測(cè)試集信息提前泄漏到歸一化參數(shù)里。數(shù)據(jù)量夠大且分布平穩(wěn)時(shí)直接對(duì)全量 fit 工程上也常見(jiàn)但嚴(yán)格項(xiàng)目建議按前者來(lái)。這里解釋一下為什么不用 StandardScaler。StandardScaler 把數(shù)據(jù)變成均值 0 方差 1適合線性模型和部分深度網(wǎng)絡(luò)但 LSTM 場(chǎng)景里 MinMaxScaler 更常見(jiàn)原因是它嚴(yán)格限制輸出范圍讓 tanh 激活始終處于有效工作區(qū)間。還有一個(gè)實(shí)際考慮MinMaxScaler 反歸一化時(shí)直接乘回去就還原真實(shí)數(shù)值不來(lái)回折騰對(duì)新手更友好。2.3 滑動(dòng)窗口構(gòu)造與三集劃分的邏輯這個(gè)源碼包比很多開(kāi)源項(xiàng)目講究的地方在于分了三份而不是兩份。默認(rèn)比例 70% 訓(xùn)練、20% 驗(yàn)證、10% 測(cè)試。代碼邏輯等價(jià)于train_size int(len(data) * 0.7) val_size int(len(data) * 0.2) train_data data[:train_size] val_data data[train_size:train_size val_size] test_data data[train_size val_size:]時(shí)間序列切分有兩個(gè)必須強(qiáng)調(diào)的點(diǎn)。第一不能隨機(jī) shuffle。數(shù)據(jù)一批接一批打亂之后模型就看到未來(lái)信息訓(xùn)練指標(biāo)再好看也是假象。第二三份數(shù)據(jù)之間允許有滑動(dòng)窗口的重疊這不叫數(shù)據(jù)泄漏而是時(shí)間序列樣本構(gòu)造的正常形態(tài)因?yàn)榇翱谥g本來(lái)就共享了部分歷史。滑動(dòng)窗口的構(gòu)造是時(shí)間序列預(yù)測(cè)的核心步驟源碼里對(duì)應(yīng)這段邏輯seq_len 7 # 用過(guò)去7個(gè)時(shí)間步預(yù)測(cè)下一個(gè) x_samples, y_samples [], [] for i in range(len(data) - seq_len): x_samples.append(data[i:i seq_len, :]) y_samples.append(data[i seq_len, -1])x_samples 的每個(gè)元素形狀是 (seq_len, feature_num)y_samples 是單個(gè)標(biāo)量。這一個(gè)標(biāo)量就是“單輸出”的含義。seq_len 參數(shù)決定模型看多長(zhǎng)的歷史取值建議參考數(shù)據(jù)周期按天記錄的銷(xiāo)量數(shù)據(jù)一個(gè)周期是 7 天seq_len 取 7 或 14 起步分鐘級(jí)交易數(shù)據(jù)先畫(huà)自相關(guān)圖找周期再定沒(méi)有固定公式。2.4 單變量/多變量切換feature 數(shù)量怎么影響 input_size源碼支持單變量和多變量自由切換落到代碼層面就是 input_size 一個(gè)參數(shù)。單變量時(shí) input_size1多變量時(shí) input_size特征列總數(shù)。在讀取階段的表現(xiàn)差異是# 單變量只保留目標(biāo)列 df pd.read_excel(data.xlsx, sheet_name0) single df[[value]].values # 多變量保留所有特征列 multi df.iloc[:, 1:].values單變量適合數(shù)據(jù)維度有限、只關(guān)心目標(biāo)本身趨勢(shì)的場(chǎng)景多變量適合有外部驅(qū)動(dòng)的場(chǎng)景比如預(yù)測(cè)銷(xiāo)量時(shí)把天氣、促銷(xiāo)、節(jié)假日一起喂進(jìn)去。但多變量不是免費(fèi)的特征列越多模型需要的數(shù)據(jù)越多特征之間如果存在強(qiáng)相關(guān)性LSTM 可能學(xué)出冗余表示。建議先從單變量跑通再用多變量對(duì)比漲幅不要一上來(lái)就堆特征。這一段也順帶解釋了為什么數(shù)據(jù)讀取后要立刻檢查列的順序和目標(biāo)列位置——源碼默認(rèn)目標(biāo)列在最后一列如果自己的數(shù)據(jù)把目標(biāo)列放在中間記得用 pandas 的 reindex 或按列名切片挪到末尾。所有數(shù)據(jù)處理做完之后數(shù)據(jù)端的三件事——讀取、歸一化、切分——就算齊了下一章進(jìn)源碼包內(nèi)部。3. 源碼包內(nèi)部結(jié)構(gòu)main.py、models.py、utils.py 各管哪一段3.1 文件地圖誰(shuí)是入口、誰(shuí)是框架、誰(shuí)是工具人解壓 zip 后真正要?jiǎng)拥奈募还参鍌€(gè)。先看職責(zé)表文件角色使用場(chǎng)景main.py程序入口訓(xùn)練和預(yù)測(cè)流程編排每次調(diào)參都改它models.pyLSTM 網(wǎng)絡(luò)結(jié)構(gòu)定義改模型架構(gòu)時(shí)才動(dòng)utils.py數(shù)據(jù)讀取、歸一化、指標(biāo)計(jì)算工具換數(shù)據(jù)格式時(shí)動(dòng)data.xlsx原始數(shù)據(jù)文件換成你自己的數(shù)據(jù)model_LSTMMain_weights預(yù)訓(xùn)練權(quán)重跳過(guò)訓(xùn)練直接預(yù)測(cè)時(shí)用main.py 只是調(diào)度者不是模型定義的地方。第一次看源碼的人容易到處找網(wǎng)絡(luò)結(jié)構(gòu)翻幾圈才發(fā)現(xiàn) LSTM 定義在 models.py 里。utils.py 把數(shù)據(jù)讀取、窗口構(gòu)造、歸一化、指標(biāo)計(jì)算全部拆出來(lái)這個(gè)分層思路是對(duì)的改數(shù)據(jù)處理邏輯時(shí)不用碰模型代碼。3.2 模型定義LSTM 層加全連接層的單輸出結(jié)構(gòu)models.py 的結(jié)構(gòu)是時(shí)間序列預(yù)測(cè)最標(biāo)準(zhǔn)的形態(tài)LSTM 層提取時(shí)序特征再接全連接層輸出預(yù)測(cè)值。核心代碼import torch import torch.nn as nn class LSTMModel(nn.Module): def __init__(self, input_size, hidden_size, num_layers, output_size): super(LSTMModel, self).__init__() self.lstm nn.LSTM( input_sizeinput_size, hidden_sizehidden_size, num_layersnum_layers, batch_firstTrue ) self.fc nn.Linear(hidden_size, output_size) def forward(self, x): out, (h_n, c_n) self.lstm(x) # 取最后一個(gè)時(shí)間步的隱層輸出做全連接 out self.fc(out[:, -1, :]) return out參數(shù)逐個(gè)說(shuō)。input_size 是特征數(shù)量單變量是 1多變量是特征列總數(shù)。hidden_size 是 LSTM 隱藏單元數(shù)決定模型記憶容量小數(shù)據(jù) 64 起步數(shù)據(jù)量大的可以設(shè) 128 或 256過(guò)大了反而容易過(guò)擬合。num_layers 是堆疊層數(shù)2 表示兩層 LSTM 堆疊能學(xué)到更復(fù)雜的時(shí)序依賴(lài)但訓(xùn)練更慢。batch_firstTrue 省了一個(gè) permute 步驟默認(rèn) PyTorch LSTM 期望輸入形狀是 (seq_len, batch, feature)batch_firstTrue 后輸入變成 (batch, seq_len, feature)和我們直覺(jué)構(gòu)造的樣本形狀完全一致。如果你在別處看到 LSTM 代碼 forward 里寫(xiě) x.permute(1,0,2)那就是沒(méi)用 batch_first 的寫(xiě)法兩件事是等價(jià)的。forward 里 out[:, -1, :] 是“單輸出”的核心操作。不管輸入是 7 個(gè)時(shí)間步還是 14 個(gè)時(shí)間步模型只看最后一個(gè)時(shí)間步的隱層狀態(tài)然后由全連接層壓成 1 個(gè)預(yù)測(cè)值。要改成多步預(yù)測(cè)一條路是把 fc 輸出維度從 1 改成 n_steps一口氣輸出未來(lái) n 步另一條路是保留單輸出但迭代預(yù)測(cè)每次預(yù)測(cè)一個(gè)值再拼回去喂給模型。前者多一個(gè)超參后者會(huì)累積誤差后面進(jìn)階章細(xì)講。3.3 權(quán)重文件與跳過(guò)訓(xùn)練直接預(yù)測(cè)包內(nèi)放了訓(xùn)練好的權(quán)重主要用于省掉訓(xùn)練時(shí)間。加載權(quán)重的標(biāo)準(zhǔn)寫(xiě)法model LSTMModel(input_sizefeature_num, hidden_size128, num_layers2, output_size1) checkpoint torch.load(model_LSTMMain_weights.pth, map_locationcpu) model.load_state_dict(checkpoint) model.eval()這里有幾個(gè)向坑很多的細(xì)節(jié)。第一map_locationcpu 必須寫(xiě)否則在沒(méi)有 GPU 的機(jī)器上加載別人 GPU 訓(xùn)練的權(quán)重會(huì)直接報(bào)錯(cuò) Attempting to deserialize object on a CUDA device。第二load_state_dict 之前必須保證模型的 hidden_size、num_layers 與訓(xùn)練時(shí)一致否則鍵名對(duì)不上運(yùn)行報(bào) Missing key 或 Unexpected key。第三加載完成后 model.eval() 是必選項(xiàng)模型里如果帶 Dropout 或 BatchNorm訓(xùn)練模式和推理模式的執(zhí)行路徑完全不同忘記切模式會(huì)讓預(yù)測(cè)結(jié)果帶隨機(jī)性。3.4 main.py 的整體流程從數(shù)據(jù)到指標(biāo)的編排main.py 的流程可以歸納為六個(gè)順序步驟讀數(shù)據(jù)、構(gòu)建窗口、切三集、定義模型、開(kāi)始訓(xùn)練、評(píng)估輸出。骨架如下def main(): data load_data(data.xlsx) # 從 utils 讀取 x, y build_sequences(data, seq_len) # 構(gòu)造窗口 train_loader, val_loader, test_loader split_dataset(x, y) # 三集 model LSTMModel(input_size, hidden_size, num_layers, 1) train(model, train_loader, val_loader, epochs) metrics evaluate(model, test_loader) print(metrics)每一行都對(duì)應(yīng)一個(gè)實(shí)際函數(shù)。這種編排方式的好處是把研究流程和工程細(xì)節(jié)剝離開(kāi)模型定義不動(dòng)調(diào)節(jié)點(diǎn)時(shí)只需要改 main.py 頂部的幾個(gè)參數(shù)。這也解釋了為什么權(quán)重文件名叫 model_LSTMMain_weights——它是對(duì)應(yīng) main.py 里創(chuàng)建的那個(gè)模型實(shí)例保存的。參數(shù)集中在 main.py 頂部是這份源碼特別方便改的地方。打開(kāi) main.py 大概率看到一堆賦值語(yǔ)句比如 epochs、batch_size、learning_rate、seq_len、hidden_size。batch_size 在時(shí)間序列場(chǎng)景里常用 32 或 64epochs 在 50 到 200 之間學(xué)習(xí)率 0.001 是 Adam 的推薦值。這些參數(shù)改完整個(gè)流程重跑一遍就行不用動(dòng)其它文件。這也是“無(wú)腦”二字的來(lái)源。4. 訓(xùn)練與評(píng)估損失函數(shù)、優(yōu)化器和 MAE/MSE/R2/MAPE 的實(shí)現(xiàn)4.1 訓(xùn)練循環(huán)Adam、MSE 損失與權(quán)重保存main.py 里的訓(xùn)練部分是標(biāo)準(zhǔn)的 PyTorch 循環(huán)沒(méi)有多余封裝。關(guān)鍵代碼import torch.optim as optim model LSTMModel(input_sizefeature_num, hidden_sizehidden_size, num_layersnum_layers, output_size1) criterion nn.MSELoss() optimizer optim.Adam(model.parameters(), lr0.001) epochs 100 for epoch in range(epochs): model.train() for x_batch, y_batch in train_loader: optimizer.zero_grad() y_pred model(x_batch) loss criterion(y_pred, y_batch.view(-1, 1)) loss.backward() optimizer.step()損失函數(shù)選 MSE 而不是 MAE 的原因很實(shí)際MSE 對(duì)預(yù)測(cè)值和真實(shí)值的偏差做平方梯度大小正比于誤差訓(xùn)練收斂更快MAE 梯度恒定誤差很小時(shí)更新步長(zhǎng)不縮小不容易收斂。代價(jià)是 MSE 對(duì)離群點(diǎn)敏感數(shù)據(jù)里有一個(gè)極端值loss 就大得離譜。時(shí)間序列數(shù)據(jù)異常值多我會(huì)先對(duì)數(shù)據(jù)做截?cái)嗷蚱交儆?xùn)練。optimizer.zero_grad() 必須寫(xiě)在每個(gè) batch 最前面。PyTorch 默認(rèn)行為是梯度累積不清空上一輪梯度的話 loss 不會(huì)收斂模型參數(shù)在錯(cuò)誤方向上亂跑。y_batch.view(-1, 1) 是為了把形狀統(tǒng)一成 (batch, 1)和模型輸出的 (batch, 1) 對(duì)齊MSE 計(jì)算才不會(huì)有維度錯(cuò)誤或隱式廣播。訓(xùn)練完成之后權(quán)重保存在流程末尾torch.save(model.state_dict(), model_LSTMMain_weights.pth)只存 state_dict不存整個(gè)模型對(duì)象。這樣做的優(yōu)點(diǎn)是文件體積小、不綁定模型類(lèi)的定義路徑換電腦加載也不受影響缺點(diǎn)是你必須保證加載時(shí)的模型定義和保存時(shí)的完全一致鍵名、參數(shù)一個(gè)都不能差。自己訓(xùn)練完立刻加載問(wèn)題不大拿別人給的權(quán)重就必須知道當(dāng)時(shí)的 hidden_size 和 num_layers。4.2 四個(gè)評(píng)估指標(biāo)公式、代碼和業(yè)務(wù)含義評(píng)估部分封裝在 utils.py 里最終在 main.py 的輸出段打印。核心計(jì)算展開(kāi)如下import numpy as np mae np.mean(np.abs(y_pred - y_test)) # 平均絕對(duì)誤差 mse np.mean((y_pred - y_test) ** 2) # 均方誤差 rmse np.sqrt(mse) # 均方根誤差 mape np.mean(np.abs((y_test - y_pred) / y_test)) * 100 # 百分比誤差 ss_res np.sum((y_test - y_pred) ** 2) ss_tot np.sum((y_test - np.mean(y_test)) ** 2) r2 1 - ss_res / ss_tot # R2 決定系數(shù)這四個(gè)指標(biāo)各有各的“脾氣”。MAE 最直觀單位跟原始數(shù)據(jù)一致“平均錯(cuò)多少個(gè)單位”適合業(yè)務(wù)匯報(bào)。MSE 把誤差平方放大對(duì)極大誤差極其敏感數(shù)據(jù)里有幾個(gè)異常點(diǎn)MSE 會(huì)大得離譜——這不是模型壞了是平方運(yùn)算的數(shù)學(xué)特性。RMSE 把 MSE 拉回原單位但它放大極端誤差的特性還在。MAPE 是百分比誤差適合做跨數(shù)據(jù)集橫向?qū)Ρ?。它有一個(gè)前提條件真實(shí)值不能接近 0否則除法分母趨近 0MAPE 直接沖天。如果自己的數(shù)據(jù)里存在 0 值這個(gè)指標(biāo)打印出來(lái)會(huì)是 inf不代表模型失敗只是指標(biāo)本身不適合這份數(shù)據(jù)改用 MAE 做評(píng)價(jià)即可。R2 的含義和另外三個(gè)完全不同。它衡量的是模型解釋了目標(biāo)波動(dòng)的比例正常范圍 0 到 1越接近 1 擬合越好。R2 為負(fù)說(shuō)明你的模型比“直接用真實(shí)值均值當(dāng)預(yù)測(cè)值”還差這種情況在時(shí)間序列里多半意味著數(shù)據(jù)切分泄漏、特征和目標(biāo)方向弄反、或者模型結(jié)構(gòu)有問(wèn)題??吹截?fù) R2 時(shí)不要調(diào)參先回去檢查數(shù)據(jù)。4.3 反歸一化預(yù)測(cè)結(jié)束最容易漏的一步訓(xùn)練時(shí)數(shù)據(jù)被壓到 [0,1]模型輸出的預(yù)測(cè)值也在 [0,1]。要把預(yù)測(cè)值還原成原始量級(jí)就必須做反歸一化y_pred_original scaler.inverse_transform(y_pred) y_test_original scaler.inverse_transform(y_test)inverse_transform 的輸入形狀必須和 fit 時(shí)的特征數(shù)量一致。如果 fit 時(shí)傳的是整個(gè) data多列現(xiàn)在只傳一列預(yù)測(cè)值會(huì)報(bào) shape mismatch。源碼里對(duì)這個(gè)問(wèn)題的處理方式是單獨(dú)定義目標(biāo)列的 scalerscaler_y MinMaxScaler() y_scaled scaler_y.fit_transform(df[[target_col]].values)這樣反歸一化只用一列沒(méi)有任何維度問(wèn)題。如果直接調(diào)用整個(gè) data 的 scaler就必須構(gòu)造一個(gè)和訓(xùn)練時(shí)相同列數(shù)的空矩陣把預(yù)測(cè)值塞進(jìn)目標(biāo)列位置再 inverse_transform處理起來(lái)麻煩得多。4.4 指標(biāo)怎么結(jié)合業(yè)務(wù)場(chǎng)景選四個(gè)指標(biāo)不是用來(lái)湊數(shù)的。業(yè)務(wù)上我一般這么選給老板匯報(bào)用 MAE因?yàn)閹г紗挝徽f(shuō)“平均偏差 120 件”比“R20.87”更容易聽(tīng)懂。調(diào)參對(duì)比模型時(shí)看 RMSE它對(duì)大誤差更敏感能幫你在多個(gè)候選模型里挑出極端情況都擬合得好的那個(gè)??鐓^(qū)域、跨品類(lèi)對(duì)比時(shí)用 MAPE因?yàn)榘俜直认瞬煌瑪?shù)據(jù)量級(jí)的影響。R2 則用來(lái)判斷模型是否整體失效。四個(gè)指標(biāo)一起看才有完整畫(huà)面MAE 低但 R2 也低說(shuō)明模型對(duì)大趨勢(shì)擬合不好MSE 高但 MAE 低暗示數(shù)據(jù)里有少數(shù)極端點(diǎn)。5. 實(shí)戰(zhàn)復(fù)現(xiàn)與避坑環(huán)境準(zhǔn)備、命令順序和五個(gè)高頻坑5.1 環(huán)境準(zhǔn)備依賴(lài)安裝和 PyTorch 選擇上手這個(gè)源碼包依賴(lài)很少核心就五個(gè)包pip install torch numpy pandas scikit-learn openpyxlopenpyxl 是 pandas 讀 .xlsx 的底層依賴(lài)不裝的話 pd.read_excel 會(huì)直接 ImportError。如果數(shù)據(jù)只有 CSV可以去掉 openpyxl但保留也不礙事體積很小。PyTorch 的安裝要分情況純 CPU 機(jī)器直接 pip install torch 就能裝有 NVIDIA 顯卡想用 GPU去 PyTorch 官網(wǎng)按 CUDA 版本選安裝命令不要自己猜 wheel 名。這份源碼的規(guī)模用 CPU 完全跑得動(dòng)差的只是訓(xùn)練時(shí)間不用為它大動(dòng)干戈配 GPU 環(huán)境。裝好后第一件事是驗(yàn)證 PyTorch 是不是真的能導(dǎo)入python -c import torch; print(torch.__version__)這一行能輸出版本號(hào)環(huán)境基本就緒。經(jīng)常有人跳過(guò)這一步直接跑 main.py在 import torch 那行翻車(chē)然后花半天排查是哪個(gè)包缺了其實(shí)環(huán)境從頭就沒(méi)裝好。5.2 跑通主流程六步操作整體操作順序如下。第一步把 data.xlsx 換成你自己的 Excel。列名換成英文目標(biāo)列放最后一列清理掉空值和明顯異常點(diǎn)。第二步打開(kāi) main.py把數(shù)據(jù)路徑、sheet 名改成實(shí)際值同時(shí)確認(rèn) seq_len、hidden_size 這些參數(shù)。第三步?jīng)Q定單變量還是多變量單變量在讀取段只保留目標(biāo)列多變量保留全部特征列。第四步運(yùn)行 python main.py。第五步觀察訓(xùn)練日志loss 應(yīng)該持續(xù)下降如果看到 loss 變成 NaN 就停住回到避坑清單。第六步訓(xùn)練結(jié)束后看測(cè)試集上的 MAE、MSE、R2、MAPE 輸出同時(shí)確認(rèn)反歸一化后的預(yù)測(cè)曲線有沒(méi)有明顯錯(cuò)位。這六步做完按說(shuō)已經(jīng)能用上這份源碼了。但時(shí)間序列預(yù)測(cè)的坑密集在數(shù)據(jù)環(huán)節(jié)而不是模型環(huán)節(jié)下面五條是最常見(jiàn)的報(bào)錯(cuò)和翻車(chē)記錄。5.3 避坑5 個(gè)高頻踩坑記錄坑一訓(xùn)練 loss 輸出 NaN現(xiàn)象訓(xùn)練頭幾輪 loss 正常幾十輪后突然變成 NaN后續(xù)全部 NaN。 原因最常見(jiàn)的是數(shù)據(jù)里存在 NaN 或者 infMinMaxScaler 會(huì)把 NaN 原樣保留LSTM 前向傳播算出的梯度直接無(wú)效。次常見(jiàn)的是學(xué)習(xí)率太大Adam 一次更新就跨過(guò)最優(yōu)點(diǎn)數(shù)值發(fā)散。 解決讀取 DataFrame 后立刻執(zhí)行 df df.dropna() 或者 df df.fillna(methodffill)同時(shí)把學(xué)習(xí)率從 0.001 降到 0.0005。絕大多數(shù)情況這兩步做完 NaN 就沒(méi)了。如果要兜底在訓(xùn)練循環(huán)里加一個(gè) loss 檢查if torch.isnan(loss): print(NaN at epoch, epoch); break方便快速定位??佣虞d權(quán)重時(shí)報(bào) Missing key(s) in state_dict現(xiàn)象torch.load 成功load_state_dict 卻報(bào)缺失鍵或者鍵名對(duì)不上。 原因模型定義參數(shù)和保存權(quán)重時(shí)的參數(shù)不一致。別人用 hidden_size128 訓(xùn)練保存你用默認(rèn) hidden_size64 定義模型鍵名自然對(duì)不上。 解決權(quán)重文件名是 model_LSTMMain_weights對(duì)應(yīng) main.py 里的默認(rèn)模型。加載前按原結(jié)構(gòu)重新定義模型如果你改過(guò) models.py舊權(quán)重大概率失效老老實(shí)實(shí)重新訓(xùn)練。實(shí)在不知道原結(jié)構(gòu)把 hidden_size、num_layers 兩個(gè)參數(shù)跑一遍組合加載成功為止??尤A(yù)測(cè)階段維度報(bào)錯(cuò) RuntimeError: mat1 and mat2 shapes cannot be multiplied現(xiàn)象eval 階段輸入模型的數(shù)據(jù)形狀不對(duì)全連接層矩陣乘直接串臺(tái)。 原因模型的 LSTM 期望三維輸入 (batch, seq_len, feature)實(shí)際輸入變成了二維或者 batch_size 和 seq_len 交叉錯(cuò)位。最常見(jiàn)的是構(gòu)造序列樣本時(shí)把 [seq_len, feature] 當(dāng)成整體傳入少了 batch 維。 解決在進(jìn)模型前加一行 print(x.shape) 確認(rèn)維度。少一維用 x x.unsqueeze(0)多一維用 x.squeeze(0)。建議在 main.py 關(guān)鍵位置加 assert x.dim() 3訓(xùn)練和預(yù)測(cè)都套上報(bào)錯(cuò)時(shí)一秒定位??铀念A(yù)測(cè)曲線是平移了一個(gè)周期的“滯后曲線”現(xiàn)象預(yù)測(cè)值和真實(shí)值曲線形狀幾乎一樣但整體右移了一個(gè)周期R2 不低畫(huà)圖一看就露餡。 原因時(shí)間序列模型最經(jīng)典的偷懶結(jié)果。在沒(méi)有強(qiáng)趨勢(shì)的序列上模型找到的最優(yōu)策略是“用最近的一個(gè)值預(yù)測(cè)當(dāng)前值”因此輸出天然滯后一個(gè)周期。這不是代碼故障是數(shù)據(jù)信息和建模方式的局限。 解決增大 seq_len 讓模型看到更長(zhǎng)的歷史或者對(duì)原始數(shù)據(jù)做一階差分把預(yù)測(cè)目標(biāo)從“絕對(duì)值”改成“增量”訓(xùn)練結(jié)束后再反差分還原。差分是消除滯后性的常用手段但如果業(yè)務(wù)指標(biāo)周期性很強(qiáng)、滯后可以接受也不一定非要改??游錯(cuò)val() 沒(méi)調(diào)用預(yù)測(cè)結(jié)果忽好忽壞現(xiàn)象加載權(quán)重后預(yù)測(cè)多次結(jié)果每次都不一樣。 原因模型里有 Dropout 或 BatchNorm 層時(shí)訓(xùn)練模式和推理模式的執(zhí)行邏輯不同。Dropout 在 train 模式下隨機(jī)丟棄神經(jīng)元BatchNorm 在 train 模式下更新運(yùn)行統(tǒng)計(jì)量?jī)烧叨紩?huì)讓預(yù)測(cè)帶隨機(jī)性。 解決預(yù)測(cè)前強(qiáng)制調(diào)用 model.eval()。這份源碼標(biāo)準(zhǔn)結(jié)構(gòu) LSTMLinear 沒(méi)有 Dropout 影響不大但后續(xù)加了 Dropout 或 BatchNorm這個(gè)坑必定踩到。同樣地要重新訓(xùn)練就切回 model.train()兩種模式要成對(duì)使用。五個(gè)坑排完之后這份源碼的復(fù)現(xiàn)就穩(wěn)了。6. 進(jìn)階改造從單步改成多步預(yù)測(cè)的驗(yàn)證方法單輸出和單步預(yù)測(cè)是這份源碼的默認(rèn)行為但很多實(shí)際場(chǎng)景需要的是一次給出未來(lái)若干步的預(yù)測(cè)——比如未來(lái) 7 天的銷(xiāo)量、未來(lái) 24 小時(shí)的電價(jià)。要把這份源碼從單步改成多步有三個(gè)環(huán)節(jié)必須處理。第一模型輸出維度。單輸出模型的最后一層全連接輸出是 1多步預(yù)測(cè)最簡(jiǎn)單的改法是把 output_size 從 1 改成 n_steps讓模型一口氣輸出未來(lái) n 步。相應(yīng)的損失函數(shù)還是 MSE但 y_batch 的形狀得跟著變成 (batch, n_steps)不能再 view 成 (batch, 1)。第二數(shù)據(jù)集構(gòu)造邏輯。原來(lái)窗口取 data[i:iseq_len] 作為輸入y 取 data[iseq_len] 單值改成多步后 y 要取 data[iseq_len:iseq_lenn_steps] 連續(xù) n 個(gè)目標(biāo)值。這一步直接導(dǎo)致訓(xùn)練樣本數(shù)減少數(shù)據(jù)量不夠時(shí)多步預(yù)測(cè)的效果會(huì)很慘。第三評(píng)估方式。多步預(yù)測(cè)的指標(biāo)一般按步分別計(jì)算MAE 按第 1 步、第 2 步、第 n 步單獨(dú)打印這樣你能看清誤差在哪一步開(kāi)始明顯變大。我的習(xí)慣是改造前先加載官方權(quán)重跑一遍單步預(yù)測(cè)記錄指標(biāo)作為 baseline然后從 n_steps2 開(kāi)始逐步加大步數(shù)觀察誤差隨步數(shù)的衰減曲線。多步預(yù)測(cè)最常見(jiàn)的現(xiàn)象是“第一步指標(biāo)好、遠(yuǎn)期指標(biāo)崩”這不是模型壞了而是預(yù)測(cè)誤差在迭代過(guò)程中被一步步傳導(dǎo)放大越遠(yuǎn)的步數(shù)據(jù)含量越低。那年我把多步改成 5 步發(fā)現(xiàn)第 7 步的 MAPE 比第 1 步漲了三倍排查了半天模型代碼沒(méi)有任何問(wèn)題最后意識(shí)到是輸入序列的周期長(zhǎng)度和預(yù)測(cè)步數(shù)不匹配——用 7 天周期去預(yù)測(cè) 5 天后的值本身就不太穩(wěn)。從那以后我每次改動(dòng)步數(shù)都會(huì)強(qiáng)制先記錄 single-step baseline再逐級(jí)加大 n_steps對(duì)比每步的指標(biāo)衰減曲線再?zèng)Q定用哪個(gè)步數(shù)配置上線。希望這一套拆解思路幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
婷婷五月天情色| 国产综合视频婷婷| 日韩亚洲视频| www一区二区三区| 99ri国产精品| 欧美黄色一级录像| 中文字幕日产A片在线看| 99热精地址| 9久久久久久久久久久| 97婷婷色| 99色网站| 狠狠干综合| 永久地址 色| 久久久久久97| 99热国产婷婷| 99爱在线| 99干日日干| 丁香九九九九| 色爱综合网| 99爱视频在线播放| 天天狠天天叉| 日本色色色| 色就是色婷婷五月亚洲激情| 久9视频| 色婷五月天亚洲| 六月丁香婷婷色狠狠久久| 亚洲中文字幕在线观看| 亚洲妇女熟BBW| www.99热精品| 久久与婷婷| 伊人五月天在线| 丁香花五月天| 99热这里只有精品最新地址获取| 夜夜撸日日骑| www五月天com| 久久综合婷婷五月| 色婷婷综合网站| 天天做天天爽| 午夜大香蕉| 五月婷六月| 99热这里只有精品1| 久久思思热视频| 色婷婷成人影片| 色综合色综合婷婷热| 91色综合| 婷婷五六日| 色9色| 在线99热| 狠狠色婷婷丁香六月| 色性综合| 婷婷激情五月天亚洲综合| 丁香六月天AV| 五月色俺婷婷| 婷婷五月天天爽| 激情六月婷婷| 六月丁香五月天| www久久99| 97人妻碰碰中文无码久热丝袜| 播五月开心婷婷欧美综合| 激情文学五月丁香六月婷婷| 成人婷99最新| 亚洲日韩国产黑丝黑丝AVAV一区二区三区| 深爱五月婷婷开心中文字幕| 天天做天天摸| 四色99久久| 超碰九色| 热热色色五月天婷婷| 九九精品9| 国产三级在线播放| 操一区| 亚洲成色综合网站免费观看| 五月丁香另类图片| 激情五月天综合网| 日韩操啪| 婷香五月网在线| 久久奄也去色色网站| 综合激情综合啪啪| 五月综合视频| 亚洲精品V天堂中文字幕| 草草色情综合网| 久久一伦| 情婷婷五月天在线| 五月色丁香| 99热这里只有精品16| 九九热免费视频| 久久九九激情五月天| 性爱七区| 亚洲综合婷婷| 日日夜夜狠狠| 欧美人人女女精品综合五月天| 色欲色天天香综合| 99在热线免费视频| 亚洲精品无AMM毛片| 91综合网| 中国AV性爱观看| 99这里只有精品|v| 久久精品一区二区三区四区| 丁香色六月婷婷| 玖玖在线资源视频| 99热在线精品观看| 色99超碰| 99.色| WWW.桔色成人.COM| 日韩av在线播放综合网| 色色婷五月天| 久久天天| 玖玖婷婷五月天| 天天射影视综合网| 九九热视频在线观看| 99人人干人人操| 亚洲亚洲人成综合网络| 精品成人久久久久久久_一二三四视| Se.婷婷五月天| 99久久玖玖| 六月激情婷婷| 色五月综合网| AV五月丁香| 丁香,开心成人,久久| 狠狠99| 五月天婷婷色播在线网| 亚洲日韩一页精品发布| 五月天天丁香婷婷在线中| 色五月婷婷影院| 99啪啪| 色五月婷婷五月天激情综合| 韩国激情五月天综合网| 欧美三级视频下载| 色五月天电影| 婷婷久久内射| 99热精品观看| 91色五月| 亭亭玉月丁香| 久久五月丁香六月婷| 久久曰曰| 丁香五月丐人妻| 色玖玖爱| 欧美天天草人人草| 六月婷婷五月天| 碰人人操| 九九热黄色| 色色色婷婷| 亚洲夜夜操| 国产肥白大熟妇BBBB视频| 永久的网站AAAA | 天天射天天插天天干| 综合久| 日本女人久久| YJLZZJLZZ亚洲乱熟无码| 日本少妇AA一级特黄大片| 色9色| 五月天婷婷基地| 五月婷婷欧美| 欧美三级A做爰在线观看| 色九网| 51XX午夜影福利| 色天堂97| 99re思思精品在线观看| 五月丁香福利| 色五月激情网| 91精品综合久久久久久五月丁香| 操精品9| 久久在线视频免费观看| 欧美 日韩 成人在线| 日韩小视频在线99| 五月久久丁香| 久操大屁股女人av| 九九无码| 免费啪啪亚州视频| 爱射综合| mmm1717.6dbm人人爱人人操| 五月天丁香婷婷网| 夜夜夜夜撸夜夜操| 五月婷婷日| 激情五月天综合婷婷网| 中文字幕,综合,91| 一丁香五月天月AV| 婷婷久久丁香五月| 五月天婷婷丁香| 婷婷色五月天在线| 丁香五月天激情五月天激情五月天激情网 | 久久五月激情| 天天干电影| 五月色综合网欧美网| 天天干天干| 97天堂| 五月天综合在线| 丁香色情五月综合激情| 99婷婷精品推荐在线视频| 熟女五月天久久综合| 777影视理论片大全在线观看| 99热20| 亚洲V国产V欧美V久久久久久| 狠狠人妻久久久久久综合丁香| 久久婷婷九月国产精品| 美女五月狠狠| 天搞天天天天天| 另类小说五月天| 五月天国产成人| 99激情| 五月开心啪啪| 亚洲无码yw| 久久婷五月婷| 午夜无码精品色综合久久| 精品国婬伦V无码久久久| 日韩在线aaa| 99九九热视频免费| 国产精品18久久久| 色五月婷婷九月| 伊人久久大香线蕉av最新| 婷婷五月激情四月综合 | 五月丁香成人网| 9热视频在线观看| 色噜噜狠狠色综合日日| 夜夜操天天爽| 色情五月天小说| 国产成人精品亚洲线观看| 久热这里只有精品在线| 亚洲中文字幕av| 日本人妻伦在线中文字幕| 五月丁香六月婷婷开心网| 插逼综合网| 久久久久久久人妻| 视频一二区| 狠狠色婷婷在线| www.99操.com| 99热官网| 深爱激情五月天| 9九热视频| 九九九九九九热| 婷婷五月天奸女| 五月天开心色情网| 日韩综合天堂| 久久婷婷五月综合一| av中文在线| 天天干肏夜夜| 五月激情六月| 激情五月综合网| 婷婷色色欧美| 能看的av片| 色综合中文| 91人久| 无码啪啪| 婷婷综合在线| 停停五月天激情网| 色色成人網| 久久九精品| 性做爰1一7伦| 九九無妻| 亚洲第一黄网| 99视频激情四射| 久久人妻情侣| 亚洲天堂AV免费片| 91操操| 久久婷婷丁香视频网| 精品国产一区二区三区四区阿崩| 五月丁香综合| 99精品视频网站| 五月人妻婷婷视频| 久久思思精品| 婷婷五月天亚洲综合| 99精品在线播放| 国产亚洲色婷婷久久99精品91 www.riverspirits.org www.hnnun.com www.changh | ss99热| 久草五月天| 色欲午夜无码久久久久久张津瑜| 亚洲第一精品成人999久久精品| wWw色五月| 影音先锋一区| 婷婷五月丁香久久| 亚洲视频二区| 九色视频91疯狂| 五月婷婷六月丁香首页| caopeng97人人| 五月停视频天堂| 免费看成人AA片无码视频吃奶| 九九aV| 狠狠干综合| 婷婷色丁香六月| 亚洲色小说在线综合| 99啪啪| 欧美精产国品一二三区| 色五月婷婷综合| 亚洲精品中文字幕成人片| 亚洲mm免费| 97超碰,人人舔,人人操,人人摸 | 色月丁| 99热香港| 青青草99re| A片天天| av在线播放网站| 俺去也五月| 99爱视频| 天天色亚洲| 停停五月天激情网| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 色婷婷综合电影| 中文字幕av网站| 玖玖99婷婷| 丁香五月激情啪啪综合| 六月激情丁香一道本7777| 五月婷婷综合在线视频| 香蕉乱插| 91碰碰| 五月丁香六月色婷婷综合五月天| 丁香六月婷婷综合激情欧美 | 超碰资源在线| 天天综合情| 五月天婷婷综合久久| 思思热久久阴99| 噜一噜免费视频| 这里只有精品,日韩视频| 色亚洲视频| 色婷婷成人影片| 99精品久久久久久久婷婷久久| 亚洲 无码 中文字幕 中出| 另类小说婷婷色| 天天天天天天天操| 玖玖五月丁香| 九九AV| 性欧美大战久久久久久久83| 97成人在线视频精品| 中文字幕97超级碰| 六月婷婷无码| 婷婷色五月综合| 久久久27操| 九九九九毛片| WwW色婷婷| 9久热在线视频| 99在线视频免费| 色播丁香| 99热久久日本| 五月婷婷六月丁香激情深爱| 丁香婷婷色五月| 99亚洲精品| 婷婷伊人网| 免看黄大片AA | www.99免费视频| 五月婷婷啪| 四虎婷婷五月天| 丁香五月婷婷影院| 开心激情站| 在线免费视频caop| 久9视频| 手机AVAV天堂看网| 99ri国产| 色综合久久88色综合天天| 婷婷五月天堂| 人人噜天天上| 天天拍天天操| 久久久久婷| 色噜噜狠狠色综合伊人| 99热最新| 成人综合网站| 日本一级黄色电影| 夜夜躁爽日| 99碰碰| 免费成人网在线观看| 丁香五月婷婷久久久| 五月花丁香婷婷| 99精品自拍视频| 亚洲乱码日产精品BD| 9 1在线视频| 真实的国产乱XXXX在线91| 黄色一级影片| 99热这里只有精品最新网址| 国产免费一区二区在线A片视频| 国产亚洲av片| 伊人色欲五月天| 香蕉综合在线| 色婷在线视频| www,av好吊操| 丰满少妇猛烈A片免费看观看| 色五月婷婷综合在线| 婷婷久久五月天亚洲欧美国产日韩在线观看 | 五月丁香六月婷婷操操操| 亚洲这里只有精品| 综合激情五月婷婷| 五月婷婷在线免费| 久久九九Com| 婷婷丁香77777| 99视频网址| 天堂久久丁香| 婷婷五月丁香基| 伊人婷婷五月天| 午夜丁香 婷婷| 丁香综合伊人AV| 丁香五月天啪啪| 激情图片99| 思思热99在线视频| 色综合久久久综合久久网| 色一情一乱一伦一区二区三区| 久久久久亚洲AV无码网影音先锋| 五月久久婷婷成人网| 久久婷婷超碰| 色婷婷狠狠色| 婷婷D区| 五月网激情| 影音先锋噜一噜| 狠狠情色| 99久精品视频| A在线观看| 亚洲色热| 超碰在线观看9| 婷婷五月情| 无码一区二区三区四区五区91c| 东北婷婷五月天| 五月激情影院| 深爱激情五月天色婷婷| 香蕉AV777XXX色综合一区| 在线观看五月婷婷网| 色婷婷亚洲婷婷| 中文AV在线播放| 综合视频久久| 九月婷婷综合| 婷婷丁香六月| 狠狠狠激情网| 99热黄| av网站中文| 亚洲岛国电影| 狠狠色丁香| www91在线| 91久久九久久九久久九久久九久久| 亚洲国产另类av| 婷婷97碰碰| 免费亚洲婷婷中文字幕| 狠狠爱综合网| 99精品视频在线观看| 丁香婷婷射| 曰韩五月丁香色婷婷无码| 婷婷综合激情五月综合| 色婷婷aV四虎| 五月婷中文字幕| 99自拍视频在线观看| 97色婷| 无码se| 婷婷伊人网| 婷婷婷色五月| 激情婷婷五月综合| 99久久99九九99九九九| 深爱五月综合网| 草了bav视频在线观看| 天天天日天天天干| 天堂久久婷婷| 色色热| 婷婷激情五月天小说| 天花AV无码| 婷婷射综合| 国产99热在线看| 成人做爰黄A片免费看直播室男男 久草热8精品视频在线观看 | www.日日夜夜.com| 婷婷伊人网| 激情五月天色播| 中文网av| 婷婷五月花| 婷婷五月花| 日日日天天干| 亚洲国产精品成人免费一区久久久在线观看AAAA | 97人人操在线| 婷婷九月丁香久久| 九九re精品视频在线观看| 五月丁香六月婷| 六月丁香婷婷在线波多| aa久久| 色狠狠色噜噜噜a天堂一区| 婷婷五月丁香激情图片 | 日韩精品超碰在线观看| 天天爽天天| 99热这里只| 九九黄色网| 国内自拍97在线| 欧美久久网| tingting五月天亚洲| 成片免费观看大全| 日本欧美成人片AAAA| 色久天| 99精品在线观看| 噜噜色噜噜网| 五月情四婷婷| 五月婷婷啪啪啪| 91男同视频| 99操久久| 婷婷色正月| 色婷婷中文字母五月丁香| 伦乱人妻| 99视频在线观看地址| 夜夜大香蕉婷婷丁香| 婷婷玉月丁香五月在线视频| 久色网址| 婷婷激情五月视频| 99re8热精品免费视频| 97资源碰碰| 狠狠色噜噜狠狠| 99re思思| 色五月琪琪| 日日操夜夜操中国无码| 日韩艹比| 五月天开心网| 丁香五月婷久久| 天天摸天天做天天爱天天爽| 五月丁香色狠狠干大屄| 开心五月激情| 99精品国产在热久久| 久久天堂色| 五月婷婷久| 五月情婷婷五月| 久久久91| 激情婷婷久久| 久草九九| 99偷拍视频在线日本| 九月丁香久久网| 成人日韩欧美| 五月天婷婷影院| 丁香五月综合激情性爱| 这里只有精品无码| 天天日夜夜拍| 九九热99热| 久久丁香五月婷婷| 婷婷六月色情| 久久人妻情侣| 天天日,夜夜爽| 色婷婷在线视频久| 狠狠肏综合网| 久久996re热这里只有精品无码| 婷婷大香蕉| 欧洲亚洲免费视频9| 色色婷婷色色| 91免费看片| 五月激情射| 国产婷婷久久| 操碰久| 97久久五月丁香婷婷| 色黄啪啪| sewuyuetingtingiii| 综合网色综合| 六月婷婷七月丁香| 超碰成人在线观看| 婷婷色综合| 97成人丁香婷婷| 久色网| 99婷婷五月天| 午夜性爱影视一区77| 婷婷五月天无码熟女| 超黄亚洲瑟瑟网站| www.热99热| 丁香色影院| 99久久.www| 色婷婷AV在线| 人妻AV在线| 五月丁香久久精品在线观看| 亚洲AV激情五月综合网| 五月丁香激情欧洲啪啪| 综合网天天| www.henhenl| 婷婷色在线| 五月综合视频| 婷婷激情六月中文| 婷婷的色色五月天| 激情综合网五月在线播放| 天天综合情| 妻久久久久| 蜜臀av在线成人电影| 五月久久丁香| 欧美精品啪啪| 婷婷99狠狠| 色婷婷8| 激情五月天婷婷色色色色色色色色色色色| xx久久| 丁香五月六月久久综合| 思思热热久久| 第四色五月婷婷| 色噜噜狠狠一区二区三区| 五月丁香亭亭| 九热av| 精品久久9| 99在线视频免费| 婷婷五月天日本无码| 99热| 夫妇交换刺激做爰| 欧美操逼天堂| 亚洲天堂亚洲色色色| 亚洲精色| 色激情五月天| 91久久精品视频| 亚洲啪啪啪啪| 婷婷五月天另类网站| 碰97久久| 超碰人妻公开在线| 色狠狠色综合久久久绯色AⅤ影视 大香蕉五月天婷婷丁香91 | 激情五月www| 五月色婷| 丁香五月婷婷社区| www色色com| 婷婷五月噜噜| 欧美25p| 超碰免费观看| 五月天婷婷六月激情网| 亚洲日日日| 综合激情婷婷| 五月 激情视频| 天天干天天日日| 2017人人操| 精品亚洲国产成AV人片传媒| 97婷婷狠狠| 久久这里99| www.99视频| 五月婷久草| 丁香六月 婷婷六月| 思思热99热| http:色情日本com| 婷婷色导航| 激情五月小说婷婷| 九九热re99re6在线精品| 中文字幕在线免费观看视频| WWW·色色色·COM| 亚洲激情综合五月婷婷啪啪| 思思热视频在线观看| 男人視頻站| 丁香五月婷婷88在线| 99在线视频资源| 欧美日韩成人h| 第四色五月激情网| 国产亚洲99久久精品| 黄色成人AV在线| \\五月天婷婷激情| 色五月天电影| 操久久网| 欧美日比视频| 五月天基地| 欧洲亚洲激情五月天在线| av在线资源| 五月色婷婷影院| 五月丁香777| 久久看九九90| 天天干天天干天天干天天干天天干天天干天天 | 97爱艹婷婷开心丁香激情综合| 俺来也综合网精品一区| 久久三级视频| 青青草tp| 91丨九色丨高潮丰满日本| 丁香九月综合在线| 五月婷婷六月丁香在线视频| 色综合色香蕉网| 婷婷丁香一月| 最近免费中文字幕大全高清大全1| 亚洲综合网区| 99热欧美| 久久在线视频只有这里有精品| 久久98| 日韩不卡DvD| 97人人操| 丁香六月婷婷综合激情欧美| 人人摸人人操人人爽| 狠狠爱婷婷| 色婷婷激情四射视频| 六月婷婷最新网址| 饮料下药迷倒漂亮女同事强干| 91美女艹逼网站| 五月天色婷婷伊人网| www.久99| 涩涩涩五月天| 五月天天综合| 色婷婷色99国产综合精品| 色婷婷操逼| 狠狠干婷婷| 五月天开心激情网色欲无码| 男女啪啪做爰高潮无遮挡| 五月天无码视屏播放| 亚洲日韩乱码一区二区三区四区| 99秘 在线| 67194线路二在线观看| 亚洲成人va| 日韩黄色AV无码| 欧美超级视频97| 亚洲旡码| 五月丁香综合啪啪| 人人色AV| 久久五月情| 婷婷午夜综合| 99热 这里只有精品 国产 日韩| 99热最新| 亚洲综合狠狠艹| 久久久久久18| 97干97色| 狠狠操天天操综合| 超碰啪啪网| 中文字幕AV网址| 五月丁香综合啪啪| 丁香婷婷天堂| 五月天停婷基地| 色五月婷婷中文字幕在线观看| 久久思思热| 日韩色色视频www| 91精品久久久久久久久| 开心五月婷婷| 婷婷五月天六月| 婷婷成人AV| 伊人激情影院| 狠狠色噜噜色狠狠狠综合久久成人波| 五月天婷婷綜合院| 99精品成人无码A片观看金桔| 亚洲va在线| 五月天丁香成人社| 97精品人人A片免费看| 99热精品在线免费观看| 超碰av在线| 亚洲狠狠爱婷婷| 欧美丁香五月| 久久五月天黄色五月天色网址| 狠狠色丁香婷婷| 99啪啪视频| 丁香久久| 婷婷成人综合免费视频| 99热在线观看99| 九九精品热| 五月婷婷在线免费观看 | 色九月婷婷| 五月天另类小说久久小说网| WWW.99热| 色色色色色日韩午夜激情 | 天天做天天爱天天爽夜夜揉| 婷婷久久欧美| 97在线精品| 婷婷五月天AV| 五月婷色丁香| 亚洲激情视频在线观看| 五月丁香亭亭A片| 99无码黄色视频| 丁香婷婷噜噜| 天天噜天天爱| 国产成人AV在线| www.婷婷五月.com| 亚洲爆乳无码精品AAA片蜜桃 | 开心婷婷五月花| 超碰男人色| 久久婷婷五月综合网| 色五月综合| 99九九视频| 五月天色婷婷基地| 成人va在线观看视频| 日韩另类在线观看| 97婷婷五月丁香| 国产精产国品一二三在观看| 99精品热视频| 538在线精品| 丁香婷婷啪啪啪| 久久色在线视频| 91久久综合| 九九久99免费视频| 天天日天天肏天天奸| 人人干人人看| 亚洲成人网在线观看| 十月色综合| 9这里只有精品| 这里只有精品视频在线观看免费| 四虎成人精品永久免费AV九九| 99小视频在线观看| 久草五月丁香婷婷综合| 碰97 久| 五月婷婷色| 九九热在线观看视频| 色伊人婷婷| 激情五月婷黄版| 色五月色五天免费视频| 玖玖资源站视频| 五月婷六月丁| 久久66精品| 色色日韩无码| 中国AV性爱观看| 五月丁香拍拍激情综合| 日韩人妻无码一区二区| 99久久66| 久热这里只有精品在线观看| 五月丁香美女| 天天 青草 制服丝袜 在线 | 《丁香激情综合久久伊人久久》影视在线观看 -高清预告手机免费播放 -三妹影院 | 国产AV国片偷人妻麻豆| 人人草人人爱| 亚洲无码99| 日韩aaaaa| 久久XX| 激情六月天| 成人免费120分钟啪啪| 婷婷中文字幕| 精品夜夜澡人妻无码AV| 亚洲字幕AV一区二区三区四区| 国产亚洲精品AAAA片APP| 日日夜夜狠狠| 无人区码一码二码三码医生系列| 国产精品天天狠天天看| 艹B高清无码| 97色综合| 97碰碰碰| 91干| 激情涩涩网| 天天综合五月| 伍月婷丁香花全集| 亚洲成人婷婷| 99九无网码| 色日本五月天| 少妇人妻偷人精品无码视频新浪| 九九无码AV| 一区二区你懂的| 色www.con| 婷婷五月天av| 五月婷婷丁香伦理网| 开心五月综合激情综合五月| 六月丁香婷婷五月| 永久免费一区二区三区| 日本三级韩三级99久久| 超碰人妻在线| 欧美熟女视频 色婷婷| 日韩性爱无码| 九九综合九九| 五月丁香天天| 婷婷婷婷色| 九色91视频| 久久丁香五月婷婷| 99久久国产综合精品五月天喷水\| 俺去婷婷 丁香| 五月丁香成人| 婷五月丁香| 丁香五月婷婷六月| 久久精品婷婷| 97在线观看| www.com任你艹| 91操操| 欧美天天干天天草| 婷婷五月综合久久中文字幕| 超碰国产在线| 色综合久久88色综合天天| 亚洲综合婷婷五月| 91婷婷五月天综合视频| 五月天激情综合网| 无码人妻少妇色欲AV一区二区| 丁香五月婷婷五月基地| 亚洲无码播放| 婷婷综合六月| 婷婷精品| 婷婷综合干| 免费视频舔| 欧美婷婷五月丁香| 亚洲无码99| 91jiuseshunv| 久青青久| 婷婷五月天播播| 大香蕉九九| 日韩淑女人妻luan伦激情精品一区二| WWW.激情| 国产精品色婷婷久久久精品| 婷婷成人基地| 亚洲旡码| 久狠日av| 婷婷丁香五月综合| 日韩精品成人在线| 99精品7| 婷婷久草| 丁香五月天婷婷91| 激情WWW| 深夜男女福利刺激影院一区完整| 999热这里只有美国精品| 另类天堂| 五月婷婷色播| 97啪在线观看视频| 性爱AV天堂| 婷婷成人视频| 香蕉影院色| 天天五月香欧美| av在线免费网站| 九色成人AV在线| 色五月婷婷久久爱| 欧美五月婷婷| 欧美三级视频下载| 色大综合| 99热婷婷| 99在线观看| 日本爆乳片手机在线播放| 五月婷A V在线| 亚洲婷婷丁香五月在线| 2017狠狠干| 婷婷久久天堂网| 亚洲精品色色色| AV大香蕉| 7月婷婷六月丁香| 婷婷内射视频在线| 久草五月婷| 婷婷深爱网| 69精品人人人人| 99色色热| 99碰碰| 狼友视频在线观看18| 狠狠穞A片一區二區三區| 婷婷亚洲在线| 五月天婷婷导航| 婷色五月天| 欧洲99视频在线| 九九综合九九| 97碰| 97在线视频人妻九色| 亚洲有码在线视频| 五月婷婷啪啪| 亚洲成人中文字幕| 99热免费在线| 伊人大香蕉综合在线| 五月天综合图片| 日韩不卡123| 天天天日天天天干| caop视频| 婷婷五月天第四色| 五月丁小婷婷激情四射| 精品久久久久久久久久久久人妻| 国产午夜成人AV在线播放| 婷婷色五月亚洲| 国产精品久久久久久久久久免费| 丁香五月婷婷姐| 农村熟妇高潮精品A片| 亚洲色色爱| 97精品人人A片免费看| 色婷婷婷婷成人网| 国产成人AV| 国产精品蜜臀99| 九九九九热99超碰| 丁香五月激情啪啪| 视频在线免费观看欧洲乱码| 狠狠五月天| 日亚二欧美| 五月婷婷色影院| 丁香六月综合激情| www99热| 日日想日日夜日日操| 91色色五月天| 免费观看欧美成人AA片爱我多深| 五月天婷婷色色首页| 五月婷婷在线观看黄| 97碰久久| 91狠狠综合久久| 天天操夜夜玩!| 婷婷丁香五月天之开心少妇| 直接看的AV| 婷婷五月激情的图片| 伊人久久艹| 秋霞AV吧| 99re思思热久久| 六月久久婷婷| 涩涩五月天| 五月天四色房丁香| 99啪啪骑| 成人在线网址| 丁香婷婷综合五月天| 97大香蕉五月天| 五月天婷婷乱论小说| 九九久久99精品免费观看www| 五月丁香啪啪| 99热最新网址| 日本操片| 六月天婷婷| 色五狠狠| 久久久99久久| 精品久久久久成人码免费动漫| 婷婷干五月综合在线播放| 99人人操人人爱久久久| 六月婷婷综合| 五月婷婷自拍视频| 婷婷激情四射网| 狼人久草| 天天插,天天射| 亚洲小视频免费播放| 色婷婷伊人激情在线观看| 这里只有精品视频在线| 噜综合| 中文字幕高清av| 五月婷婷综合激情| www.lingjunshare.com| 99久久99久久| 色五月激情五月| 丁香五月婷婷激情尤物| 五月婷婷久久开心网| 激情五月天婷婷色色色色色色色色色色色| 超碰精品在线| 丁香综合网| 婷婷色色五月天| 亚洲精品另类| 99热官网| 操碰99| 九久久九精品视频| 婷婷激情综合网| 思思热国产在线| 色婷婷丁香五月| 五月色亭丁香| 五月色网| 色婷婷久久| 激情五月丁香在线观看直播| 97人人做| 婷婷热色| 中文字幕成人| 97碰碰在线观看视频| 色婷婷综合五月| 99自拍视频网站| 人人摸人人干| 99热综合| 9色在线视频| 五月天六月婷| 亚洲avjiujiur91| 五月丁香好婷婷A片网| 操逼电影免费看| 大香蕉久| 性爱网五月天| 久久婷婷六月综合| 色五月丁香激情视频| 色玖玖综合网| 成人网页在线观看| 久久综合婷婷激情| 久热婷婷| 我爱大香蕉| 久久婷婷视频| 天天天天天天噜| 婷五月丁香| 九九精品网站| 久综合| 94干大香蕉| 东京热五月婷婷| 99只有精品| 狼人久草| 91人人操人人爱| 亚洲狠狠干| 俺去也在线视频| 五月永久激情| 亚洲色婷婷色| 亚洲综合在线伊人婷| 香蕉操亚洲| 综合色色综合| 秋霞网在线免费基地五月婷婷丁香| 四川女人毛多水多A片| 激情综合婷婷| 少妇激情五月天| 97操操操| 99毛片| 99爱爱网| 婷婷五月综合体验看| 婷婷性色| 五月天婷婷在线AN| 国产成人99久久亚洲综合精品| 99热精品9| 先锋资源 996| 久色成人| 天天爱天天做综合| 五月婷婷丁香五月亚洲色| 综合五月丁香久久| 五月天色播网| 99精品视频在线6| 久婷婷五月激情| 美臀自射自家人妻| 婷婷五月天 偷拍| 国产欧美婷婷五月| 色婷婷综合五月| 少妇口诉沐足视频播放器网址| 五月人人丁香婷婷五月人人丁香| 侠女刀之记忆电影在线看免费| 色八月婷婷| 人人色性网| 色插综合网| 五月天中文网| 激情六月一二| AV人人操| 五月丁香欧美综合| 丁香五月综合| 天天插天天射| 丰满少妇猛烈A片免费看观看 | 久草视频大香蕉99| 天花AV无码| 99九九在线视频| 色吧五月婷婷| 激情综合五月婷| 99综合婷婷五月| 婷婷综合网伊人| www.99成人视频| 五月丁香六月婷婷姐| 丁香五月影视| 色色色9| 色婷婷成人做爰A片免费看网站| 久久久99精品免费观看| 婷婷桃色网| 538任你爽视频不一样的| 五月丁香精品| 丁香五月亭亭六月综合激情网| 色综合性视频| 这里只有精品1| 大香蕉啪啪| 操碰97| 97成人丁香| 天天综合五月| www.婷婷网| www五月天激情com| 婷婷九月丁香| 色情五月婷婷| 九九9久九9国产视频| 美女xx不卡| 99精品久久| 欧美婷| 超碰高清在线| 99热这里有精品| www婷婷| www.婷婷五月| 97爱艹婷婷开心丁香激情综合| 都市激情亚洲| 色情五月丁香婷婷网| 成人精品99| 中文资源在线a | 99免费在线| 99在线视频。| 丁香五月中文字幕| 手机看片日日做夜夜| 亚洲综合色网| 色婷婷小说| 五月天丁香欧美激情| 亚洲精品网站色视频| 五月丁香六月香综合激情| www.99热视频| 在线视频区| 五月丁香久久久久| 思思re视频在线| 99激情网| 99国产99| 去干网av| 天天干 夜夜爽| 丁香五月偷拍| 97色啪| 五月丁婷婷| 香蕉综合在线| 人人综合色| 丁香五月天在线视频| 激情五月色播五月| 99热最新网址| 久热超碰91| 26UUU精品一区二区c〇m| 在线成人网站| 色婷婷AV久久| 玖玖伦理电影| 99久超碰| av操B网站| 五月丁香六月色婷婷综合五月天| 欧美人妻一区二区| 亚洲精品又粗又大又爽A片| 欧美啪啪9| 天天橾夜夜爽| 少妇高潮呻吟A片免费看软件| 99re在线视频| 婷婷五月天六点丁香五月| 可以免费观看的av| 最新久久网址| 婷婷五月情| 亚洲五月六月婷婷| 99思思在线视频| 超碰91人人操| 天天射色五月天| 人人看人人草人人摸| 成人在线视频网| 亚洲综合婷婷五月| 婷婷五月另类网站| 无码 av电影| 亚洲网站在线鸭子av| 丁香色成人| 九九热青青草| 婷婷五月丁综合| 九月丁香婷婷| www.99精品在线| 激情五月天色婷婷| 青青草视频免费观看| 啪啪啪大香蕉| 婷婷五月综合社区| 五月天AV大香蕉| 天天操天天爱天天玩| 国产真人做爰视频免费| 成人色五月天婷婷| 高清不卡一区| 亚洲免费观看高清完整版AV线| 成人丁香五月天| 亚洲永远av在线播放| 婷婷综合激情五月综合| 丁香五月AV| 麻豆科斗777| 色偷偷综合| 六月丁香深深爱综合网| 成人国产综合| 中文字幕,综合,91| 五月丁香综合| 99热99| 丁香五月婷久久| 丁香五月激情五月| 亚洲国产色色| 99热在线极品极品| 五月丁香婷庭在线| 婷婷丁香色五月天| 久久丁香五月婷婷| 亚洲综合五月天婷婷| 玖久精品视频9| 日日操夜夜擼| 久色网五月| 99热每日| 夜夜综合色| 五月天色欧美| 人人视频人人干人人做| 久久婷中文字幕| 狠狠干综合| www.91九色| 色五月激情网| 激情五月天在线观看婷婷| 五月天综合色| 婷婷五月蜜桃成人桃色丁香| 99热精品在线| 精品九九视频| 婷婷五月丁香四射| 五月婷婷综合在线视频小说| 91日综合欧美| 婷婷 伊人 久久| 日韩狠狠色| 狠狠搞狠狠操| 五月丁香六月欧美综合| 久久色六月| www.成人婷婷综合| 另类国产区| 超碰超碰在线| 五月色婷婷在线观看| 九九视频在线观看视频6 | 色久五月| 天天综合色99| 久久99精品久久久久久噜噜| 99热欧美| 五月激情综合网| 。久久久久久久久久久久久久人妻| 日韩性爱无码| 97干97色| 777.色色| 丝袜熟女一区二区三区| 丁香婷婷九月| 婷婷五月激情四月综合 | 欧美成人在线观看| 99这里只有精品|v| 99热亚洲| 国产精品久久欧美久久一区| 五月丁香婷婷三级| 国产无人区大片| a在线观看| 九九色热视频| 久久婷婷五月综合伊人| 日本片日本片祼观看网站在线看中文版网页在线看 | 五月丁香花激情啪啪网| 三级三久久线久久99久目本WW| 天天草婷婷五月| 丁香五夜激情四射夜夜夜| 色综合区| www,婷婷五月天777me,com| 欧美激情 日韩无码 婷婷 五月天| av久热| 激情五月婷婷综合视频| 婷婷天堂视频| www.色婷婷| 人妻久久久久久久| 久久九九怡红院| 1024在线观看免费视频| 综合色情网| 思思精品久久艹| 色射影院| chaopeng在线人人| 激情五月婷婷网| 婷婷丁香激情综合色情| 狠狠干五月天婷婷网|