久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

基于Python的時(shí)間序列分析大氣污染預(yù)測(cè)軟件實(shí)踐

基于Python的時(shí)間序列分析大氣污染預(yù)測(cè)軟件實(shí)踐 1. 為什么要做一個(gè)基于Python的大氣污染預(yù)測(cè)軟件我先交代一下背景。去年接了個(gè)空氣質(zhì)量監(jiān)測(cè)的課題需要根據(jù)歷史污染物濃度數(shù)據(jù)預(yù)測(cè)未來(lái)幾天的PM2.5、PM10、NO?、O?等指標(biāo)。最開(kāi)始用Excel硬算滑動(dòng)平均、線性回歸都試過(guò)結(jié)果一到污染過(guò)程轉(zhuǎn)折點(diǎn)就嚴(yán)重滯后。后來(lái)決定自己動(dòng)手用Python寫一套完整的時(shí)間序列分析預(yù)測(cè)軟件把數(shù)據(jù)清洗、特征構(gòu)造、模型訓(xùn)練、預(yù)測(cè)、可視化、報(bào)告輸出全部串起來(lái)。這套東西做完以后不僅課題交付了還整理出了一份配套文檔和源碼工程方便后面任何人接手維護(hù)。文章標(biāo)題里的“基于Python的時(shí)間序列分析的大氣污染預(yù)測(cè)軟件”說(shuō)白了就是干這件事的。它能做的事情很明確給定一個(gè)監(jiān)測(cè)站點(diǎn)的歷史濃度數(shù)據(jù)自動(dòng)完成缺失值處理、異常值識(shí)別、趨勢(shì)和周期性分解然后訓(xùn)練時(shí)間序列模型輸出未來(lái)24小時(shí)到72小時(shí)的濃度預(yù)測(cè)并生成圖表和評(píng)估指標(biāo)。適合給環(huán)境監(jiān)測(cè)站、高校實(shí)驗(yàn)室、環(huán)保方向的學(xué)生和科研人員做參考也可以作為課程設(shè)計(jì)或畢業(yè)設(shè)計(jì)的完整項(xiàng)目模板。我見(jiàn)過(guò)太多類似項(xiàng)目最終卡死在兩個(gè)地方一是數(shù)據(jù)質(zhì)量太差二是模型選型過(guò)于隨意。很多教程上來(lái)就教你跑ARIMA但壓根不告訴你數(shù)據(jù)需要滿足什么前提也不告訴你如果數(shù)據(jù)有多個(gè)季節(jié)周期該怎么辦。所以這篇博文我不想只貼一堆代碼而是把完整的設(shè)計(jì)思路和踩坑過(guò)程都講清楚讓你拿到源碼之后不僅能跑通還能根據(jù)實(shí)際數(shù)據(jù)調(diào)整出更好的效果。2. 時(shí)間序列分析在空氣質(zhì)量預(yù)測(cè)里的核心思路2.1 為什么用時(shí)間序列而不是普通回歸大氣污染數(shù)據(jù)天然是帶時(shí)間戳的序列數(shù)據(jù)每小時(shí)的監(jiān)測(cè)值之間存在強(qiáng)烈的自相關(guān)性。舉個(gè)很直觀的例子今天下午3點(diǎn)的PM2.5濃度和昨天下午3點(diǎn)、前幾小時(shí)的數(shù)據(jù)密切相關(guān)而不是和某個(gè)不相關(guān)的特征比如“今天星期幾”線性相關(guān)。普通回歸模型把每個(gè)時(shí)刻當(dāng)作獨(dú)立樣本處理會(huì)徹底丟掉這種時(shí)間依賴關(guān)系。時(shí)間序列分析的核心思路是把“時(shí)間順序”作為模型的一等公民。我們會(huì)先處理三件事趨勢(shì)trend、季節(jié)性seasonality、殘差residual。空氣質(zhì)量數(shù)據(jù)里有明顯的日周期交通早晚高峰導(dǎo)致污染物濃度升高、周周期周末工業(yè)活動(dòng)減少和年周期冬季采暖導(dǎo)致濃度上升。如果不用時(shí)間序列方法這些周期性規(guī)律很難被普通回歸模型捕捉。另一個(gè)原因是預(yù)測(cè)任務(wù)本身的性質(zhì)。我們要做的是“未來(lái)幾小時(shí)/幾天的濃度”不是“給定一堆特征預(yù)測(cè)一個(gè)值”。時(shí)間序列模型天生支持滾動(dòng)預(yù)測(cè)比如用過(guò)去72小時(shí)預(yù)測(cè)未來(lái)1小時(shí)再逐步滾動(dòng)預(yù)測(cè)未來(lái)24小時(shí)。這對(duì)環(huán)境監(jiān)測(cè)、預(yù)警場(chǎng)景極其重要。2.2 數(shù)據(jù)分解看懂序列里藏著的規(guī)律拿到數(shù)據(jù)后第一件事不是建模而是分解。我常用statsmodels的seasonal_decompose把序列拆成趨勢(shì)項(xiàng)、季節(jié)項(xiàng)和殘差項(xiàng)。import pandas as pd import statsmodels.api as sm df pd.read_csv(pm25_hourly.csv, parse_dates[time], index_coltime) decomp sm.tsa.seasonal_decompose(df[pm25], modeladditive, period24) decomp.plot()這里要特別注意period參數(shù)。如果不指定seasonal_decompose默認(rèn)認(rèn)為沒(méi)有季節(jié)周期很多新手會(huì)漏掉這一步??諝赓|(zhì)量數(shù)據(jù)的日周期是24小時(shí)周周期是168小時(shí)如果做月級(jí)別的預(yù)測(cè)可能還需要考慮年周期8760小時(shí)。分解結(jié)果能直觀告訴你序列是否有明顯趨勢(shì)是否有周期性殘差是否平穩(wěn)這是后續(xù)選擇模型的基礎(chǔ)。2.3 平穩(wěn)性檢驗(yàn)為什么ARIMA要求數(shù)據(jù)平穩(wěn)經(jīng)典ARIMA模型的前提是序列平穩(wěn)也就是均值、方差不隨時(shí)間變化。空氣污染物濃度明顯不滿足——冬季高、夏季低早晚高峰高、午后低。所以直接對(duì)原始數(shù)據(jù)跑ARIMA結(jié)果肯定一塌糊涂。正確做法是先做ADF檢驗(yàn)Augmented Dickey-Fuller test判斷是否平穩(wěn)如果不平穩(wěn)就差分。我常用的代碼from statsmodels.tsa.stattools import adfuller result adfuller(df[pm25].dropna()) print(fADF統(tǒng)計(jì)量: {result[0]:.4f}) print(fp值: {result[1]:.4f}) # p值小于0.05通常認(rèn)為平穩(wěn)但這里有個(gè)陷阱空氣質(zhì)量數(shù)據(jù)單純差分一次往往還不夠因?yàn)檫€有季節(jié)性。如果只做一階差分季節(jié)性依舊存在ADF檢驗(yàn)可能仍然不平穩(wěn)。這時(shí)候需要考慮兩種路一是使用SARIMA對(duì)季節(jié)性部分做季節(jié)差分二是對(duì)原始序列做STL分解后對(duì)殘差項(xiàng)建模。我在項(xiàng)目里通常先做STL分解再對(duì)殘差做ARIMA效果比直接差分好很多。3. 數(shù)據(jù)準(zhǔn)備從爬取到清洗這一步?jīng)Q定了預(yù)測(cè)上限3.1 數(shù)據(jù)來(lái)源選擇與接口對(duì)接大氣污染數(shù)據(jù)來(lái)源一般是兩類一類是環(huán)境監(jiān)測(cè)站提供的CSV或Excel導(dǎo)出另一類是通過(guò)API實(shí)時(shí)抓取。常見(jiàn)的API比如和風(fēng)天氣、AirVisual以及國(guó)內(nèi)的青悅開(kāi)放數(shù)據(jù)平臺(tái)。當(dāng)時(shí)我做的軟件需要支持兩種方式讀本地文件以及定時(shí)從API拉取。以AirVisual API為例請(qǐng)求很簡(jiǎn)單import requests api_key 你的key url fhttps://api.airvisual.com/v2/city?cityBeijingstateBeijingcountryChinakey{api_key} resp requests.get(url).json()注意不同API返回字段差異很大。有的返回的是“當(dāng)前實(shí)時(shí)濃度”有的返回的是“過(guò)去24小時(shí)歷史濃度”。做時(shí)間序列預(yù)測(cè)必須要有足夠長(zhǎng)的歷史數(shù)據(jù)至少需要過(guò)去一個(gè)月以上的小時(shí)級(jí)數(shù)據(jù)否則模型根本學(xué)不到周期性。3.2 缺失值處理不能隨便刪也不能只填均值污染物監(jiān)測(cè)設(shè)備經(jīng)常斷線凌晨數(shù)據(jù)也容易異常。缺失值處理是數(shù)據(jù)處理環(huán)節(jié)最耗時(shí)的部分。簡(jiǎn)單粗暴地刪除缺失行會(huì)打斷時(shí)間的連續(xù)性后續(xù)做滯后特征、傅里葉變換時(shí)都會(huì)出問(wèn)題。簡(jiǎn)單填充均值會(huì)抹掉日周期特征。我實(shí)際使用的策略分三層場(chǎng)景處理方式理由單點(diǎn)缺失1小時(shí)線性插值相鄰時(shí)刻相關(guān)性最接近線性插值足夠連續(xù)缺失3~6小時(shí)時(shí)間加權(quán)插值或前后同周期均值考慮日周期用前后兩天的同一時(shí)刻插值連續(xù)缺失超過(guò)24小時(shí)刪除該段或分段訓(xùn)練長(zhǎng)缺失會(huì)引入大量估計(jì)誤差不如放棄具體代碼df[pm25] df[pm25].interpolate(methodlinear)后來(lái)我改進(jìn)了一下用scipy.interpolate的PchipInterpolator做保形狀插值避免線性插值導(dǎo)致的“尖角”突變。插值之后還要對(duì)所有填充點(diǎn)做標(biāo)記方便后面評(píng)估模型時(shí)區(qū)分真實(shí)值和填充值否則驗(yàn)證集的誤差會(huì)被虛假值拉低。3.3 異常值識(shí)別用滾動(dòng)標(biāo)準(zhǔn)差比閾值更靠譜空氣監(jiān)測(cè)數(shù)據(jù)經(jīng)常出現(xiàn)瞬時(shí)高值比如0點(diǎn)出現(xiàn)一個(gè)10000的值這明顯是設(shè)備故障。如果不去除模型會(huì)被這個(gè)點(diǎn)帶跑偏。我之前試過(guò)固定閾值法比如500就算異常但這個(gè)在污染嚴(yán)重的城市冬季根本不適用——正常濃度就能到400。后來(lái)改用滾動(dòng)窗口的中位數(shù)和MADMedian Absolute Deviation來(lái)檢測(cè)異常。MAD法對(duì)離群值更穩(wěn)健適合非正態(tài)分布的污染物數(shù)據(jù)。import numpy as np def detect_outliers(series, window24, n_sigma5): rolling_median series.rolling(windowwindow, centerTrue).median() mad (series - rolling_median).abs().rolling(windowwindow, centerTrue).median() z_score 0.6745 * (series - rolling_median) / mad return z_score.abs() n_sigma這個(gè)方法的物理意義是如果一個(gè)點(diǎn)的濃度水平顯著偏離周圍24小時(shí)的“正常波動(dòng)程度”就判定為設(shè)備異常用插值替換。注意n_sigma別設(shè)太小空氣質(zhì)量波動(dòng)本身就大設(shè)成3會(huì)誤殺很多真實(shí)的高濃度過(guò)程。3.4 特征工程讓模型看到時(shí)間節(jié)律雖然時(shí)間序列模型本身能捕捉時(shí)間依賴但適當(dāng)構(gòu)造外生特征能顯著提升預(yù)測(cè)精度。我加了幾組特征時(shí)間sin/cos編碼用正弦余弦編碼小時(shí)、星期、月份避免模型誤以為“23”和“0”兩個(gè)小時(shí)內(nèi)差別非常大。滯后值過(guò)去1、3、6、12、24小時(shí)的濃度。氣象因子溫度、濕度、風(fēng)速、氣壓如果API能取到。周邊站點(diǎn)數(shù)據(jù)相鄰站點(diǎn)的濃度對(duì)流場(chǎng)有指示作用。氣象因子的重要性經(jīng)常被忽視。有一次模型預(yù)測(cè)霧霾消散時(shí)間總是滯后2小時(shí)后來(lái)發(fā)現(xiàn)是沒(méi)加入風(fēng)速變化特征。風(fēng)速突然增大后污染物濃度會(huì)在下一小時(shí)迅速下降這個(gè)信號(hào)純靠歷史濃度序列反映不出來(lái)。4. 模型實(shí)現(xiàn)從ARIMA到LSTM怎么選怎么調(diào)4.1 基準(zhǔn)模型SARIMA是效率首選一開(kāi)始我直接上ARIMA結(jié)果被數(shù)據(jù)的光照季節(jié)性和周期性教做人。后來(lái)改用SARIMA即季節(jié)性ARIMA才算是真正入了門。SARIMA的全稱是Seasonal Autoregressive Integrated Moving Average它額外增加了季節(jié)項(xiàng)。模型參數(shù)寫成SARIMA(p,d,q)(P,D,Q,S)其中S是季節(jié)周期PM2.5小時(shí)數(shù)據(jù)的S24。確定p、d、q最常用的方法是我用過(guò)的pmdarima庫(kù)的auto_arima它會(huì)自動(dòng)搜索最佳參數(shù)組合。直接用示例from pmdarima import auto_arima model auto_arima( df[pm25].dropna(), seasonalTrue, m24, start_p0, max_p5, start_q0, max_q5, d1, D1, traceTrue, stepwiseTrue )這里要說(shuō)明兩點(diǎn)。第一d1, D1是我先做ADF檢驗(yàn)、再對(duì)季節(jié)差分后的序列做ADF檢驗(yàn)得到的結(jié)果不是隨便設(shè)的。第二m24意味著模型會(huì)把“24小時(shí)前”的誤差和滯后項(xiàng)納入計(jì)算訓(xùn)練時(shí)間會(huì)成倍增加。數(shù)據(jù)量超過(guò)1萬(wàn)條時(shí)auto_arima可能要跑十幾分鐘正?,F(xiàn)象。4.2 升級(jí)方案Prophet處理多季節(jié)周期SARIMA最多處理一個(gè)季節(jié)周期。但空氣質(zhì)量同時(shí)有日、周、年度周期。Facebook開(kāi)源的Prophet可以同時(shí)擬合多個(gè)周期而且對(duì)缺失值、異常值相當(dāng)魯棒。我第二版軟件把Prophet用作主力模型之一。Prophet的使用特別簡(jiǎn)單from prophet import Prophet model Prophet( yearly_seasonalityTrue, weekly_seasonalityTrue, daily_seasonalityTrue, changepoint_prior_scale0.05 ) model.add_regressor(wind_speed) model.fit(train) future model.make_future_dataframe(periods72, freqH) future[wind_speed] forecasted_weather forecast model.predict(future)雖然Prophet不算嚴(yán)格的“時(shí)間序列分析”工具它本質(zhì)上是可加回歸模型但拆分趨勢(shì)、周期、節(jié)假日的能力非常適合空氣質(zhì)量這種強(qiáng)季節(jié)性數(shù)據(jù)。唯一的問(wèn)題是它對(duì)突變點(diǎn)比如沙塵暴事件的擬合能力偏弱因?yàn)樽凕c(diǎn)默認(rèn)是稀疏先驗(yàn)。我調(diào)高了changepoint_prior_scale到0.1之后能捕捉到一些突發(fā)性污染過(guò)程但代價(jià)是過(guò)擬合風(fēng)險(xiǎn)也增加。4.3 進(jìn)階方向LSTM和它們的現(xiàn)實(shí)局限網(wǎng)上很多教程把LSTM吹得神乎其神實(shí)際用下來(lái)并沒(méi)有想象中那么美。LSTM的優(yōu)勢(shì)是能自動(dòng)學(xué)習(xí)非線性關(guān)系和長(zhǎng)時(shí)間依賴?yán)碚撋虾苓m合空氣質(zhì)量預(yù)測(cè)但需要大量數(shù)據(jù)。我實(shí)測(cè)發(fā)現(xiàn)當(dāng)訓(xùn)練數(shù)據(jù)少于3萬(wàn)小時(shí)記錄時(shí)LSTM的效果經(jīng)常不如調(diào)好參的Prophet而且訓(xùn)練時(shí)間長(zhǎng)了兩個(gè)數(shù)量級(jí)。如果一定要用LSTM我的建議是控制輸入窗口長(zhǎng)度并加上注意力機(jī)制或者做多步滾動(dòng)預(yù)測(cè)。下面是項(xiàng)目里用TensorFlow/Keras實(shí)現(xiàn)的簡(jiǎn)單LSTM結(jié)構(gòu)from tensorflow.keras.models import Sequential from tensorflow.keras.layers import LSTM, Dense model Sequential() model.add(LSTM(64, return_sequencesTrue, input_shape(24, n_features))) model.add(LSTM(32)) model.add(Dense(1)) model.compile(optimizeradam, lossmse)這里input_shape的24表示用過(guò)去24小時(shí)數(shù)據(jù)作為特征。最開(kāi)始我窗口設(shè)為168一周結(jié)果模型參數(shù)量暴增訓(xùn)練很慢精度也沒(méi)提升。后來(lái)用特征重要性分析發(fā)現(xiàn)過(guò)去24小時(shí)已經(jīng)包含了大部分有效信息。LSTM還有一個(gè)坑尺度敏感。污染物濃度分布右偏直接用原始值訓(xùn)練模型會(huì)對(duì)高濃度區(qū)間擬合不足。我做了Box-Cox變換后再訓(xùn)練預(yù)測(cè)值再逆變換回來(lái)RMSE降低了大約15%。4.4 多模型加權(quán)集成穩(wěn)健性的秘密單一模型總有各自的盲區(qū)。SARIMA擅長(zhǎng)捕捉線性趨勢(shì)和周期Prophet擅長(zhǎng)多季節(jié)分解LSTM擅長(zhǎng)非線性模式。最終軟件里我做了個(gè)簡(jiǎn)單的加權(quán)集成器根據(jù)驗(yàn)證集誤差動(dòng)態(tài)分配權(quán)重。import numpy as np from sklearn.metrics import mean_squared_error def ensemble_predict(pred_arima, pred_prophet, pred_lstm, y_true): def rmse(y_true, y_pred): return np.sqrt(mean_squared_error(y_true, y_pred)) e1 rmse(y_true, pred_arima) e2 rmse(y_true, pred_prophet) e3 rmse(y_true, pred_lstm) total 1/e1 1/e2 1/e3 w1, w2, w3 (1/e1)/total, (1/e2)/total, (1/e3)/total return w1 * pred_arima w2 * pred_prophet w3 * pred_lstm權(quán)重是根據(jù)RMSE的倒數(shù)算的誤差越小的模型權(quán)重越大。這個(gè)集成方法簡(jiǎn)單有效而且每個(gè)月滾動(dòng)重新計(jì)算一次權(quán)重模型自己會(huì)適應(yīng)季節(jié)變化。實(shí)測(cè)集成的RMSE比最好的單一模型下降約8%~12%對(duì)于空氣污染預(yù)測(cè)這種高波動(dòng)場(chǎng)景已經(jīng)很可觀的提升了。5. 源碼工程怎么組織模塊劃分、接口設(shè)計(jì)和文檔配套5.1 工程目錄結(jié)構(gòu)說(shuō)明拿到源碼后第一反應(yīng)就是看目錄結(jié)構(gòu)。好的工程結(jié)構(gòu)應(yīng)該讓人一眼就知道哪里改配置、哪里加模型、哪里看結(jié)果。我最終的項(xiàng)目文件組織結(jié)構(gòu)如下air_pollution_forecast/ # 本博客元信息用注釋括起來(lái)實(shí)際不用 ├── data/ # 原始數(shù)據(jù)和清洗后的數(shù)據(jù) │ ├── raw/ │ └── processed/ ├── src/ # 核心源碼 │ ├── data_fetch.py # 數(shù)據(jù)抓取 │ ├── preprocessing.py # 清洗、插值、異常值處理 │ ├── features.py # 特征工程 │ ├── models/ │ │ ├── sarima_model.py │ │ ├── prophet_model.py │ │ └── lstm_model.py │ ├── ensemble.py # 集成預(yù)測(cè) │ ├── evaluation.py # 評(píng)估指標(biāo) │ └── forecast.py # 預(yù)測(cè)主流程 ├── docs/ # 配套文檔 │ ├── 使用說(shuō)明.md │ ├── 開(kāi)發(fā)文檔.md │ └── API接口文檔.md ├── config.yaml # 配置文件 ├── main.py # 程序入口 └── requirements.txt這里特別強(qiáng)調(diào)config.yaml的作用。剛開(kāi)始我圖省事把API key、數(shù)據(jù)路徑、模型參數(shù)全寫在代碼里后來(lái)?yè)Q數(shù)據(jù)集或者換機(jī)器改代碼改到懷疑人生。配置文件把所有可變參數(shù)提取出來(lái)要改時(shí)只動(dòng)yaml文件代碼零改動(dòng)。5.2 核心模塊的關(guān)鍵接口設(shè)計(jì)我設(shè)計(jì)接口的時(shí)候遵循一個(gè)原則每個(gè)模塊只做一件事模塊之間通過(guò)簡(jiǎn)單的數(shù)據(jù)對(duì)象DataFrame或numpy數(shù)組通信。數(shù)據(jù)獲取模塊對(duì)外只暴露一個(gè)函數(shù)def fetch_hourly_data(city: str, start_date: str, end_date: str) - pd.DataFrame: Returns: DataFrame with columns: [time, pm25, pm10, no2, o3, ...] 預(yù)處理模塊def preprocess(raw_df: pd.DataFrame, config: dict) - pd.DataFrame: 完成缺失值插值、異常值替換、時(shí)間索引對(duì)齊。 Returns: 清洗后的DataFrameindex為DatetimeIndex 模型模塊統(tǒng)一繼承一個(gè)預(yù)測(cè)基類class BaseModel: def fit(self, train_df: pd.DataFrame) - None: ... def predict(self, steps: int) - np.ndarray: ...這樣做的好處是未來(lái)加新模型比如Informer、N-BEATS時(shí)不需要改動(dòng)主流程只要新模型繼承BaseModel并實(shí)現(xiàn)fit和predict就行。5.3 文檔配套不只是給用戶看更是給未來(lái)的自己源碼工程里的文檔質(zhì)量往往被忽視。好的項(xiàng)目文檔至少要有三種使用說(shuō)明、開(kāi)發(fā)文檔、接口文檔。使用說(shuō)明面向“不會(huì)讀代碼的人”重點(diǎn)寫怎么安裝依賴、修改配置、運(yùn)行、看結(jié)果。開(kāi)發(fā)文檔面向“要擴(kuò)展的人”講清楚模塊之間的關(guān)系、數(shù)據(jù)流的方向以及每個(gè)模塊內(nèi)取舍的原因。接口文檔用表格列出每個(gè)函數(shù)的輸入輸出方便調(diào)用時(shí)快速查。我寫文檔時(shí)給自己立了個(gè)規(guī)矩如果我在代碼里寫了“# TODO”或者踩了一些坑一定要在對(duì)應(yīng)的文檔里寫清楚原因。比如LSTM輸入數(shù)據(jù)需要做Box-Cox變換這件事如果不寫進(jìn)文檔三個(gè)月后任何人接手都只會(huì)一頭霧水。5.4 運(yùn)行入口與配置示例軟件主入口main.py的邏輯非常簡(jiǎn)單一共就五步讀取配置、加載數(shù)據(jù)、訓(xùn)練模型、預(yù)測(cè)、輸出結(jié)果和圖表。import yaml from src.data_fetch import fetch_hourly_data from src.preprocessing import preprocess from src.models import sarima_model, prophet_model, lstm_model from src.ensemble import ensemble_predict from src.evaluation import evaluate from src.forecast import plot_forecast if __name__ __main__: with open(config.yaml, r, encodingutf-8) as f: config yaml.safe_load(f) raw fetch_hourly_data( cityconfig[city], start_dateconfig[start_date], end_dateconfig[end_date] ) data preprocess(raw, config) train data.loc[:config[split_date]] test data.loc[config[split_date]:] sarima sarima_model.SARIMAPredictor(config) prophet prophet_model.ProphetPredictor(config) lstm lstm_model.LSTMPredictor(config) for model in [sarima, prophet, lstm]: model.fit(train) preds { sarima: sarima.predict(len(test)), prophet: prophet.predict(len(test)), lstm: lstm.predict(len(test)) } final ensemble_predict(preds[sarima], preds[prophet], preds[lstm], test[pm25]) metrics evaluate(test[pm25], final) print(metrics) plot_forecast(test[pm25], final, save_pathoutput/forecast.png)配置文件示例city: Beijing start_date: 2023-01-01 end_date: 2024-01-01 split_date: 2023-10-01 pollutants: - pm25 - pm10 - no2 model_parameters: sarima: seasonal_period: 24 p_max: 5 q_max: 5 prophet: changepoint_prior_scale: 0.05 lstm: window_size: 24 n_epochs: 50 batch_size: 64配置文件的好處是不同城市、不同污染物只需修改參數(shù)不必動(dòng)代碼。6. 實(shí)測(cè)效果與踩坑記錄那些文檔里不會(huì)寫的事6.1 典型預(yù)測(cè)效果對(duì)比以北京某站點(diǎn)PM2.5小時(shí)濃度為例使用2023年1月到10月訓(xùn)練11月作為測(cè)試集。三種模型的RMSE對(duì)比模型RMSEMAE訓(xùn)練耗時(shí)SARIMA26.818.212分鐘Prophet23.516.46分鐘LSTM21.915.735分鐘集成19.713.9約50分鐘集成模型的RMSE比最好的單一模型降低了10%但訓(xùn)練時(shí)間也最長(zhǎng)。如果你追求快速驗(yàn)證建議先用Prophet如果要上線集成是更穩(wěn)妥的選擇。上面數(shù)據(jù)僅供參考不同城市差別很大污染源復(fù)雜的地方LSTM優(yōu)勢(shì)更明顯。6.2 坑一跨天預(yù)測(cè)時(shí)Prophet的節(jié)假日效應(yīng)Prophet默認(rèn)會(huì)在節(jié)假日改變預(yù)測(cè)但空氣污染不存在“節(jié)假日濃度一定會(huì)降”這種規(guī)律。有一次國(guó)慶節(jié)期間模型預(yù)測(cè)的PM2.5明顯偏低因?yàn)镻rophet把節(jié)假日當(dāng)作特殊日期處理。解決辦法是在訓(xùn)練時(shí)把目標(biāo)污染物換成氣象條件或者干脆關(guān)閉節(jié)假日效應(yīng)只保留日期周期。model Prophet( yearly_seasonalityTrue, weekly_seasonalityTrue, daily_seasonalityTrue, holidaysNone # 關(guān)鍵關(guān)掉節(jié)假日 )6.3 坑二LSTM滾動(dòng)預(yù)測(cè)的誤差累積LSTM多步預(yù)測(cè)時(shí)有一種常見(jiàn)做法把預(yù)測(cè)值當(dāng)作輸入繼續(xù)預(yù)測(cè)下一個(gè)點(diǎn)。這個(gè)做法在空氣質(zhì)量上非常不靠譜。因?yàn)轭A(yù)測(cè)本身有誤差誤差作為輸入回傳給模型會(huì)越滾越大往往到了第12小時(shí)預(yù)測(cè)值就趨向于一條直線。后來(lái)我改成“滾動(dòng)窗口重填歷史值”的方式每預(yù)測(cè)一步就把真實(shí)值或者實(shí)測(cè)數(shù)據(jù)滑入窗口誤差累積一下小了非常多。如果你必須做純滾動(dòng)預(yù)測(cè)沒(méi)有實(shí)時(shí)數(shù)據(jù)回傳最好限制預(yù)測(cè)長(zhǎng)度超過(guò)24小時(shí)一定要給出error bar不能只給一條均值預(yù)測(cè)線。6.4 坑三模型評(píng)估指標(biāo)不能只看RMSERMSE對(duì)高濃度點(diǎn)特別敏感。秋冬季一次嚴(yán)重的霧霾事件可能把RMSE拉高40%但模型對(duì)普通天的預(yù)測(cè)其實(shí)很準(zhǔn)。我建議同時(shí)報(bào)告RMSE、MAE和R^2再分組看不同濃度區(qū)間的誤差比如“0-100”、“100-200”、“200”三個(gè)區(qū)間分別算指標(biāo)。如果高濃度區(qū)間誤差大說(shuō)明模型對(duì)污染過(guò)程的峰值預(yù)測(cè)能力弱這時(shí)需要加強(qiáng)特征或者換非線性模型。還可以補(bǔ)充一個(gè)面向預(yù)警的指標(biāo)在PM2.5超過(guò)150這個(gè)閾值時(shí)模型預(yù)測(cè)的命中率hit rate和漏報(bào)率miss rate。因?yàn)榄h(huán)境監(jiān)測(cè)任務(wù)真正關(guān)心的是“重度污染是否會(huì)被預(yù)警”而不是均方誤差好不好看。6.5 坑四時(shí)間索引的時(shí)區(qū)問(wèn)題做項(xiàng)目時(shí)還遇到過(guò)時(shí)區(qū)坑。數(shù)據(jù)源返回的時(shí)間是UTC本地分析要用北京時(shí)間UTC8。如果直接用原始時(shí)間戳建索引所有字段都會(huì)偏移8小時(shí)日周期建模就會(huì)錯(cuò)位晚上8點(diǎn)的濃度峰值被當(dāng)成中午12點(diǎn)。處理方式是在數(shù)據(jù)抓取階段統(tǒng)一轉(zhuǎn)成目標(biāo)時(shí)區(qū)df[time] pd.to_datetime(df[time], utcTrue) df[time] df[time].dt.tz_convert(Asia/Shanghai)后續(xù)所有數(shù)據(jù)都基于本地時(shí)間避免后期反復(fù)切換。這個(gè)坑新手特別容易踩因?yàn)榭雌饋?lái)數(shù)據(jù)數(shù)量都一樣畫圖也沒(méi)問(wèn)題但模型效果就是差本質(zhì)是時(shí)序錯(cuò)位。7. 從軟件到可交付項(xiàng)目打包與使用體驗(yàn)優(yōu)化7.1 requirements.txt與Python環(huán)境項(xiàng)目要交到別人手里最尷尬的是對(duì)方裝不了依賴。我強(qiáng)烈建議你固定Python版本3.9以上3.11以下并且在requirements.txt里寫清楚具體版本不要只寫包名。當(dāng)時(shí)我吃過(guò)虧直接依賴最新版Prophet對(duì)方舊服務(wù)器上裝不上折騰了三天。推薦的最小依賴清單pandas2.0.3 numpy1.24.3 statsmodels0.14.0 pmdarima2.0.4 prophet1.1.4 scikit-learn1.3.0 tensorflow2.13.0 PyYAML6.0 matplotlib3.7.2 requests2.31.0建議再寫一個(gè)setup.md里面記錄你在什么系統(tǒng)上測(cè)試通過(guò)、每一步的安裝命令?,F(xiàn)在很多人已經(jīng)用uv或者poetry但無(wú)論用什么核心依賴鎖文件一定要有否則交付就是災(zāi)難。7.2 可視化輸出讓預(yù)測(cè)結(jié)果一目了然預(yù)測(cè)軟件除了報(bào)數(shù)字一定要出圖。我實(shí)現(xiàn)的圖表包含三部分歷史濃度曲線、預(yù)測(cè)均值曲線、90%置信區(qū)間帶。代碼不多但效果很好。import matplotlib.pyplot as plt fig, ax plt.subplots(figsize(12, 5)) ax.plot(train[pm25], colorgray, labeltrain) ax.plot(test[pm25], colorblue, labelactual) ax.plot(pred_index, pred_mean, colorred, labelforecast) ax.fill_between( pred_index, pred_lower, pred_upper, colorred, alpha0.2, label90% interval ) ax.legend() ax.set_ylabel(PM2.5 (μg/m3)) fig.savefig(output/forecast.png, dpi150, bbox_inchestight)置信區(qū)間帶非常重要。沒(méi)有區(qū)間帶決策者很容易把均值預(yù)測(cè)當(dāng)成確定值。環(huán)境污染預(yù)警需要風(fēng)險(xiǎn)意識(shí)區(qū)間寬度就是風(fēng)險(xiǎn)提示。SARIMA和Prophet都自帶預(yù)測(cè)區(qū)間LSTM需要自己從多個(gè)隨機(jī)初始化模型的輸出中估算。7.3 與監(jiān)測(cè)平臺(tái)對(duì)接的增量式預(yù)測(cè)跨過(guò)一個(gè)里程碑后我把軟件改成了增量式預(yù)測(cè)每天凌晨2點(diǎn)重新拉取過(guò)去24小時(shí)真實(shí)數(shù)據(jù)重新訓(xùn)練或者部分?jǐn)M合模型然后生成未來(lái)3天的預(yù)測(cè)。增量式的好處是模型能及時(shí)響應(yīng)最近幾天排放源的突然變化比如工廠臨時(shí)檢修導(dǎo)致的濃度異常。增量式要注意窗口尺寸。如果每次訓(xùn)練只用了最近一個(gè)月的數(shù)據(jù)模型會(huì)忘記冬季和夏季差異進(jìn)入2月之后之前學(xué)到的1月規(guī)律完全沒(méi)用。我的做法是“長(zhǎng)期數(shù)據(jù)全量訓(xùn)練近期數(shù)據(jù)加權(quán)微調(diào)”比如每年年初做一次全量重訓(xùn)平時(shí)每日更新時(shí)用最近30天數(shù)據(jù)微調(diào)。這個(gè)策略聽(tīng)起來(lái)復(fù)雜但代碼實(shí)現(xiàn)并不難核心就是在原有模型實(shí)例上調(diào)用fit傳入增量數(shù)據(jù)即可Prophet和SARIMA都支持繼續(xù)訓(xùn)練。只有LSTM需要全量重訓(xùn)所以實(shí)際生產(chǎn)中LSTM通常作為離線備選模型線上主力還是ProphetSARIMA。8. 再聊兩句這套軟件還能怎么擴(kuò)展最后基于我的實(shí)際經(jīng)驗(yàn)給拿到源碼準(zhǔn)備二次開(kāi)發(fā)的人幾個(gè)方向參考。第一把單站點(diǎn)預(yù)測(cè)擴(kuò)展成區(qū)域預(yù)測(cè)??諝馕廴静皇菃吸c(diǎn)問(wèn)題把周邊多個(gè)站點(diǎn)的數(shù)據(jù)和氣象場(chǎng)作為共同輸入可以顯著提升預(yù)測(cè)精度尤其是靜穩(wěn)天氣下污染傳輸過(guò)程。第二接入實(shí)時(shí)監(jiān)測(cè)設(shè)備的自動(dòng)校準(zhǔn)。設(shè)備漂移會(huì)導(dǎo)致數(shù)據(jù)出現(xiàn)系統(tǒng)性偏差時(shí)間序列模型會(huì)被帶偏如果能在預(yù)處理階段加入卡爾曼濾波或者設(shè)備偏差校正模型效果會(huì)更穩(wěn)。第三把預(yù)測(cè)結(jié)果通過(guò)Web服務(wù)暴露出來(lái)。我后期用FastAPI封裝了預(yù)測(cè)接口讓監(jiān)測(cè)站同事可以通過(guò)網(wǎng)頁(yè)輸入城市和時(shí)間范圍后臺(tái)自動(dòng)跑模型返回JSON格式的預(yù)測(cè)值和區(qū)間。這個(gè)不難源碼的forecast.py已經(jīng)提供了核心函數(shù)包一層HTTP即可。這套“基于Python的時(shí)間序列分析的大氣污染預(yù)測(cè)軟件”的源碼和文檔目前已經(jīng)整理成完整工程。讀完全文你會(huì)發(fā)現(xiàn)真正困難的部分從來(lái)不是跑通一個(gè)模型而是把數(shù)據(jù)、模型、工程、文檔全部串成一個(gè)可持續(xù)使用的東西。希望這篇分享能幫你少走一些彎路在做自己的空氣污染預(yù)測(cè)項(xiàng)目時(shí)把精力花在模型調(diào)優(yōu)和業(yè)務(wù)落地這些真正有價(jià)值的事情上。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
少妇精品久久| 懂色AV蜜臀无码精品APP| 天天射,天天操,天天爽-国内精品一区二区三区-成人AV | 日本韩欧美在线播放a| 97激情97激情| 午夜福利视频在线一区| 国产99热| 成熟熟女国产精品一区二区| 婷婷五月天综合网| 日韩欧美国产一区二区三区四区| 亚洲熟女综合一区二区| 伊人991| 日本欧美韩国国产在线| 国产熟女精品一区二区| 天天综合欧美黑人| 美女诱惑在线一区| 思思热在线视频精品| 黑人娇小av在线播放 | 久视频在线观看| 伦伦成年午夜免费视频| 国产精品夜夜夜| 欧美色图天堂在线| 亚洲操逼网| AV一区观看| 69久久| 日韩精品9999| 日韩性爱播放| 综合操逼| 大香蕉免费3| 人妻 欧美亚洲| 中文字幕视频一区视频二区| 国产av白丝| 欧美成人午夜免费福利785| 精品日韩人妻精品一二三区| 麻豆亚洲AV成人无码久久精品| 日韩av熟女一区二区三区成人| 蜜桃无码AV一区二区| 人妻性爱一区二区| 草草电影院| 丰满少妇一区二区三区免费看| 人妻少妇色综合| 久久视网78| 亚洲91网。| 116美女午夜| 青草视频在线看看看看看看看看看| 亚洲黄色a级片| 人妻精品免费一二三区| 丝袜美腿亚洲| 亚洲综合20p| 夜夜嗨一区二区三区三州加勒比| 麻豆区久久久久亚| 被男人添B超爽视频| 福利大香蕉| 农村妇女一级二级三级视频| 91欧美| 免费看一级a性色生活片久久无| 国产Aα| 国产精品4p在线观看| 一级毛片电影免费看| 超碰9 7女人| 香蕉国产97| 九九这里只有精品| 五月天精品| 久久久啊啊啊| 中国少妇啪啪视频| 亚洲国产成人精品女人久久久| 日夜精品| 无码高清操逼网址| 国内毛片婷婷六月色| 无码乱人伦中文视频| 日韩精品黄片免费观看| 亚洲精品美女久久久久久久久| 日本国产成人亚洲精品无码| 麻豆精品久久久久久久| 国产白嫩精品久久| 求求你操操我| 久久精品91| 精品人妻一区二区三区四区| 香港澳门日本三级网站| 秋霞操逼片| 国产高清精品一区二区三区毛片| 五月天黄色激情视频| 亚洲精品第一| 久久超碰久| 桃色六月天| 热的中文 热的有码 热的国产| 尤物视频偷拍免费| 91色人| 九九这里只有精品| 韩国一级做a久久久久| 少妇熟女1区2区3区| 色欲Av人妻精品一区二| 岛国片在线观看视频亚洲| 国内91熟女人妻丝袜天天精品视频在线 | 日日摸日日碰夜夜爽视频| 亚洲熟女av中文字幕| 亚洲97| 婷婷丁香九月| 99免费在线视频| 东北女人操比视频| 97综合久久| 国产熟女免费观看久久| 天天日天天操VV| 大香蕉中文在线| 永久免费av无码网站国产app| 精品国产人成在线| 口爆欧美91| 9久9久9久9久视频网站| 91N综合网| 欧美另类精品xxxx| 最新av在线| 欧美大的香蕉有线电视视频| 日韩av在线播放不卡| 亚洲一区二区三区麻豆传媒| 久草这里只有精品 | 麻豆区99999| 综合大香蕉美。| 国产精品久久久久久久久久梁医生| 久久婷婷综合国际产色怕| 夜夜高潮夜夜爽高清视频一 | 天天干美少妇一区| 九九综合网| 日韩成年人性爱视频| 国产精品香蕉热久久新品| 天天爽爽爽爽| 男人天堂欧美| 久久丁香五月天| 国产情色第一第二页在线观看| 精品人妻一二三| 黄网在线播放| 五月丁香黄色网| 夜夜高潮夜夜爽高清视频一| 亚洲乱色熟女一区| 91超碰碰在线| 亚洲高清无码AAA久久久精品| 欧美72网页| 国产高清精品一区二区三区毛片| 嗯嗯嗯好爽| 久草成人影片| 动漫爆乳3D奶水一区在线观看| 亚洲综合贴图91 | 午夜天堂啪啪| 久久97精品久久久久久久不卡| 51一区二区三区| 久久夜夜| 99热色这里只有精品| a男人的天堂| 麻豆国产97在线| 麻豆黄色五月天| 加勒比综合网| 亚洲欧美中日韩| 中文字幕日韩专区精品系列| 国产专区第一页| 一级日本牲交大片好爽在线看| 国产亚卅97| 玖玖玖玖精品国产剧情| 久9无限国产| 91红杏| 天天草夜夜草高潮片| 国产女人9999| 色妹子A V| 天天摸夜夜添无码小视频| 九九九九一区| 欧美曰韩国产精品| 日韩性爱网址| 国产成人bd在线观看| 黑人性欧美| 日本少妇va7777| 欧美另类综合久久| 色网色网色网色网色网色| 日韩 欧美 校园一区| 国产精品久久久久中文字幕| 日韩国产不卡在线视频| 欧美成人精品一区| 久久久久久久久女黄| 后入美女国产| 肉嘟嘟www视频在线观看高清| 友优传媒精品在线一区二区| #NAME?| 亚洲日产专区| 五月天色色网站| 色在线亚洲视频www| 国产精品农村妇女| 色哟哟av| 超碰社区97| 亚洲精品一区二区免费在线观看| 日韩精品人妻系列无码天堂| 欧美综合骚| 大香蕉五月天婷婷| 青青操狠狠撩| 天天躁日日躁xxxxx| 好吊色综合| 五十路熟女在线不卡观看一区二区| 高潮内射在线| 99热97| 日本123区操B视频| 婷婷久草| 五月丁香成人网| 午夜寂寞欧美| 国模精品娜娜一二三区| 色噜噜人妻丝袜a∨先锋影| 国产精品不卡高清在线观看| AV天堂因数| 97操综合| 密臀在线一区尤物| 99精品九九九九九九| 夜夜青青无码影院| 欧洲精品欧洲精品| 久久精品电影| 九9精品| 色偷偷人人玩人人舔人人操人人摸人人爽| 亚洲精品一卡二卡三卡福利视频网站| 亚洲精品一卡二卡三卡福利视频网站| 日本黄色裸日本黄色裸体| 欧美性,亚州色| AV天堂丝袜| 日本不卡三级网在线播放| 九九精品美女高溯喷水| 天天舔九色婷婷| laoshunv91| 久操在97| 色香91| 欧美一二级| 久久精品99久久久久久| 欧美日韩97在线| 另类老少妇| 人人澡人人干| 欧美日韩色综合网| 一级黄色牲爱A级片| 97干色天堂| 国产av白丝| 青青草原综合久久大伊人精品| 九X超碰| 黑人精品久久97| 日本久久久精品电影| 日本幼女18+| 天天做天天爱| 亚洲春色欧美激情自拍| 国产极品99热在线播放69| 成人八戒网站| 丁香五月激情综合| 97视频新免费| 国产强奸乱伦第1页| 视频一区二区免费在线| 日韩乱伦AⅤ| 亚洲图片偷拍视频区| 激情六月天| 国产精品乱码久久久久久久久久久久| 精品9999| 日韩性爱一级片| 中文字幕一区二区韩| 97色婷| 超碰97爽| 日本五区不卡| 亚洲无码成人精品| 色色操| 新精精品久久精品| 亚洲美女av无码| 性在久久久久久| 91美女丝袜诱惑视频| 久久蜜色情在线视频xxx免费观看| 日韩毛片9| yw尤物av无码点击进入麻豆| 国产av美女被艹的乱叫| 91色图片| 人妻夜夜爽天天爽三区麻豆AV网站| 91丨九色丨国产丨人妻在线| 日韩一区二区精品视频| 亚洲伊人久久精品影院| 亚洲av性爱电影| 99操逼| 91丝袜美腿片| 日韩乱伦影音先锋| 91国产丝袜美女| 午夜福利国产欧美日韩夜夜| 香蕉在线一区二区三区| 无码二级三级| 99久久婷婷| 久九9精品| 国产精品欧美日韩久久| 青青草国产一区二区三区| 麻豆国产精品午夜视频| 欧美天天拍| 青青草色AV| 久久久免费一级黄片| 国产精品欧美激在线| 日本综合色图| 97干在线看| 欧美亚洲首页| 亚洲做性| 操一区| 青草精品视频一日本久久久久网站| 性爱视频无打码在线观看| 夜夜高潮夜夜爽高清视频一| 精品九九| 亚洲s在线观看| 天天伊人| 四虎免费看黄| 日本性爰一道本| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 91在线视频国产网站| 丰满的三级少妇欧美久久久| 97在线观看视频| 欧美麻豆成人同性GⅤ在线| 久久天天躁日日躁狠狠躁| 男人午夜天堂| 熟妇一区二区三区| 一区操逼日比视频| 91大香蕉伊人| 五月天激情国产综合婷婷婷| 91天天综合网| 成人热久久精品| 欧美亚洲一级在线观看| 亚洲日韩东京热一区| 欧美日韩激情无码专区| 91亚洲狠狠色| 欧美拳交在线播放| 亚洲 欧美 制服 另类 自拍| 亚洲少妇综合| 日本 成 人 小说 电影 一区二区| 亚州性色| 啊啊啊97视频| 屁屁影院一区二区三区国产| 天天色图| 自拍亚洲综合| 玖玖视频在线资源一区二区三区| 免费又黄又裸乳的视频| 国产又粗又长的视频| 中文字幕在线24| 韩国三级一线观看久| 牛牛久久国产精品视频一二三| 日本欧美一区二区三区视频麻豆| 精品女同一区| 青青草自拍视频在线播放| 亚洲色图尤物视频| 日本在线999| 日日日啊啊啊| 五月天社区| 性爱网站一区二区| 台湾佬大香蕉| 色天欧美| 91艹逼精品| 中文字幕123| 欧美Ⅴ性爱| 蜜臀av网址| 少妇高潮99p| 午夜爽爽爽在线观看永久入口姬片| 欧色网址| 久久男人| 激情情色五月天| 欧美黑人XXXⅩ高潮交| 99九九久久| 久久久久国产精品喷潮免费观看臀| 男同专区一区二区三区在线| 久久久精品中文字幕麻豆| 色婷婷激情| 亚洲精品一二区| 精品日韩| 精品国产乱码久久久久久免费| 91 国产丝袜在线放观看| 五月综合婷婷久久网站| 一级特级aaaa毛片免费观看| 亚洲国产精品V?在线播放| 91天堂| 日本高清视频在线观看黄已三辽| 美女主播色欲91抠b在线播放| 五月丁香狠狠爱| 男人a天堂手机在线版| 岛国免费视频在线| 国产精品免费久久久久久久久久| 97人人夜| 亚洲丝袜少妇在线| 欧美在线啊啊| 精品无码久久久久久久杏吧| 国产97免费视频| 日韩欧美麻豆 | 天天影视网综合少妇| 国产黄色av大片网站| 国产又黄又粗的视频| 亚洲国产成人综合碰碰三级经典| 99re99| 日本幼女18+| 亚洲91综合| 99re6国产精品99re| 好看的91视频| 99久热精品99re6热| 极品粉嫩一区二区| 国产亚洲精品美女| 亚洲伊人久久精品影院| 国产视频大全| 玖玖爱视频网站| 色97欧美| 精品无码一区二区三区色欲| 国产亚洲深夜激情| 黄色片,com| 国产精品人妻熟女aⅴ| 国产精品久久久无码aV去| 麻豆视频国产一区二区| 26uuu国产日韩综合在线观看| 国产一进一出视频网站| 黄色小视频日本txt| 国产精品宅男免费| 天堂种子在线www网资源| 久草福利在线资源站| 麻豆国产96在线| 任你草| 欧美三级一级| 亚洲色悠悠久久88| 精产品久久| 亚洲欧美国产va在线播放频| 中文字幕丝袜国产第一页不卡| 欧美人妻久久精品二区三区| 久久激情视频| 精品一区二区麻豆| 久久婷婷苹果| 在线女人91| 日韩精品9999| 天天久久| 白嫩国模丰满一二三区| 久久久久久国产精品| 中文字幕91综合| 日日干夜夜欢| av黄图片在线观看| 无码免费精品高清| 丰满欧美少妇| 四虎在线视频| 无码人妻精品一区二区中文| 久久国产视频性吧| 狠狠爱AV| 国产日韩精品人妻久久久久色欲网站| 日本天天色| 精品一久久久| 欧美AB在线| 国产一区二区精品久久99| 99久久九九| 330dv亚洲成年视频网| 东北女人高潮视频| 国产精品亚洲一级av第二区| 麻豆天美电影一区二区| 插B在线观看| 国产精品第一区第一页| 久久久一级| 九久久精品| 亚洲欧洲自拍图片专区满春格| 中文字幕亚洲在线一区| 亚州熟妇精品| 久久久久亚洲AV无码专区少妇| 91九色在线| 人妻精品4K4K4K4K4| 亚洲丝袜少妇在线| 国产黄片精品在线| 伊人久久久日韩一区| 麻豆色约约| 涩综合导航| 色综合美国| 日本有码影片下载| 不卡六六在线91| 青娱乐二区免费| 国模精品娜娜一二三区| 物业黑人 AV一区| 久久国产成人精品国产成人亚洲| 欧美日韩香蕉| 亚洲欲| 国产精品午夜AV完会免费| 黄片无码在线制服| 综合97久久| 最新日日夜夜天天干干| 欧美成人9797| 26UUU欧美日本| 三级三级三级日本99| 中出后入| 国产男人又猛又粗又爽| 免费网站观看www在线观| 亚洲人久久久网| 人人操人人摸人人看人人插| 97综合日韩| 亚欧美色| 四虎AV在线观看| 久草五月| 亚州,欧美在线| 无码精品一区二区三区潘金莲| 九九九九九九九九九五码| 无码一区免费在线不卡| 青青草密桃在线播放| 久久久久久久人妻丝袜| 九色 人妻 大香蕉| 亚洲成人激情小说视频| 男人干美女| 大香蕉视频一二三区| 九九热免费在线国产视频伊人五月| www久久国产精品| 国产精品久久久久久夜夜夜| 明星性猛交ⅹxxx乱大交| 偷拍 亚洲| 亚洲性网| 做爱福利视频一区二区| 亚洲精品无码少妇久久| 欧美激情 亚洲色图| 99热啪啪| 日韩黄色片子| 日韩电影天堂视频二区三区| 国产剧情AV不卡在线观看| 精品少妇人妻一区二区三区| 大香蕉五月天| 久久狠狠色噜噜狠狠狠狠97| 97超碰亚洲| 亚洲日韩美国人妻| 日少妇视频| 美女啊啊啊啊pc| 高清国产无码av| 豆1无夜无码| 五月激情啪啪| 看全色黄大色大片免费视频| 综合视频91| 国产精品青草综合久久| 超碰97精品| 夜夜免费视频| 色色亚洲| 岛国免费黄色网址| 日本 情色 1区| 精品国产网站| 亚洲欧洲精品视频发布| 一中国女人毛片水真多| 九九九精品一区二区无码| 精品伊人久久久大香线蕉小说| 日本影视久久免费| 骚人妻少妇视频| 午夜色婷婷| 国产精品熟女九色九色蜜臀| 欧美性高潮| 97资源欧美| 亚洲天堂电影精品一区| 一区二区三区探花在线观看| 久久色精品视频在线| 99re综合伊人| 黄总AV色图| 在线国产探花| 高跟丝袜AV专区国产| 亚洲性天堂| 成年男人的天堂| 丁香五月av| 综合 欧美 亚洲 日本| 欧美黄色手机在线观看| 男人天堂最新手机版在线青青草| 夜夜操av亚洲一区二区| www.狠狠干.coom | 人妻少妇精品视频一区二区三区| 男人的天堂2018.| 久久久一区二区三区四曲免费听 | 2019AV天堂| 五月天婷婷综合| 九色精品视频导航1| 粉嫩av平台| 久久久久久久唑| 91网站18+| 另类专区加勒比| 亚洲97P| 中文啪啪视频| 天天淫人人妻日日色| 日本色婷婷| 欧美强奸乱能| 欧美另类精品xxxx| 国产最新小视频在线播放下载| 国产精品黑人一区二区三区| 高清孕妇孕交| 上特色A在线| 超碰色老头| 少妇内射视频| 国产69精品久久久久99尤物| 国产成人综合网| 久久九七| 老司机午夜精品福利视频一区二区| 欧美se亚洲| 亚洲少妇综合| 成人八戒网站| 国产专区路线| 被男人添B超爽视频| 夜夜影视四色| 亚洲国产欧美另类自拍| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 久九色| 少妇专区一二三四五| 人妻一区久久二区三区色播| 国产精品小视频一区二区三区| 少妇同性| 大香蕉欧美国产日韩高潮| 青青伊人加勒比海| 亚洲色电影在线| 色五月AV| 四虎影视永久在线免费| 精品亚洲国产成人AV制服丝袜| 亚洲第一无码播放立川理惠| 992这里有精品| 五月丁香六月婷综合成人综合| 国产小u女在线观看| 超碰久热| 一区中文字幕二区日韩| 色 亚洲 91| 嗯嗯嗯啊啊在线观看| 97天堂| 天天看精品动漫视频一区| 久热精品在线国产| A级毛片在线看免费| 最新日韩黄片| AV一二区| 天天爽入口| 放黄片放3级黄片没穿衣服| 亚洲一区二区三区不卡国产欧美| 亚洲古典另类欧美在线| 91偷拍欧美亚洲| 国产91 丝袜在线播放| AV乱伦国产| www久| 五月色丁香| 久久久国产精品人妻丝袜| 老鸭窝成人| 男女性无套 免费九一| 亚洲欧美日韩精品久| 亚洲毛片久久| 色黄污美女啪啪啪免费网站| 超碰79人人乐| 夜夜国自区| A级国产欧美激情在线| 99热伊人| 91n免费处女| 欧美的性爱网站免费| 日本大片日本一区二区免费高清| 国产噜噜噜噜噜久久久久久久久| 亚洲无码 国产无码| 人人操人人狠狠操| 国产女人9999| 又大又长又粗又爽又黄| 97精品国产97久久久久久免费| 1204人成网站色www| 无码最新| 爱干爱射网啊啊啊| 日韩欧美亚洲自拍偷拍| 婷婷成人久久久精品| 日韩无码服务区| 丝袜美腿制服人妻二区中文字幕 | 视频在线97| 男人高清无码一区二区| 在线亚洲精品久久久| 亚洲性天堂| 人妻少妇精品一区二区三区| 国产9熟妇视频网站| 岛国大片在线观看网站入口| 使劲用力艹少妇视频一区二区| 伊人网青青| 日本免费不卡二区| 粉嫩av平台| 日韩国产十八禁| 亚洲无992tv| 手机不卡视频不卡在线一二三区| av三级电影在线播放| 2010男人的天堂| 色逼综合| 国产精品久久久蜜臀| 国产传媒日韩欧美| 99天天超碰| 国产免a费看黄片在线| 特级大荫道BBwBBwBBW| 夜夜草天天| 婷婷五月天无码 | 亚洲视频一二区| 久久久久久日韩| 亚州综合色图| 日本精品第一视频在'| 久久久亚洲精品中文字幕人妻| 小情侣高清国产在线视频| 18精品一二区| 亚洲AV免费在线观看| 在线视频 亚洲精品| 亚洲美女色图| 爱媛媛久久国产福利| 亚洲中文字幕久久无码精品| 色妹子A V| 乱伦一区二区三区‘| 老鸭窝黄色视频网站| 精品一区二区亚洲国产| 日本不卡五区| 日韩中文字幕av在线播放| 中日韩熟女| 97超碰超| 色诱avtt| 午夜大香蕉| 亚洲天天做日日做天天谢日日| 欧美成人综合| 午夜天堂精品久久久久91| 综合久久久久久久久91| 加勒比海成人视频网| 在线不卡视频| 波多野结衣一级视频| 人澡逼| 男人的天堂2018.| 一区二区三区激情在线观看| 精品人妻av区天天看片| 老司机午夜福利视频一区二区| 五月丁香啪啪网| 91无码西班牙视频在线| 碰人碰碰人人开房人肉| 蜜臀精品1区2区| 欧美性爱1080p| 91在线欧美| 日韩欧美天堂| 小草精彩毛片| 国产免费一区二区在线A片视频| 青娱乐二区免费| 久久中久文96| 久9久9精品| 人妻夜夜爽天天爽麻豆三区网站 | 91女人的网站| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 日韩成人大片一区二区| 欧美激情综合| 国产精品乱码久久久久久久久| 看看小穴| 欧美一区91大爱| 1769精品一区二区三区| 人妻精品一区二区三区| 国产中文日韩欧美一区二区三区人妻丝袜美腿| 久久久草成人网站久久久草成人久久久草久久久| 日韩15p| 青青草久久| 久久久久网站-538在线视频-欧美永久乱码| 五月天婷婷综合网| 成人性爱全视频观看| 国产亚洲性生活视频播放| 麻豆天美传媒毛片| 天天舔日美女视频| 久久久78| 九九热re99re6在线精品| 欧美色图 人妻| 亚洲一区二区专区-国产丝袜精品丝袜-成人AV | 天天弄欧美| 大香蕉 222| 999久久久久久久精| 人妻熟女av国产网站| 手机在线中文字幕国产| 中文字幕精品一区欧美| 久9re热视频这里只有精品| 黄色工厂这里只有精品| 91亚洲最新在线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 热的中文 热的有码 热的国产| 国产久久一区二区| 91高跟美女在线播放| 综合网欧| 91 亚洲情侣偷拍 久久| 97视频620| 桃色人妻在线视频| 嗯嗯啊啊的视频| 精品欧美日韩在线观看| 综合激情一一91| 白嫩白嫩的午夜九久久久久久久久久久久成人剧场 | 欧美九九爱| 一区二区偷拍拍视频| 久久久久精| 亚洲丝袜B诱惑| 动漫区日韩区欧美区| 性色av一区二区| 天天干1区2区在线| 在线视频资源| av中亚| 最新av网站在线观看| 日韩国产欧美伦理在线| 欧美操逼熟女| 久久丁香五月婷婷| 亚洲熟女乱色| 媚薬在线视频麻豆| 96超碰网| 中文字幕美女91| aaaa少妇高潮大片| 中文字幕av乱伦| 国产精品天美传媒| 97一区二压| 久久久精| 欧美性爽xyxOOOO| 国产无马视频| 人妻AV在线| 天天享受天天看| 日本免费二区三区| 久热这里| 男女猛烈无遮掩视频免费软件| 亚洲国产成人精品久久久国产成人一区二区三. | 麻豆天美国美国产| 成人熟女区| 99999亚洲另类| 操逼操2| 大香蕉免费乱伦视频| 电影69乱码96| 麻豆伊人网| 国产精品久久久久久久久久久久久久吹 | 91殴美大片| 乱操9999| 国产一区二区在线播放量| 免费毛片在线播放| 美女淫穴| 96国产精品| 思思热免费在线视频| 嗯嗯嗯好爽| 免费成人在线熟妇网| 亚洲色图欧洲| 日韩激情啪啪| 涩爱AV在线| 久久99九九九九6666免费观看软件| 国产又黄又粗的视频| 国产原创自拍| 天天操人人操骚逼网站| 国产无码成人无码| 久久久婷婷婷| 传媒免费一区二区三区| 青青操青娱乐| 超碰在线1234区| 麻豆国产视频精品观看| 天天插天天干| 久久老熟女| 最新啪啪视频| 亚洲黄日韩无码专区| 在线亚洲欧美| 亚洲一区二区麻豆影院| 制服丝袜第二页| 777AV电影| 91丝袜激情在线| 九草九九九| 看大黄色大片原件| 嗯嗯啊啊好疼| 国产一级特黄大片处女| 麻豆天美电影一区二区| 男人精品区| 囯产精品一区二区三区线|亚洲人成无码网WWW动漫|国产精品免费一级... | 成人区人妻精品一| 亚洲激情在线一区二区| 精品久久久av| 久久久蜜桃臀无码视频| 思思热在线| 上床啊啊啊| 国产92麻豆天美精品色欲5| 内射卯月麻衣| 最新中文字幕在线亚洲| 91黑丝操| 亚洲成熟国产精品美女| 亚洲人精品午夜不卡| 网页导航五月天免费一二三区| 丝袜美腿射精91| 国产黄色影片在线观看| 蘋果手機免費看成人Av| 国产午夜激片Av毛片不卡| 国产人妻精品久久久一区二区三区| 男女啊啊啊啊啊| 天天射影院| 亚洲精品久久久久毛片A片拉屎 | 亚洲一二三精品久久网| 激情天天视频| 亚洲精品 欧美精品| 大学生口爆吞精| 看看日B真人视频| 99久久九九| 中文一区二区三区影院| 99热免费| 一级做a爰片久久毛片图片| 91色堂| 丁香五月影院| 中出欧美| AV一二区| 天天看夜夜看日日干| 97九色人妻| 鸥美中出| 长长久久88视频| 九九草| 91草草草| 9l视频自拍9l九色成人| 热99这里有精品综合久久 | 69丨亚洲丨精品丨入口免费播放| 久操精品网| 久久性爱视频免费看| 天美一二三在线观看Av| 黄色小视频日本txt| 97鸡把在线视频| 欧美一区二区三区大综合| 一级AV性爱| 久久熟女嫩草成人片免费| 黄页大片在线观看| 天天激情综合站| 综合自拍| 嗯嗯啊好大| 亚洲第一页色| 无码人妻精品一区二区三区99不卡| 亚洲图片 激情小说| 日本三级韩三级99久久| 日韩精品免费高清视频在线| 国产精品禁久久久精品| 午夜天堂精品久久| 大香蕉啪啪啪| 欧美性爱中文字幕无线码| 国产精品禁久久久精品| 天天享受天天看| 五月天婷婷成人网| 97在线视频观看| 极品出轨视频网站| 欧美综合在线91| 超碰久久中文| 日韩AV无码中文一区二区| 女性喷水高潮在线观看| 凹凸 69堂 在线播放| 欧美色图 人妻| 亚洲一区二区麻豆影院| 天天躁日日躁XXXXYY| 操婢日韩| 国产一国产一级毛片古装| 天天拍天| 日韩人妻精品中文字幕| 爱欲AV| 天天摸天天插天天日| 强歼乱伦资源网| 超碰国产精品无码| 精品九九| 上特色A在线| 综合网亚洲1| 999 久久久| 亚洲吊色| 亚洲97P| 日本 成 人 小说 电影 一区二区| 国产精选三级在线观看| 新婚人妻扶着粗大强行坐下| 操操吧亚洲乱伦视频| 91精品老女人| 日本一区二区三区四区五区六区七区八区九区| 自拍第一页| 北京专精特新企业招聘信息| 丁香六月婷| 九色PORNY9l原创自拍| 日韩AV熟女乱伦| 97人人操人人摸| 亚洲暴力强奸AV| 逼逼逼逼操操操操操操操操操午夜剧场| av爱爱爱| 老司机福利青青草| 亚洲精品久久久久毛片A片拉屎| 久久黄人人爽视频| 麻豆亚洲AV成人无码久久精品| 亚洲欧美91√| 玖玖资源视频一区二区三区| www国产天美久久久| 中文字幕亚洲永久精品| 风月影院十八禁| 香蕉欧美| 国产Av超碰| 国产AV久久野战精品| 美女操逼A A| 911av网站免费观看| av日韩国产一区二区| 全免费a敌肛交毛片免费| 婷婷午夜成人色中色| 蜜乳AV色欲AVAV无码| 99激情视频| 91人妻超碰| 色女网日韩| 欧美日韩天堂| 久操免费电影| 国产福利合集| 亚洲丝袜少妇在线| 2024黄色视频| 超碰成人公开| 五月色网| 日韩欧美亚洲一区二区三区影院| 黄色小视频日本txt| 免费观看啪视频| 手机av天堂久久久久| 情色五月天久久久| 亚洲男人天堂2013| 中文区中文字幕免费看| 国产资源中文字幕在线| av天堂精品久久| 亚欧性爱ab| 久久手机好看网站| 国产亚洲日本| 97亚洲在线| 亚洲欧洲综合| 夜夜操美女| 国产动漫操逼视频| 精品乱子一区二区三区99| 欧洲一区二区三区四区在线观看| 丝袜美腿91| 色婷婷六月丁香七月婷婷| 日本123区操B视频| 97这里都是精品| 久久精品国产97欧美精品亚洲 | 四虎永久在线精品免费网址| 国产又大又粗又长视频在线| 97超碰国产亚洲精品| 草草电影院| 探花精品视频| 国产免费久久精品99re韩国| 欧美亚洲高清晰| 日韩操p| 夜夜爽33333| 日本黄色天堂| 蜜臀99久久精品久久久久| 乱论91| 亚洲欧美九九九| 日比av无码| 日本高清_区二区三区| 玖玖视频在线资源一区二区三区| 97超碰总站| 免费久久一级毛片大黄| 99热综合| 中文字幕神马久久| 无码久久亚洲高清,| 激情开心五月天| 97在线欧| 亚欧成人综合影院| 久久久九97| 日韩大香蕉AV影片| 一级性爱aaaa| A一级色女| 精品视频在线观看精品| 免费观看欧美日韩操逼视频| 四虎免费视频| 久久性爱网站| 九九九九九九九九九九精品视频| 久久久久99999| 久久五月天婷婷| 啊啊啊男女| 蜜乳性色无码专日粉嫩骚逼AV| 999日韩中文精品观看视频。| 大香蕉一人| 激情五月天丁香社区| 欧美综合 站| 中日亚韩免费视频| 九九无码久久精品视频| 人人妻人人玩人人澡人人爽| 色色五月天激情| 99re这里只有精品2| 日韩性爱播放| 啊啊啊啊啊啊啊在线| 国产亚洲精品美女久久久久久2021| 97超碰天天爱天天爱| 日本国产亚洲一区在线观看| 蜜桃久久综合视频| 偷拍 亚洲 欧美| 国产丝袜美女诱惑| 国产在线观看一区二区三区| 日韩99神马视频播放片在线播放| 婷婷10月天青娱乐| 日韩精品一区二区日韩| 情色五月天久久久| 欧美综合网在线| 五月天激情视频| 97资源站久久| 97国产高清视频在线观看| 大香蕉日亚洲日本亚大| 国产成人精品亚洲日本| 日韩精品亚洲一二三| 九九99精品视频在线观看| 丰满少妇精品一区二区| 屌逼传媒| 香港澳门日本三级网站| 九九九九日本| 美女91网址| 天天舔天天| 五月天婷婷在线看| 色娱乐色呦呦夜夜夜夜av| 东亚亚洲无码高清| 91欧美美女日韩国产婷婷| 欧美日韩性爱无码| 九t超碰| 欧美三级免费伊人| 探花在线免费观看视频国产一区| 久热久操| 婷婷五月天影院| 国产亚洲精品一区二区三区| 粉嫩AV输入| 婷婷99| 久久黄黄黄| 中文字幕丝袜美腿| 日本高清有码网址视频| 91九色丨风韵犹存| 国产精品久久久久久久久久久久久久久久久久 | 日韩综合色图| 91黑丝美女| 99在线精品观看99| 99人妻| 欧美骚少妇| 在线视频97| 亚洲日产专区婷婷| 婷婷五月天补不补| 超碰在线人妻中文字幕| 97欧美色| 台湾肥佬网一区二区三区| 在线观看日韩av不卡| 国产亚洲色停停久久99精品91| 国产肏屁眼视频| 能看的AV| 欧美日韩操操操| 被操高清无码视频| 91中文字幕在线观看| 久久久久久久一级黄色打同平台| 人妻 中文 日韩| 91 欧美| 偷拍亚洲视频一区二区三区四区| 日本精品中文字幕视频| 福利社区午夜一区二区| 9久久久久久| 激情人妻另类| 欧美最婬乱婬爆婬性视频| 在线视频资源| silk lablo在线观看一区二区| 伊人成人中文字幕久久网| 午夜120视频在线观看| 亚洲不卡三级手机播放| 中文字幕免费在线观看| 久久97资源 网| 九九热男人天堂| 97色干| 黄色大香焦1级‘′‘| 日韩免费在线观看不卡| 成人无码欧美一级A片狼牙直播| 大香蕉国产中文自拍| 后入 亚洲 美女 射| 97操操| 操婷婷逼| 日本精品无码三级网站| 100啪啪视频大全| 久久丝袜| 久久亚洲日韩熟女精品| 后入日本1234| 91无摭挡| 国产精品久久久久久久免牛肉蒲团| 伊人影院中文字幕| 91精品91久久久中77777| 亚洲日韩成人性爱视频| 久操网址| 老熟妇一区二区三区…| 日本欧美韩国国产在线| 91天天综合网| 丰满人妻区一区二区三| 中文乱码字幕观看视频| 日本熟妇人妻一区二区三区| av橘色网站| 91色综合激情| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 职场同事知名国产国产精品久久欧美日韩 | 国产AV人人 夜夜人人澡| 射欧美综合| 青青青国产| 97色97好| 久久日本熟女精品一区| 超碰人妻中文在线| 亚州春色| 日韩人妻精品| 久久久久久久9最新免费视频观看| 青青草玖玖爱| 91天堂丝袜美腿| 久久啊啊| 男女啪啪网站免费视频| 日韩在线欧美精品一区二区| a片久久久久久久久久久久| 国产久久免费精品视频| 人妻一区视频|