色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

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

Pandas DataFrame時(shí)間序列處理:重采樣、滾動(dòng)特征與數(shù)據(jù)泄漏排查

Pandas DataFrame時(shí)間序列處理:重采樣、滾動(dòng)特征與數(shù)據(jù)泄漏排查 DataFrame 的時(shí)間序列處理我前后踩過三輪坑才算真正用順。第一輪是把時(shí)間列當(dāng)普通字符串排序結(jié)果亂序數(shù)據(jù)喂進(jìn)模型指標(biāo)飄得沒法復(fù)現(xiàn)第二輪是重采樣窗口邊界沒對齊日匯總和原始分鐘數(shù)據(jù)對不上賬排查到半夜第三輪最狠構(gòu)造的特征里混進(jìn)了未來信息離線評估漂亮得離譜實(shí)際跑起來直接失效。這三個(gè)坑基本覆蓋了時(shí)間序列 DataFrame 的絕大多數(shù)陷阱也正好說明了為什么這一塊必須單獨(dú)拎出來講。它是 DataFrame 系列的收尾篇也是銜接機(jī)器學(xué)習(xí)前置技術(shù)棧的關(guān)鍵一環(huán)——前面講的索引、切片、合并、聚合本質(zhì)都是把數(shù)據(jù)擺整齊而時(shí)間序列這一篇要解決的是讓數(shù)據(jù)帶著時(shí)間語義動(dòng)起來。如果你正在做設(shè)備采集分析、業(yè)務(wù)指標(biāo)監(jiān)控、銷量預(yù)測或者準(zhǔn)備把一張帶時(shí)間戳的表轉(zhuǎn)成模型能吃的特征矩陣這篇的內(nèi)容基本可以照著抄。下文所有代碼都基于常規(guī)實(shí)踐整理環(huán)境是 Python 3.10 以上配 Pandas 2.x2.x 和 1.x 在部分時(shí)間序列行為上有差異我會(huì)在涉及的地方標(biāo)出來。1. 時(shí)間序列 DataFrame 的底層邏輯與設(shè)計(jì)取舍1.1 為什么時(shí)間列不能只當(dāng)普通列用很多人第一次處理時(shí)間數(shù)據(jù)的直覺是時(shí)間不就是一列字符串嗎排序、篩選、分組照做就行。這個(gè)做法在數(shù)據(jù)量小、需求單純的時(shí)候確實(shí)能跑一旦涉及按天匯總、取最近七天均值、補(bǔ)齊缺失的分鐘點(diǎn)這類操作就會(huì)立刻暴露出問題。原因在于 Pandas 的時(shí)間序列能力并不是掛在列上的而是掛在索引上的——DatetimeIndex是一個(gè)帶有頻率語義的特殊索引對象它能回答下一個(gè)時(shí)間點(diǎn)是誰這種普通列回答不了的問題。你寫df.resample(D)Pandas 需要知道當(dāng)前索引的粒度、有沒有空洞、邊界怎么取這些都依賴索引是DatetimeIndex這個(gè)前提。把時(shí)間留在普通列里resample直接報(bào)錯(cuò)rolling的時(shí)間窗口寫法也用不了只能退化成按行數(shù)滾動(dòng)的近似方案精度和語義雙輸。我自己習(xí)慣的做法是原始數(shù)據(jù)讀進(jìn)來之后第一時(shí)間把時(shí)間列轉(zhuǎn)成datetime64[ns]然后set_index提到索引位置再sort_index()排一次序。這三步做完后面所有操作才有意義。排序這一步特別容易被跳過因?yàn)榇蠖鄶?shù)采集數(shù)據(jù)天然是順序?qū)懭氲目雌饋聿挥门?。但只要中間有過補(bǔ)數(shù)、合并、多源拼接順序就可能被打亂而resample、rolling、shift全都是順序敏感的——順序錯(cuò)了結(jié)果不會(huì)報(bào)錯(cuò)只會(huì)靜默算錯(cuò)這是最難查的一類問題。1.2 頻率語義freq 到底約束了什么freq這個(gè)參數(shù)經(jīng)常被誤解成數(shù)據(jù)實(shí)際的間隔其實(shí)它表達(dá)的是時(shí)間軸上的柵格規(guī)格。舉個(gè)例子一張表里記錄的是設(shè)備觸發(fā)事件的時(shí)間戳間隔完全不規(guī)則你可以給它設(shè)freqNone默認(rèn)也可以強(qiáng)行設(shè)成1min。設(shè)成1min之后Pandas 會(huì)認(rèn)為這條時(shí)間軸是按分鐘對齊的asfreq(1min)就會(huì)把不在整分鐘上的點(diǎn)丟掉或者對齊行為完全不同。所以freq是一個(gè)聲明不是一個(gè)檢測——你聲明了什么Pandas 就按什么處理聲明錯(cuò)了它也不會(huì)提醒你。這個(gè)設(shè)計(jì)取舍背后其實(shí)很合理自動(dòng)推斷頻率在數(shù)據(jù)有噪聲時(shí)極不可靠與其猜錯(cuò)不如讓使用者顯式聲明。代價(jià)就是我們必須自己確認(rèn)數(shù)據(jù)的真實(shí)粒度。我常用的檢查手段是把索引轉(zhuǎn)成 Series 求差分然后看眾數(shù)import pandas as pd gap df.index.to_series().diff().value_counts().head(5) print(gap)輸出的前幾名基本就反映了真實(shí)粒度。如果第一名是0 days 00:01:00且占比九成以上那freq1min就是安全的如果前幾名分散得很厲害說明數(shù)據(jù)有大量缺失或者本身就是事件流這時(shí)候強(qiáng)行設(shè)freq只會(huì)給自己埋雷不如保持None用resample的時(shí)候再顯式指定目標(biāo)頻率。這個(gè)習(xí)慣幫我省過很多次排查時(shí)間——頻率聲明錯(cuò)誤導(dǎo)致的問題往往要等到下游聚合結(jié)果明顯不合理才被發(fā)現(xiàn)。1.3 幾種常見方案的橫向?qū)Ρ葧r(shí)間序列的建模方式不止一種選錯(cuò)了后面全是返工。我把實(shí)際項(xiàng)目里用過的幾種方案列個(gè)表方便對照自己的場景挑。方案時(shí)間位置適用場景主要優(yōu)勢主要代價(jià)普通列 手動(dòng)分組普通列一次性報(bào)表、低頻分析無需學(xué)習(xí)成本無法用 resample/時(shí)間窗口 rollingDatetimeIndex resample索引固定頻率聚合、降采樣語義清晰、代碼短要求數(shù)據(jù)大致規(guī)整整數(shù)序號 時(shí)間列普通列不規(guī)則事件流、序列模型順序可控、便于對齊時(shí)間語義要自己維護(hù)PeriodIndex索引按月/季等周期統(tǒng)計(jì)周期邊界天然正確跨周期運(yùn)算受限第三行那個(gè)方案值得多說一句。做序列模型比如基于滑動(dòng)窗口的回歸時(shí)我有時(shí)會(huì)故意不用DatetimeIndex而是保留一列整數(shù)seq當(dāng)索引時(shí)間作為普通列掛著。原因是模型訓(xùn)練階段更關(guān)心第 t 步到第 t-1 步的嚴(yán)格先后關(guān)系用整數(shù)序號可以避免時(shí)間空洞帶來的隱式錯(cuò)位特征對齊也更直觀。這不是說DatetimeIndex不好而是說工具要匹配階段——探索分析和特征工程用時(shí)間索引喂模型前轉(zhuǎn)成規(guī)整的二維矩陣。分清楚這個(gè)邊界很多到底該用哪種的糾結(jié)就沒了。2. 時(shí)間索引的建立與清洗臟數(shù)據(jù)的第一道閘2.1 to_datetime 的參數(shù)怎么選才不出事pd.to_datetime是入口函數(shù)也是最容易埋雷的地方。最常見的坑是不指定format讓它自己猜。Pandas 的推斷邏輯在混合格式下會(huì)退化成逐行解析速度慢幾十倍不說遇到2024-03-01和01/03/2024混在一起的情況它可能把后者解析成 1 月 3 日——月日顛倒結(jié)果全錯(cuò)而且不報(bào)錯(cuò)。我在一個(gè)多源合并的表上吃過這個(gè)虧兩個(gè)數(shù)據(jù)源一個(gè)用 ISO 格式一個(gè)用斜杠格式合并后時(shí)間線整體錯(cuò)位了半個(gè)月查了兩天才定位到。所以我現(xiàn)在的固定寫法是能確定格式就顯式寫format格式不統(tǒng)一就先按來源拆開分別轉(zhuǎn)轉(zhuǎn)完再合并。import pandas as pd raw pd.DataFrame({ ts: [2024-03-01 08:00:00, 2024-03-01 08:01:00, 2024-03-01 08:02:00], value: [1.2, 1.5, 1.1], }) raw[ts] pd.to_datetime(raw[ts], format%Y-%m-%d %H:%M:%S, errorsraise)errors參數(shù)也值得展開說。默認(rèn)是raise遇到解析不了的值直接拋異常改成coerce會(huì)把壞值變成NaT流程能繼續(xù)跑下去。我傾向于在探索階段用raise逼自己把臟數(shù)據(jù)全部找出來只有在已經(jīng)確認(rèn)臟值占比極低、且能接受丟棄的場景下才用coerce。見過不少代碼一上來就errorscoerce結(jié)果整列里有三成解析失敗全變成NaT后續(xù)dropna一刪樣本少了一大截還沒人察覺。另一類坑來自時(shí)間戳里的意外成分比如帶毫秒、帶時(shí)區(qū)偏移、帶中文時(shí)分秒。帶時(shí)區(qū)的字符串轉(zhuǎn)出來是datetime64[ns, tz]和本地時(shí)間的不同列運(yùn)算會(huì)報(bào)錯(cuò)需要統(tǒng)一tz_localize或tz_convert??鐣r(shí)區(qū)采集的場景里我的建議是一律先轉(zhuǎn)成 UTC 存著展示和業(yè)務(wù)判斷的時(shí)候再轉(zhuǎn)回本地偏移。這樣算差值、算間隔時(shí)永遠(yuǎn)不會(huì)因?yàn)榍袚Q偏移量而出現(xiàn)一小時(shí)誤差也避免了短暫偏移調(diào)整期內(nèi)的重復(fù)或缺失時(shí)間點(diǎn)——這類問題在日志里極難發(fā)現(xiàn)表現(xiàn)就是某個(gè)小時(shí)的樣本數(shù)莫名其妙多出或少掉一批。2.2 set_index、排序與重復(fù)時(shí)間戳的處理轉(zhuǎn)完類型就可以提索引了。這里有個(gè)順序細(xì)節(jié)先set_index再sort_index和先sort_values再set_index結(jié)果一樣但后者更慢因?yàn)閟ort_values走的是普通列排序路徑。直接排序索引效率更高df raw.set_index(ts).sort_index()真實(shí)數(shù)據(jù)里重復(fù)時(shí)間戳非常普遍尤其是多設(shè)備、多渠道寫入同一張表的時(shí)候。重復(fù)索引會(huì)讓resample的某些聚合口徑變得微妙也會(huì)讓reindex報(bào)錯(cuò)。處理方法要看業(yè)務(wù)含義如果是重復(fù)上報(bào)保留最后一條更合理后寫覆蓋先寫如果是同一時(shí)刻不同維度那就不該合并應(yīng)該加維度列做成MultiIndex。dup_cnt df.index.duplicated().sum() if dup_cnt: df df[~df.index.duplicated(keeplast)]keep取first、last、False三種False是把所有重復(fù)項(xiàng)全刪掉慎用——它會(huì)連帶丟掉本來有效的那條。我一般先統(tǒng)計(jì)重復(fù)數(shù)量占比很低千分之幾才直接去重占比高的話說明數(shù)據(jù)源有問題得回頭查采集鏈路不能靠去重掩過去。還有一個(gè)容易被忽略的點(diǎn)MultiIndex下的時(shí)間序列操作。當(dāng)索引是(設(shè)備編號, 時(shí)間)兩層時(shí)resample需要配合level參數(shù)指定在哪一層做df_multi df_multi.resample(1h, levelts).mean()level寫錯(cuò)或者不寫會(huì)得到完全不相關(guān)的結(jié)果或直接報(bào)錯(cuò)。這個(gè)用法在處理多序列數(shù)據(jù)多臺(tái)設(shè)備、多個(gè)門店時(shí)幾乎是必備的比循環(huán)groupby快一個(gè)量級我做過一次對比二十萬行、200 個(gè)分組resample(level)比groupby().apply()快大約四倍。2.3 補(bǔ)齊時(shí)間軸reindex 的正確打開方式缺失時(shí)間點(diǎn)有兩種處理哲學(xué)一種是沒有就是沒有保持稀疏一種是補(bǔ)齊柵格再填值保持規(guī)整。分析階段我偏向后者因?yàn)檎麠l時(shí)間軸完整之后rolling、diff、shift的語義才準(zhǔn)確。補(bǔ)齊用reindex配合date_range比resample更可控因?yàn)樗粫?huì)做任何聚合full_idx pd.date_range( startdf.index.min(), enddf.index.max(), freq1min, namets, ) df_full df.reindex(full_idx)namets這個(gè)參數(shù)別漏不寫的話新索引沒名字后面reset_index會(huì)得到index這個(gè)列名接下游容易對不上。補(bǔ)出來的空位是NaN怎么填取決于數(shù)據(jù)性質(zhì)測量值可以前向填充ffill或線性插值計(jì)數(shù)類指標(biāo)應(yīng)該填 0比率類指標(biāo)最好別亂填寧可標(biāo)成缺失讓模型自己處理。我見過把缺失的比率直接ffill二十多個(gè)點(diǎn)的做法等于人為制造了一段平坦的假數(shù)據(jù)模型學(xué)到的就是這個(gè)假規(guī)律評估階段看起來還行實(shí)際預(yù)測時(shí)就會(huì)在同樣的位置給出可疑的平穩(wěn)輸出。注意ffill一定要設(shè)limit否則長時(shí)間斷流會(huì)被一個(gè)值填滿整段看起來像真的連續(xù)觀測。我的習(xí)慣是limit3最多補(bǔ)三個(gè)點(diǎn)超出的保持NaN交給下游丟棄或單獨(dú)標(biāo)記。3. 重采樣與頻率轉(zhuǎn)換降采樣和升采樣的實(shí)操細(xì)節(jié)3.1 resample 的聚合字典與命名規(guī)范降采樣高頻轉(zhuǎn)低頻最常用的就是resample?;A(chǔ)寫法很簡單但真正用起來聚合方式往往不是一個(gè)函數(shù)能打發(fā)的——平均值、最大值、樣本數(shù)、缺失率一次要算好幾個(gè)指標(biāo)。這時(shí)候用命名聚合Pandas 0.25 之后支持比傳字典更清晰daily df.resample(D).agg( val_mean(value, mean), val_max(value, max), val_min(value, min), sample_cnt(value, count), missing_cnt(value, lambda s: s.isna().sum()), )(列名, 函數(shù))這種元組寫法直接產(chǎn)出扁平列名比agg({value: [mean,max]})出來的多級列名好處理得多。多級列名后續(xù)要droplevel或者手動(dòng)拼名字很容易出錯(cuò)尤其是下游要按列名取特征的時(shí)候。這一點(diǎn)我在給模型準(zhǔn)備特征表時(shí)深有體會(huì)——多級列名導(dǎo)成 CSV 再讀回來列名會(huì)變成(value, mean)這樣的元組字符串再想取某列就非常難受。所以從聚合那一步就把名字定干凈后面省事。3.2 窗口邊界closed 和 label 到底怎么影響結(jié)果resample里最容易算錯(cuò)的就是窗口邊界。默認(rèn)closedleft、labelleft意思是左閉右開、標(biāo)簽用左端點(diǎn)。舉個(gè)具體例子resample(5min)在08:00到08:05之間默認(rèn)口徑包含08:00:00到08:04:59的數(shù)據(jù)時(shí)間標(biāo)簽記為08:00。這個(gè)默認(rèn)值符合大多數(shù)人的直覺但當(dāng)你要和另一套系統(tǒng)對齊時(shí)就必須顯式確認(rèn)——對方是左閉右開還是左開右閉標(biāo)簽打在區(qū)間起點(diǎn)還是終點(diǎn)差一點(diǎn)就是整體偏移。left_closed df.resample(5min, closedleft, labelleft).mean() right_closed df.resample(5min, closedright, labelright).mean()這兩行結(jié)果看起來只差一個(gè)時(shí)間標(biāo)簽但實(shí)際數(shù)值分布完全不同因?yàn)槁涞矫總€(gè)桶里的原始點(diǎn)不一樣。我在一次對賬里就是因?yàn)檫@個(gè)差了一整個(gè)時(shí)間桶上游按右閉算、我按左閉算兩邊的日匯總在跨天時(shí)刻差了整整五分鐘的數(shù)據(jù)量級不大但對不上賬就是問題。還有一個(gè)參數(shù)origin在按天、按周聚合時(shí)很關(guān)鍵。默認(rèn)originstart_day也就是按自然日切如果要按從某個(gè)時(shí)間點(diǎn)開始的 24 小時(shí)切就得傳originstart或具體時(shí)間戳。做班次統(tǒng)計(jì)、按批次時(shí)長聚合的場景這個(gè)參數(shù)直接決定結(jié)果對不對。3.3 asfreq 和 resample 的差別別混著用這兩個(gè)函數(shù)經(jīng)常被當(dāng)成等價(jià)物其實(shí)定位完全不同。resample是分組聚合必須給一個(gè)聚合方式或者默認(rèn)取均值asfreq是重采樣到新柵格只做取樣不聚合多出來的點(diǎn)直接丟空出來的位置給NaN。做升采樣低頻轉(zhuǎn)高頻的時(shí)候我?guī)缀踔挥胊sfreq因?yàn)樯蓸颖緛淼恼Z義就是放大柵格、保留原值、填空缺用resample反而會(huì)引入不必要的聚合邏輯。up df.asfreq(30s) up[value] up[value].interpolate(methodtime)interpolate(methodtime)這個(gè)寫法值得單獨(dú)說。普通的interpolate()是按位置線性插值methodtime是按時(shí)間距離加權(quán)。數(shù)據(jù)間隔不均勻的時(shí)候兩者差別明顯比如08:00值是 1、08:04值是 5中間08:01那個(gè)點(diǎn)按位置插值給 2等距假設(shè)按時(shí)間插值同樣給 2看起來一樣但如果中間點(diǎn)是08:03按位置給 3按時(shí)間給 4。顯然按時(shí)間更符合物理意義。不規(guī)則采集的數(shù)據(jù)做插值一定要加methodtime否則時(shí)間間隔的信息白丟了。3.4 一個(gè)完整的分層聚合實(shí)戰(zhàn)把上面這些串起來走一遍從分鐘級原始數(shù)據(jù)到日級特征表的完整流程。假設(shè)手頭是某設(shè)備采集項(xiàng)目導(dǎo)出的一份記錄字段是時(shí)間和讀數(shù)存在亂序、少量重復(fù)、部分時(shí)段斷流。import numpy as np import pandas as pd # 1) 解析與索引 df (raw .assign(tslambda d: pd.to_datetime(d[ts], format%Y-%m-%d %H:%M:%S)) .set_index(ts) .sort_index()) # 2) 去重 df df[~df.index.duplicated(keeplast)] # 3) 補(bǔ)齊分鐘柵格 full_idx pd.date_range(df.index.min(), df.index.max(), freq1min, namets) df df.reindex(full_idx) # 4) 短缺口前向填充長缺口保留 NaN df[value] df[value].ffill(limit3) # 5) 日級聚合 daily df.resample(D).agg( val_mean(value, mean), val_std(value, std), val_max(value, max), sample_cnt(value, count), missing_cnt(value, lambda s: int(s.isna().sum())), ) # 6) 派生指標(biāo) daily[coverage] daily[sample_cnt] / 1440 daily[range] daily[val_max] - daily[val_min]這里第 6 步的coverage覆蓋率是我每次都會(huì)加的一列。它等于有效樣本數(shù)除以理論樣本數(shù)直接反映當(dāng)天數(shù)據(jù)質(zhì)量。覆蓋率低于某個(gè)閾值的日期后面建模時(shí)我會(huì)單獨(dú)標(biāo)記甚至剔除——用覆蓋率只有三成的天算出來的日均值噪聲比信號大得多混進(jìn)訓(xùn)練集只會(huì)拉低模型表現(xiàn)。這個(gè)指標(biāo)沒有任何技術(shù)難度但很多人的特征表里就是沒有導(dǎo)致他們永遠(yuǎn)不知道自己的日均值里有多少天是殘缺的。4. 滾動(dòng)窗口與滯后特征機(jī)器學(xué)習(xí)前置的核心武器4.1 rolling 的窗口類型與 min_periods 陷阱rolling有兩種窗口定義方式整數(shù)窗口按行數(shù)和時(shí)間窗口按時(shí)間跨度。按行數(shù)寫rolling(7)就是前 7 行前提是數(shù)據(jù)已經(jīng)按固定頻率補(bǔ)齊否則7 行可能對應(yīng)三天也可能對應(yīng)七小時(shí)語義完全不同。時(shí)間窗口寫rolling(7D)才是字面意思上的過去七天Pandas 內(nèi)部按時(shí)間戳判斷不看行數(shù)。做業(yè)務(wù)特征我強(qiáng)烈建議用時(shí)間窗口因?yàn)闃I(yè)務(wù)口徑通常按自然時(shí)間定義最近七天而不是最近七條記錄。df[ma_7d] df[value].rolling(7D, min_periods1).mean() df[std_7d] df[value].rolling(7D, min_periods3).std()min_periods這個(gè)參數(shù)是個(gè)大坑。默認(rèn)值等于窗口長度意味著前六個(gè)點(diǎn)的滾動(dòng)均值全是NaN——數(shù)據(jù)頭部直接損失。設(shè)成min_periods1能讓頭部也算出值但早期的值是兩三個(gè)點(diǎn)算出來的方差極大和后面的值不在一個(gè)尺度上。我的處理方式是折中設(shè)min_periods為窗口長度的一半左右早期那一段直接在下游截掉不用。這樣既不會(huì)因?yàn)轭^部NaN導(dǎo)致整行被dropna刪掉也避免了用兩三個(gè)點(diǎn)冒充七天均值。窗口的center參數(shù)也要留意默認(rèn)False表示窗口右端對齊當(dāng)前點(diǎn)只用歷史設(shè)True會(huì)讓窗口居中等于用了未來數(shù)據(jù)。做特征工程時(shí)center必須是False一旦設(shè)成True你的滾動(dòng)均值里就包含了未來信息離線指標(biāo)會(huì)虛高。這個(gè)參數(shù)在畫圖平滑曲線時(shí)很好用在建模特征里是禁用項(xiàng)兩種場景要分開記別寫混。4.2 expanding 與 ewm長記憶特征的兩條路線rolling是固定窗口expanding是從開頭累積到當(dāng)前點(diǎn)窗口長度一直變大。適合刻畫累計(jì)表現(xiàn)和歷史全量統(tǒng)計(jì)df[cum_mean] df[value].expanding(min_periods10).mean() df[cum_max] df[value].expanding(min_periods10).max()ewm是指數(shù)加權(quán)越近的點(diǎn)權(quán)重越大數(shù)學(xué)上等價(jià)于一個(gè)無限長但權(quán)重衰減的窗口。做有明顯趨勢和突變的指標(biāo)比如流量、活躍度ewm通常比簡單滾動(dòng)均值跟得更緊滯后更小。關(guān)鍵是span和alpha的換算關(guān)系alpha 2 / (span 1)span7對應(yīng)alpha0.25。我一般直接用span因?yàn)樗投嗌偬斓闹庇X對應(yīng)得更直接。df[ewm_7] df[value].ewm(span7, adjustFalse, min_periods3).mean()adjustFalse這個(gè)參數(shù)務(wù)必加上。默認(rèn)True時(shí)早期結(jié)果會(huì)做歸一化修正數(shù)值形態(tài)和False有明顯差別而且在數(shù)據(jù)頭部差異最大。做特征時(shí)統(tǒng)一用False因?yàn)樗倪f推形式更接近在線更新的語義也便于你在流式計(jì)算里復(fù)現(xiàn)同樣的值。如果訓(xùn)練時(shí)用了默認(rèn)值、推理時(shí)自己手寫遞推公式兩邊必然對不上這類線上線下不一致的問題排查起來極其折磨。4.3 shift / diff / pct_change滯后特征的正確姿勢滯后特征是時(shí)間序列建模的主力三個(gè)函數(shù)各管一段shift平移、diff差分、pct_change變化率。用法簡單但有兩個(gè)細(xì)節(jié)必須講清楚。第一個(gè)是shift的方向。shift(1)是把數(shù)據(jù)往下推一行也就是當(dāng)前行拿到的是上一行的值——這才是用歷史預(yù)測現(xiàn)在的正確構(gòu)造。shift(-1)是把未來值拉到當(dāng)前行這是標(biāo)簽構(gòu)造用的當(dāng)前特征對應(yīng)下期目標(biāo)絕對不能出現(xiàn)在特征里。我在代碼審查時(shí)見過把shift(-1)當(dāng)特征寫進(jìn)流水線的那基本等于作弊。第二個(gè)是pct_change的除零和負(fù)值。當(dāng)上期值為 0 時(shí)變化率是inf當(dāng)上期值為負(fù)時(shí)變化率的符號會(huì)翻過來語義完全變味。穩(wěn)妥做法是先檢查分母分布必要時(shí)改用diff或者加一個(gè)極小偏移df[diff_1] df[value].diff(1) df[lag_1] df[value].shift(1) safe_base df[value].shift(1).where(lambda s: s.abs() 1e-9) df[pct_1] (df[value] - safe_base) / safe_base用where把接近 0 的分母替換成NaN比直接replace(0, np.nan)更安全因?yàn)楹笳咧惶幚砭_的 0處理不了1e-12這種實(shí)際上等效于 0 的值。除出來的inf一旦進(jìn)了模型標(biāo)準(zhǔn)化會(huì)被直接帶偏整列特征失效。4.4 一套可直接套用的特征構(gòu)造流水線把上面的零件組裝成一個(gè)函數(shù)這是我在項(xiàng)目里反復(fù)用的骨架。核心原則只有一條所有用到歷史統(tǒng)計(jì)量的特征都要先在原始序列上shift(1)再計(jì)算否則當(dāng)前點(diǎn)的值會(huì)進(jìn)到自己的特征里。def build_ts_features(df, targetvalue, lags(1, 2, 3), windows(7, 14)): out df.copy() base out[target] # 滯后特征 for k in lags: out[flag_{k}] base.shift(k) # 滾動(dòng)統(tǒng)計(jì)先 shift 再 roll防泄漏 for w in windows: shifted base.shift(1) out[froll_mean_{w}] shifted.rolling(w, min_periodsmax(2, w // 2)).mean() out[froll_std_{w}] shifted.rolling(w, min_periodsmax(2, w // 2)).std() out[froll_max_{w}] shifted.rolling(w, min_periodsmax(2, w // 2)).max() # 差分與變化率 out[diff_1] base.diff(1) safe base.shift(1).where(lambda s: s.abs() 1e-9) out[pct_1] (base - safe) / safe # 時(shí)間特征 idx out.index out[hour] idx.hour out[weekday] idx.weekday out[is_weekend] (idx.weekday 5).astype(int) # 周期性編碼 out[hour_sin] np.sin(2 * np.pi * idx.hour / 24) out[hour_cos] np.cos(2 * np.pi * idx.hour / 24) return outshift(1)再rolling這個(gè)組合是整段代碼的靈魂。很多人寫特征時(shí)只對lag做了shift滾動(dòng)統(tǒng)計(jì)直接在原序列上算結(jié)果第 t 行的roll_mean_7里包含了第 t 行的真實(shí)值——模型只要盯著這個(gè)特征就能看到答案離線評估自然漂亮。這個(gè)錯(cuò)誤的隱蔽性在于單看代碼base.rolling(7).mean()完全合理根本不像有 bug。唯一的防法是養(yǎng)成條件反射——看到滾動(dòng)統(tǒng)計(jì)先問一句這個(gè)窗口的右端點(diǎn)包不包含當(dāng)前時(shí)刻。時(shí)間特征的周期性編碼也值得說一下。hour直接當(dāng)數(shù)值喂進(jìn)去模型會(huì)認(rèn)為 23 點(diǎn)和 0 點(diǎn)相差 23實(shí)際它們只差 1。用sin/cos做環(huán)形編碼把 24 小時(shí)映射到單位圓上距離關(guān)系就正確了。這個(gè)技巧對星期、月份同樣適用代價(jià)是多了幾列特征收益是模型不用再自己學(xué)這個(gè)映射關(guān)系小樣本下提升挺明顯。4.5 切分與防泄漏最后一道關(guān)卡特征表造好之后切訓(xùn)練集和測試集這一步必須按時(shí)間切不能隨機(jī)切。隨機(jī)切會(huì)讓測試集的時(shí)間點(diǎn)散落在訓(xùn)練集內(nèi)部模型實(shí)際是在插值而不是外推評估結(jié)果虛高。正確做法是按時(shí)間點(diǎn)截?cái)鄐plit_point int(len(feature_df) * 0.8) train feature_df.iloc[:split_point] test feature_df.iloc[split_point:]如果要做多折驗(yàn)證別用默認(rèn)的 K 折用時(shí)間序列專用的滾動(dòng)切分保證每折的驗(yàn)證集都在訓(xùn)練集之后。還有一個(gè)細(xì)節(jié)標(biāo)準(zhǔn)化、歸一化這類操作統(tǒng)計(jì)量只能用訓(xùn)練集算然后應(yīng)用到測試集。很多人在整張表上fit完再切均值方差里已經(jīng)包含了測試集信息這是典型的隱性泄漏。我習(xí)慣在流水線里把fit嚴(yán)格限定在訓(xùn)練切片上寧可多寫兩行也不圖省事。提示造完特征先用一句feature_df.isna().mean().sort_values(ascendingFalse).head()看一眼各列缺失率。頭部那幾行被shift挖空是正常的如果有中間段落的列缺失率異常高多半是原始時(shí)間軸沒補(bǔ)齊或者聚合口徑寫錯(cuò)了別急著往下走。5. 常見問題與排查實(shí)錄5.1 問題速查表下面這張表是我這幾年遇到頻率最高的一批問題按癥狀—原因—處理三列整理遇到類似現(xiàn)象可以直接對號入座。癥狀大概率原因處理方式resample 報(bào)TypeError索引不是 DatetimeIndex檢查set_index后有沒有to_datetime聚合結(jié)果比原始數(shù)據(jù)少很多時(shí)間列解析失敗變NaT后被丟用errorsraise重跑定位壞值日匯總和手工核對差一截closed/label口徑不一致顯式指定兩個(gè)參數(shù)并與上游對齊rolling 頭部全NaNmin_periods默認(rèn)等于窗口長度降到窗口長度一半頭部截?cái)鄏olling 中間出現(xiàn)大段NaN時(shí)間軸有空洞時(shí)間窗口跨不過去先reindex補(bǔ)齊再滾動(dòng)pct_change出inf上期為 0分母where掉近零值模型離線指標(biāo)好得反常特征含未來信息排查shift(-1)、centerTrue、未 shift 的 rolling推理結(jié)果與訓(xùn)練分布不符ewm的adjust不一致統(tǒng)一adjustFalse合并后時(shí)間線整體偏移多源時(shí)間格式不統(tǒng)一分源解析后再合并統(tǒng)一時(shí)區(qū)5.2 幾個(gè)只有踩過才知道的細(xì)節(jié)第一個(gè)是resample對空桶的處理。如果某個(gè)時(shí)間窗口內(nèi)一個(gè)樣本都沒有聚合結(jié)果里這一行會(huì)存在但全是NaNcount會(huì)是 0。這在做特征時(shí)很危險(xiǎn)——如果你用count當(dāng)樣本量特征模型會(huì)看到一堆 0如果用mean當(dāng)特征那是一堆NaN。我的做法是單獨(dú)保留count列作為質(zhì)量指標(biāo)其他統(tǒng)計(jì)量遇到NaN直接保留不填讓下游根據(jù)count決定這條樣本用不用。一刀切fillna(0)是最糟的選擇會(huì)把沒有數(shù)據(jù)偽裝成數(shù)值為零。第二個(gè)是Grouper和groupby的配合。當(dāng)你要按周聚合、但周的定義不是自然周比如從周一開始算resample(W)可能不符合預(yù)期pd.Grouper(freqW-MON, closedleft, labelleft)更靈活。另外多列分組時(shí)Grouper可以只對時(shí)間列生效其他列正常分組weekly df.groupby([ pd.Grouper(freqW-MON, closedleft, labelleft), device_id, ]).agg(val_mean(value, mean))這個(gè)寫法比先resample再unstack干凈得多尤其是在分組維度多的時(shí)候。第三個(gè)是性能。resample().agg()在千萬行級別會(huì)明顯變慢我實(shí)測過幾種寫法用命名聚合比傳字典快用內(nèi)置聚合函數(shù)比lambda快很多l(xiāng)ambda里的s.isna().sum()這類操作會(huì)退化成逐組 Python 調(diào)用。如果數(shù)據(jù)量大把自定義邏輯挪到聚合之后用向量化算能省掉一大半時(shí)間。另外一個(gè)思路是先降采樣到粗粒度再算比如日級特征不需要從分鐘級逐點(diǎn)算可以先聚合到小時(shí)再往上滾誤差在可接受范圍內(nèi)而速度提升明顯。第四個(gè)是時(shí)間序列的對齊問題多序列合并時(shí)尤其明顯。兩張表的采樣時(shí)刻不完全一致df1 df2會(huì)產(chǎn)生大量NaN因?yàn)?Pandas 按索引精確對齊。這時(shí)候用resample先統(tǒng)一到同一柵格或者用merge_asof做近似匹配。merge_asof要求兩邊都按時(shí)間排序direction參數(shù)控制取最近的過去還是最近的未來做傳感器數(shù)據(jù)與事件打標(biāo)對齊時(shí)特別好用比reindexffill更精確因?yàn)樗梢赃x擇最近鄰而不是單純的前向。最后分享一個(gè)我自己養(yǎng)成的習(xí)慣任何一次時(shí)間序列處理開頭先打印三行——索引類型、索引是否單調(diào)遞增、時(shí)間跨度。這三行幾乎能提前暴露八成的潛在問題。print(type(df.index).__name__) print(df.index.is_monotonic_increasing) print(df.index.min(), -, df.index.max(), | rows:, len(df))看起來是廢話但我確實(shí)靠這三行抓到過好幾次數(shù)據(jù)只導(dǎo)入了半天的低級錯(cuò)誤——文件截?cái)?、查詢條件漏了時(shí)間上限這類問題不會(huì)報(bào)錯(cuò)只會(huì)讓你在幾小時(shí)后對著一堆反常的聚合結(jié)果發(fā)懵?;ㄈ腌姶蛴”然ㄈr(shí)排查劃算得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
啊啊啊爽爽| 亚洲av资源| 亚洲做性| 99热只有这里有精品| 青青国产在线拍揄自揄拍| 搡老女人老91妇女老熟女| a级成人毛片免费视频高清| 亚州精人品大香蕉| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 国产婷婷一区| 伦理第一页| 9久精品| 日本 情色 1区| 91精品综合久久久久久五月丁香| 中文字幕无码不卡啪啪| 无码日韩网站| 伊人丁香五月婷婷| 亚洲和欧美裸体美女双飞视频| 多毛小伙内射老太婆| 凹凸 69堂 在线播放| 一区二区激情国产熟女| 青青草好吊色| 欧美天天综合站| 无套内射性感少妇视频| 成人羞羞视频国产| 久久后入制服| 久热久| 國產尤物AV尤物在線觀看| 久久青青草在线视频| 国产噜噜噜噜噜久久久久久久久| 免费看黄视频亚洲网站| 欧美啪啪天堂| 黄色大片一区二区密桃丝袜| 国产av又色又爽又黄| 97天天| 啊啊啊在线观看免费视频| 久久人妻视频网| 亚洲欧美日韩精品久久久一区二区| 亚洲欧美小说| 高清无码91| 国产精品在线网站| 这里是精品| 国产蜜臀在线| 成人在线日韩| 日韩强奸av| 精品国产乱码久久久久久蜜臀| 欧美爆操91| 欧美日韩人妻少妇 一区二区三区| 99色骚| 亚洲av热热色| 伊人九九| 久久亚洲欧美中文字幕国语| 亚洲色偷偷色噜噜狠狠99网| 一本大道综合伊人精品热热| 这里都是精品| 国产亚洲欧美每日在线| 色婷婷亚洲婷婷| 亚洲污污网站| 98人妻精品一区二区色欲| 做爱A级亚欧| 国产精品视频精品一二| 亚洲日本韩国极品一区二区| 一区二区三区成人| 97色综合中文网| 玖玖爱在线视频免费观看| 少妇99成人麻豆| rivers-china.com| 国产精品com| 国产精品原创巨作?v网站| 日韩在线性爱免费视频| 蜜桃臀AV在线| 日韩午夜啪啪视频| 中文字幕欧美精品亚洲日韩蜜臀| 亚洲av综合伊人久久| 91快色色色色色| 综合激情97 | 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 日韩精品电影| 超碰成人公开| 亚洲情色无码一区二区三区| 国产真实野战在线视频| 日本人体九九九九九九| 白丝一区| 国产高清在线自在拍69| 五月婷亚洲精品天堂| 黑人猛交| 丁香六月东京热| 久久久久96| 一级啊性爱在线视频| 精品国产乱码久久久久久日本公司| 老司机深夜影院18未满| 怡红院亚洲怡春院av| 国产av又色又爽又黄| 中文字幕综合人妻| 黄色视频特级毛片| 超碰综合97在线| www.久久久久| 日日干日日摸| 亚洲视频小说| 欧美性爱三区二区| 欧美偷拍区| …中文字幕亚洲乱,97人妻无码费视…| 天天干天天爽| 久久精品国产亚洲AV高清演员表| 欧美韩日精品99综合| 97色欧州| 日本一区视频在线观看| AAAA级日本片免费视频| 97超碰欧美中文字幕| 激情接吻视频久久久久久| 日韩女优在线| 久久大香蕉97| 久久久久久中文版| 中文字幕91综合| 最新国产亚洲精品精品国产亚洲综合 | 大香网伊人久久综合| 香伊人在线| 日韩欧视频| 蜜臀一二三| 欧美色图片91| 另类亚洲图色| 熟女日韩| 97视频在线观看播放与子乱对白在线……| av大香蕉| 丁香五月天啪啪| 久操视频资源站公开| 日本成人A片免费看| 韩国一级做a久久久久| 91性片| 久久久精选| 欧美狠狠狠| 熟女露脸激情自拍视频| 玖玖无码超碰| 国产精品久久久 | 五月丁香在线| 一区二区激情国产熟女| 97九色人妻| 国产一区二区三区中文字幕| 大香蕉伊人一区在线观看| 国产日韩久久| 黄站在线免费观看| 天天舔九色婷婷| 欧美精品99久久久**| A级国产欧美激情在线| 亚洲日韩av专区无码| 亚洲午夜免费狠狠干| 日韩在线性爱免费视频| 婷婷婷婷婷婷久久久久| 夜夜综合| 综合激情五月天| 91精品无码久久久久久久| 中文字幕第23区| 天天插天天射| 久久精品国产亚洲AV高级北京| 少妇与黑人高潮在线| 国产操伦| 人人看黄色视频| 欧美人妻熟女在线| 刺激性视频黄页| 国产乱码久久| 视频黄色国产一级| 屁股久久久久久| 91总综合网| 高树玛利亚无码流出| 色噜噜精品一区二区三| 欧美日韩日产免费网站看| 在线a亚洲视频播放在线| 操亚州| 亚洲熟妇极品| 国产毛片精品一区二区色欲黄A片| 九九九九热| 亚洲欧美综合图片| 国产自偷| 国产一区二区三区,在线观看观看| 婷婷香蕉欧美在线一区二区三区| 中文字幕一区二区韩| 婷婷干黄色| 九九九久久久| 91中文字幕| 亚洲97网站| 亚洲影视第一页| 99re在线视频这里只有精品| 精彩久久中文| 黑人精品久久97| 超碰欧美97资源| 中国黄色特级精品一区二区三区片| 免费网站观看www在线观| 91l欧美在线| 亚洲日韩乱码中文无码蜜桃臀网站| 97碰碰日本乱偷人妻中文的| 亚洲日韩东京热一区| 9九九国产| 亚洲资源一区| 色欧美亚洲| 日本操逼aaaaa| 夜间福利片1000无码| 国产精品呦一区二区三区| 岛国视频免费在线观看| 欧美日韩人人精品| 97草草| 国产品精品自在在线午夜免费| 亚洲黄片免费在线播放| 91精品国产高清久久久久久,亚洲成人| 中文字幕成人| 裸体女人草逼视频播放一区,二区,三区,四区,五区| 大香蕉国产中文自拍| 韩国毛片一区二区三区| 中文字幕精品探花视频 | 欧美激情内射| 99亚洲国产精品色一区二区三区| 久久久久久九九九九九九| 亚洲色棕合| 超碰欧美97| 欧洲成人性爱视频| 亚洲精品国产AV天美传媒| 亚州熟妇精品| 色欲三区| 五月婷婷激情网| 亚州九九九精品视频| 九九热av| 欧美日韩国产中文精品字幕自在自线| 99精品在线观看| 人人澡人人干| 国产成人免费观看在线视频| 国模不卡一本二本三电影| 野狼福利社区| 亚洲 国产 精品一区| 精品99999久久久久久| 欧美激情在线观看视频| 欧亚性爱在线视频| 九九九久千久久激情蜜桃在线看| 97精品视频| 亚洲欧美激情在线视频| 欧美在线啊啊啊| 日本高清视频xxxx| 在线人妻熟女一区二区三区四区五区| 色婷婷A V一二三四区麻豆综合| 亚洲啪啪视频一区二区| 亚洲综合骚逼| 五月丁香成人网| 超碰97综合网| 水野优香在线观看| 一级乱伦网站| 久草草一二三四区久久| 国产网站在线播放| 干美女人妻| 性色av婷婷久久一区二区点复制| 啊啊啊好想要| 精品免费一区二区三区在线亚洲人成| 91丝袜在线观看| 久热伊人99re| 尤物视频视频官网| 熟女一区二区三区| 天天综合精品| 精品人妻一区二区三区四区石在线| 艹我哪美一区无码| 秋霞免费无码视频日韩A片 | 久久97视频| 中日无幕一二三四区| 91少妇通奸网站| 秋霞一级视频在线观看免费| 亚洲中文制服诱惑| 97超碰影音| 婷婷丁香五月激情啪啪| 久久机热| 亚洲精品久| 精品国产无码中文| 中文字幕一区二区三区人妻不卡| 人人色97| 五十路六十路七十路熟婆| 亚洲综合113页| 亚洲熟女中文字幕在线| 曰韩操B| 亚洲素人网| 久久久九97| 国产探花日韩援交| 2020中文字幕在线观看| 不卡人妻少妇精品毛片一区23区视频| 97人人夜夜精品视频| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 中文字幕在线免费观看2| 男人天堂久久精品不卡| 高潮内射在线| 欧美十八禁网站| 国产精品片| 色婷婷一区二区三区久久午夜成人不| 欧美日韩高潮喷水91| 天天干干天天干干| 久久欲| 少妇色| 精品日日人妻| 躁躁躁日日躁2020| 国产精品久久久久久久久久久久| 国产女同性恋视频| 第45页一区二区| 国产13区| 96免费视频在线| 少妇人妻精品| 男人的天堂色偷偷青青草视频婷婷网| 九九亚洲视频| 亚洲古典另类欧美在线| 操高情无码| 久久久无码av精| 不卡av在线中文字幕| 日韩欧美大片免费高清啪啪| 精品国产乱码久久久久久久久1| 国产91 丝袜在线播放| KK色在线影院| 亚洲熟妇AV日韩熟妇在线| 2019男人的天堂| 亚洲欧洲激情卡通另类文学四射小说网站 | 中文字幕一区二区无码成人| 男同专区一区二区三区在线| 96国产精品| 一区二区三区四区五区久久久久久| 蜜臀aV午夜一区二区三区| 青青草这里只有精品| 99人妻| 国内偷自视频区视频综合 | 亚州国产精品乱| 婷婷三区| 日本精品一区二区三| 欧美色宗合| 亚洲中文字幕精品一区| 色情乱伦AV| 色婷婷网| 日韩国产十八禁| 国产少妇内射| 欧美Ⅴ性爱| 国产男人又猛又粗又爽| 亚洲国产精品久久久久婷婷青年| 夜夜做夜夜爽精品视频| 免费观看国产小粉嫩喷水精品午| 成年人一级黄色毛片大全在线观看| 午夜福利精品| 91jk色拍| 九月伊人中文字幕| 1禁看欧美黄片免费看| 国产精品对白内射| 国产精品动态一区二区三区四四| 亚洲精品人体| 五月天综合| 中文字幕欧洲有码| 把腿张开老子CAO烂你| 麻豆天美电影一区二区| 久久美国毛片| 久久无码成人| 欧美色图亚洲色图成人在在线| 精品一区二区三区蜜桃臀www| 天天综合中文字幕 91| 欧美视频一区二区在线| 干b在线性社区| 一区二区三区国产在线播放 | 日本精品一区二区三| 日本伦乱九九九综合 | 免费国产视频| 亚殴在线| 午夜在线播放| 久久久久九九九| 精品免费成人久久| 色色99| 91精品又粗又猛又爽| 粉嫩av在线一区二区| 天天内射| 免费一级精品啪啪视频| 成人日韩中文字幕| 亚洲中文一区二区三区| 天综合网欧美| 欧美在线播放aaaa| 久久激情四射婷婷丁香五月天| 欧美在线干| 三级色影综合网| 欧美猛交黑寡妇中文字幕| 特级特黄一级毛片免费| 九九久久一区二区三区| 思思热一热婷婷热一热| 麻豆天美一区二区| 日韩精品影视| 成人情色一区二区| 一二区在线观看视频| 国产精品宅男免费| 偷窥自拍A片| 亚洲熟女一区| 欧美日韩大陆黑人少妇99| 国产中文精品一区二区在线观看| 国产精品久久久久久久久久久久| 婷婷色导航| 精品国产三级av韩国在线| 蜜桃精品视频一区二区三区| 久久人妻四季| 亚洲日韩美国人妻| 国产成人精品网站| a片亚洲一本通视频| 久操大香蕉手机视频在线看| 天堂中文资源在线bt| 中文AV制服乱伦| 亚洲日韩狠狠撸视频| 熟女网站最新| 中文字幕片| 亚洲色欲天天人妻无码系列专区| 国产高清成人免费视频| 欧美成人精品一区| 后入式视频国产自| 好屌色综合| 曰韩欧美国产传媒麻豆第一区| 在线观看日韩av不卡| 啊啊啊啊啊啊在线观看| 亚洲啪啪综合?v一区综合精品区| 久热这里只有精品9| 97露脸精品丝袜| 久操大香蕉手机视频在线看| 丰满人妻av一区二区三区| 不卡av在线中文字幕| 欧美黄色手机在线观看| 久草精品国产99| 中欧人妻丝袜中文字幕| 亚洲图片视频小说| 玖玖爱综合网| 激情人妻另类| 欧美一二在线| 久久伦理视频久久大香蕉视频| 欧美大片天天看| 好看的久久不射无码影视影院| 国模限制级电影| 9久综合网| 青青草自拍视频在线播放| 大香蕉在线视频15| 999 久久久| 青娱乐手机日韩在线视频| 性欧美体内射精| 亚洲美欧999| 久久日本熟妇熟色高清| 久久久九九九九| 91无码精品| 在线视频 亚洲精品| AA级电影三区| 牛牛aV| 色综合久久久久| 91日韩在线| 乱码熟妇人妻久久久| 少好三P| 男人天堂新在线| 日韩性爱啪啪视频| 伊人色综合网电影| 欧美1727免费观看视频| 第45页一区二区| 香蕉av一区二区三区| 在线欧美亚洲| 老司机天天操| 九月丁香| 中国黑人三级片网站上区| 国产久久一区二区| 国产Av超碰| 国产 码在线成人网站| 九九久久一区二区三区| 殴美性天天| 欧美麻豆成人同性GⅤ在线| 色婷婷丁香五月| 久草资源欧美在线视频| 久热这里只有精品9| 超碰无码加勒比| 色色丁香| 一本色道久久综合狠狠操| 97超碰超碰| 丁香婷婷色五月| 97视频在线视频| 97精品熟女少妇一区| 一区二区三区四区久久视1| 亚洲色图欧美一区二区不卡| 国产精品秘 福利姬在线观看| 欧美一区二区三区大综合| 丰满人妻-区二区三区免费看| 熟女被操视频网址| 久久9精品网站| 精品高清一区二区三区三州| 嗯嗯啊啊用力视频免费| 97资源久久| www.婷婷六月天| 色噜噜国产精品视频一区二区| 色播五月婷婷| 久9精品| 亚洲色图大香| 日本不卡一区| 91中文精品日韩欧美在线| 日本精品999| 午夜久久一区二区无码中出| 最新av网站在线观看| 亚洲妇色| 伊人一区二区在线播放| 久偷拍欧美日韩三区| 岛国黄| 久久久久久久六六| 国产免a费看黄片在线| 亚洲欧美国产中文字幕| 亚洲熟女性高潮久久久| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | 国产成人啪一区二区| 日本视频在线观看污污污| 亚洲男人的天堂网| 亚洲欧美一区二区三区一猛片| 嗯嗯不要 视频| 天天日日本| 少妇3P性爱自拍| 久夜操| 亚洲 91 在线| 岛国视频一二三区| 久热这里| 国产亚洲 中文欧美久久| 国产Aα| 青青草导航在线视频| 欧美三级免费伊人| 丁香五月婷婷啪啪| 日韩熟女乱伦中出| 97精品免费| 人妻少妇无码 | 18禁无码永久免费无限制| 9997se| 亚洲欧洲精品成人| 免费福利视频中文字幕| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 亚洲欧美洲综合| 久久日韩肥臀| 一区二区不卡免费| 日本欧美国内在线| 麻豆人妻偷人精品无码视频| 天堂亚洲精品| 一区二区三| 上特色A在线| 校园春色综合色| 亚洲另类久操网| av九九| 思思热影视| 中国zzijzzijzzwww精品| 日产欧美电影一区二区三区| 超碰97人人乐| 欧美日韩精品久久久久东北老熟妇| 69AV女优男人的天堂| 99re6久热只有精品6在线直播| 国产日韩欧美三级片| 草草影院最新网址| 午夜精品五区| 婷婷丁香五月天综合东京热| 国产亚洲禁久一区二区 | 麻豆60秒| 午夜成人福利影视| 按摩中文字幕| 欧美国产视频| 一本大道青青| 综合网亚洲| 久操com| 久久久 国产精品| 欧美一区二区三区日韩| 91蜜臀在线久久久久| 中文字幕精品久久久久人妻红杏ⅰ| 久久有码| 亚洲极品| 日韩精品在线视频,日韩精品……| 免费家庭乱伦视频| 欧美东京热精品A∨| 簧片免费看视频| 国模限制级电影| 久久久久久9999| 亚洲国产97在线精品一区| 亚洲欧美日韩免费观看| 国产亚洲色婷婷久久99精品91葵花宝典| 久久曰曰| 国产夜夜艹| 一本色道久久综合亚洲二区三区| 尤物av网站免费在线播放| 国产精品久久久久久片| 国内黄色精品| 欧美日韩亚洲天堂| 日韩性爱视频在线免费观看| 五月香婷婷| 国产99999久久精品| 清纯唯美亚洲综合| 性爱乱伦一区| 久热久| 久久岛国| 96久久精品一二三区色欲| 国产天天骚| 欧美在线天堂| 国产少妇肉丝在线观看| 日本久久久精品电影| 日韩丰满熟妇| 亚洲性少妇| 国产精品96| 香蕉综合网| 超碰97.com| 五月丁香社区婷婷日韩欧美精品影院 | 麻豆黄四叶草网站| 后入人妻无码| 操逼网站视频漫画国产| 亚州精品人妻一二三区| 黄色AAAAAAAAAAA大片| 碰碰在线视频| 97天天综合| 操一区| 青女偷拍网| 一起草精品人妻| 欧美日韩天堂| 亚洲Av无码成人精品国产| 亚洲色图国产另类| 中文字幕aⅴ在线视频| 麻豆天美在线喷水AV| 激情国产乱伦Av| 亚洲激情欧美色图| 丰满人妻一区二区三区| 好爽免费视频| 1区2区3区中文字幕日韩| 亚洲黄片免费在线播放| 樱花草社区www中国| 国产黄片精品在线| 久草草一二三四区久久| 影音先锋乱| 欧美专区17页| 日日干日日| AV乱伦专区| 久久一二三四五六七八九区| 精品国产乱码久久久久久口爆网站| 欧美亚洲高清不卡| 狠狠色综合网| 无遮挡男女激烈动态图| 国产精品不卡一区二区三区| 超碰久热| 中文字幕国产| 97超碰国产亚洲精品| 在线 亚洲 网爆 自拍| 国产AV激情无码久久无码 | 在线性黄高清免费视频| 97精品网| 午夜视频久久久| 欧美日韩婷婷中文| 尻女朋友一夜| 婷婷性爱| 五月丁香综合啪啪| 东京热男人的天堂精品| av网站国产主播在线| 四虎影视欧美| 天天摸夜夜操视频| 神马午夜久久久| www超碰| 男人的天堂午夜av| 精品亚洲天堂| 一级免费精品| 夜夜 中文视频rt| 久久av网| 人人超碰在线观看黄| 99国产人成精品| 日韩av乱伦| 久久老子无码午夜伦不卡| 偷拍 欧美 日韩| 一区二区乱码福利| 操逼操2| 97色97干| 亚洲天堂久久久久久粉红视频| 亚洲双插| 欧美天天干| 欧美日韩资源| 天天懆天天日| 欧美成人一级免费电影| 家庭乱伦性爱av| 久久久 国产精品| 91狼人| 婷婷五月天网| 丁香五月AV| 熟女丝袜视频| 欧美少妇高潮久久91| 黑人中出21连凳花野真衣| 99国产精品在线观看| 成人热久久精品| 男人成人黄色视频在线观看免费下载| 高清无码91| 中文久久久| 一起草三级AV电影在线观看| 成人小说视频在线精品欧美| 丰满美女一级毛片在线播放| 亚洲国产奇米影视久久| 五月天综合网| 青青草密桃在线播放| 99久久综合| 国产精品久久久久999| 一本久道久久综合狠狠爱| 一级一性爱免费视频| 亚欧中文字幕在线视频| 婷婷丁香六月| 欧美日日操| 日韩中文9| 国产精品视频精品一二| 久久粉色| 亚洲成人精品久久久| 无码聚合| 久久久久久久六六| 91中文精品日韩欧美在线 | 精品人妻一区二区乱码一区二区| 岛国人妻少妇av在线观看| 宅男午夜在线视频| 麻豆国产尤物AV| 人人操人人摸人| 怡红院成人视频| 中文一区在线日| 精品久久久久黄少妇| 欧美熟爽综合| 91高潮喷水美女| 人妻五十路在线| 九九久精品| 大干人妻| 69天堂| 91狠狠综合久久| 国产精品久久久久久久久久久久| 久久久久久久唑| 久久97超碰| 午夜一级免费毛片| 亚洲AV无线| 翔田千里av一区二区三区| 99热最新网址| 九九九九九九九九九九九免费国产| 亚洲 日本 一 二 三| 国产亚洲欧洲在线观看| 亚洲男人天堂2016| 一级AAA片一区二区三区| 激情文学88| 日韩性爱电影一区 | 熟女人妻av在线资源,黄色的资源| 区一在线观看| 欧美日韩亚洲国产中文永久天天看| 91熟女丨91老女人| 一起草欧美| 欧美午夜精品久久久久久3D | 日本亚欧爱爱| 99久久久久久亚洲精品不卡| 日韩不卡a级视频专区| 91亚·色| 99热这里都是精品| 欧美大香蕉专区网| 国产青视频| 色网站导航大全| www.色综合| 男人的天堂日本东京热| 欧美日韩97| 亚洲91射| 久久成人国产| 免费亚洲国产精品久久一区| 无码不卡亚洲成?人片| 很很干很很操| 四虎av在线| **一级毛片国产| 国产9熟妇视频网站| 屁屁影院一区二区三区国产| 91激情综合| 国产最新小视频在线播放下载| 亚洲男人的天堂一区二区| 日韩激情无码影院| 91日日夜夜| 天天综合网一91网| 91精品久久久| 日韩AV噜噜噜一区二区三区四区| 男人天堂一区二区| 国产精品点击进入在线影院高清| 99re6国产精品99re在线| 丁香九月婷婷| 10000部十八禁看电影| 久久久精选| 妺妺跟我一起洗澡没忍住| 精品制服美女中文一区二区三区| 色99视频| 日本成熟少妇A∨网站| 亚洲免费97免费| 婷婷深爱五月| 97亚洲欧美| 狠狠操一区二区| 麻花豆传媒剧国产MV出差| 人妻熟女一区二区| 69超碰综合| 二男一女成人A片| 亚洲色棕合| 宅男午夜在线视频| 亚洲成a人在线观看久| 欧美色另类| 禁十八久久| 大香蕉520| 久久精品国产亚洲AV嘿嘿| 欧美丝袜中文字幕07在线| 日本97久久久精品| 天美麻花大全视频| 久热在线精品免费观看| 日韩本不卡视频在线观看| 熟妇最新先锋一二三区| 秋霞视频一区二区 | 天天艹天天日| 久久久四区| 中文无线日韩一区| 亚洲第一二区另类图| 午夜久久一区二区无码中出| 九月婷婷综合| 花野真衣| 亚洲综合小说另类图欧美视频激情小说色五月天 | 欧美亚洲首页| 精品一区二区2| 亚州色图片在线色| 青青草成人视频在线观看二区| 婷婷四五区| 2020中文字幕| 久久人妻办公室视频| 色婷婷综合网| 女优免费一区二区永久| 婷婷午夜| 操九九九九九九| 宅男91视频在线播放| 97视频观看| 一区二区首页| 99xav| 97超视频在线观看| 欧美日韩人妻少妇 一区二区三区| 2026国产精品视频| av2014 日韩在线中文字幕| 在线二区不卡| 人人操欧美风骚| 欧美的性爱网站免费| 91人妻人人澡人人爽人人精品| 青青青青操国内视频在线| 91亚洲欧洲| 久久这里是精品| 日本精品不卡一二三区| 蜜臀久久99精品久久久久久久久| 国产少妇肉丝在线观看| 欧美激情 日韩精品| 男人的天堂无码| 国产97/欧美| 成年无码动漫av片无尽在线 | 秋霞一集毛片观看| 在线国产福利网址导航| www.丁香五月| 美女主播色欲91抠b在线播放| 亚洲日本天堂| 国产91精品在线免费| 无码黑人精品一区二区三区三| 中文字幕性感少妇av| 超碰调教97| 亚州综合图片| 欧美啪啪色吧在线| 少妇一区二区三区高速| 91碰碰| 一区二区偷拍拍视频| 久久久久久无码人妻中文字幕| 中日亚韩免费视频| 亚洲综合影片| 四虎午夜影院| 粉嫩AV一区夜夜嗨| 亚洲 欧美 制服 另类 自拍| 国产欧美第五页| 男女啊啊啊啊啊| 无码国产精品久久久久| 九九综合网| 亚洲欧美日韩二区视频| 国产玖玖| 亚洲欧美91√| 亚洲精品天堂久久A∨51成人漫| 丝袜综合| 日韩免费在线视频观看| 久久综合久久综合人久久夜精品| 色臀AV| 92人人操人人| 天美传媒av在线| 亚州一区二区成人片免费| 亚洲国产剧情少妇激情| 999久久久免费精品国产牛牛| 九九在线视频| 日韩综合色图| 色情亚洲日本成人| 乱伦a片视频| 欧美激情久久久久| 国产粉嫩出水在线播放| 久久久久久无码人妻中文字幕| 亚洲无码一区二区三区三州| 97在线欧| 熟女丰满人妻一区| 成人免费毛片| Julia Annxxxxx| 99视频内射三四| 久久超碰网| 伊人久久大香线蕉亚洲五月天,青草青草欧美日本一区二区,欧美日产欧美日产国产 | 日韩三四五区| 91久久九九精品国产综合| 欧美人人天天网| 综合色99| 无码区蜜乳| 亚洲自拍青操视频| 国产一区96在线| 一本久道在线综合视频| 欧美久久人体| 人人摸人人干| 91一起操| 亚洲 欧美 制服 另类 自拍| 肥臀熟女一区二区三区视频| 久久本道| 人人射人人操人人摸| 超碰精品日韩欧美国产| 无码人妻系列少妇| 亚洲欧美爆| 在线精品福利免费播放| 国产精品嫩草影院午夜两性| 国产精品禁久久久精品| 男人的天堂色偷偷青青草视频婷婷网| 亚洲欧美国产日本一区二区三区| 国产精品嫩草影院午夜两性| 久久久日本电影| 少好三P| 天天α片| 97国产亚洲中文在线| 亚洲激情网| 熟女色综合久久| 北约熟女超碰| 伊人久久大香线蕉无码| 91动漫操逼视频| 国内毛片无码一级毛片| www.夜夜操| 天天综合影院91| 人妻黑丝袜电影| 视频二区熟女人妻| 久久精品无码熟妇一区二区三区视频导航 | 天天综合网入口~91| 亚洲蜜臀懂色| 国产高清在线自在拍69| 上床不卡网站| 美女大乳久久久久久久女人18| 天天综合网久久ww| 搞中出视频在线观看| 婷婷美人网| 青青草导航在线视频| 精品女同一区| 999久久久九九九九| 在线视频免费观看午夜| 国产精品久久久久久亚洲色欲| 三男一女不戴套的A片| 性爱视频无打码在线观看| 性久久久| 国产激情av女片自拍| 色播综合| 人人操天天爽| 啊啊啊不要嗯嗯在线观看| JuliaAnnXXX888| 69国产对白刺激| 九月丁香综合网| 五月天激情婷婷| 另类av综合久久| juliaann欧美丝袜办公室| 无码一区免费在线不卡| 欧美日韩性爱无码| 人妻密肉在线观看| 中文字幕av片| 偷拍 欧美 日韩| 中国一区二区亚洲人妻| 亚洲欧洲美腿丝袜| 爱妻综合网| AV一起草在线| 大香蕉丝袜一级片| 日本人妻天堂网站在线播放| 欧美性夜| 一本一道vs波多野结衣| 夜夜操2028| 91九色丰满高潮| ,成人免费啪啪视频| 草草影院在线视频| 人妻激情视频| 国产麻豆福利av在线播放| 动漫片子网站3黄| 超碰九区| 精品国产精品一区二区| 最新精品久久蜜桃| 精品人妻免费观看| 亚洲男人天堂2019| 精品国产乱子伦一区二区三区,精品一| 乱伦一区二区三区‘| 亚洲另类久操网| 亚洲成人贴图| www.婷婷五月天| 欧美激情 一区| 蜜乳av首页| 日本在线999| 亚洲熟妇自偷自拍另欧美| 蜜臀久久99精品久久久久电影| 人妻中文字幕日韩电影| 曰本特级特黄特色黄色A级网站高清在线免费看| 日韩啊V| 97国产超湿| 亚洲日本激情| 欧美精品丝袜久久久中文字幕| 人人干黄色| 中文字幕精品亚洲熟女| 日韩人妻资源在线看| 91精品微拍福利| 久久女女| 欧美黄色图片| 色五月综合网| 岛国激情视频在线观看| 天天欲望网| 天天操天天7| 91精品电影18| 亚洲性爱无码乱伦av| 久久国产逼| 97色综合中文网| 品亲网欧美品亲网| 美女露胸露奶头| 五月婷久久| 婷婷中文网| 欧美探花网| 亚洲色婷婷久久91| 啊啊啊啊啊啊在线| 中文熟女五十乱码在线| 一区| 91在线美女| 91人妻超碰| 五月色丁香| 婷婷丁香在线| 丰满人妻大屁一区二区| 中国乱伦一区二区| 日本色色色色色视频| 懂色中文一区二区三区| 婷婷伊人五月| 成人精品无码| 日本操逼视频在线| 国产h小视频在线观看免费| 伊人麻豆传媒| 亚洲精品九九九| 精品免费视频国产一区| 国产无码成人无码| 午夜a成v人电影| 91av一区二区在线观看| 欧美精品23| 亚洲 一区二区 自拍| 国产精品无套内谢| 久久精品中文字幕无码l| 每日更新AV| 久久AV无码网址| 91超级碰| 一区久久久二区| 操学生天天| 91网站在线播放| 午夜男人的天堂| 婷婷久久五月综合激情| 岛国福利在线精品播放| 操逼视频免费日韩无码| 99综合| 美中韩AV综合网| 欧美天堂亚洲电影院一区在线播放 | 强奸乱伦 亚洲一区| 在线岛国新天堂8| 色官网在线| 91一区二匹| 老女人91| 九九九国产精品| 天天日骚逼熟女| 外站AV在线| 久久91视频| 操我啊啊啊啊啊| 精品制服美女中文一区二区三区| 国产丝袜啪啪| 九九精品99| 日本久久99| 蜜臀99999| 一卡二卡三卡| 无码国产Av| 97青青操视频| 国产人妻久久精品一区二区三区| 91国产操逼视频| 亚洲欧美日韩综合在线尤物 | 国产女人极品高潮毛片| 亚洲图片欧美91N| 综合情欲网| 人妻 丝袜美腿 中文字幕| 亚洲天堂综合AV| 久9综合在线| 一级特级aaaa毛片免费观看 | 最新av网站在线观看| 亚洲人妻一区二区三区| 亚洲欧美变态| 色爱三区| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 高凊专区人人操| 加勒比中文av| 青青草视频久久| 97色综合中文网| 久久久蜜桃一区二区三区| 国产一区在线看| www.天天干| 成人线上超碰| 麻豆国产原创AV色哟哟| 黄片免费日韩| 久久鲁夜| 亚洲成熟国产精品美女| 九草九九九| 涩五月婷婷| av影片在线观看不卡| 大香蕉十区| 操逼片国产| 国产精品另类一区大香蕉| 亚洲中文字幕精品久久久久久直播 | 青娱乐欧美激情一区二区| 91老熟女老女人国产老太| 欧亚性爱视频免费看| 啊啊啊啊啊啊啊啊视频| 欧美激情片一区二区| 亚州操逼网| 亚洲中文字幕精品一区| a片在线播放| 91欧美网| 久久综合久久综合人久久夜精品| 久久国产在线一区二区| 色九九综合AV| 91在线美女| 精品v日韩欧美国产| 国产精品视频内谢女人| 99久久9| 天天摸天天插天天日| 国产女人极品高潮毛片| 97色97干| 青青草原香蕉日本Ap| 激情综合av| 夜夜爽爽爽| 在线v中文字幕一区二区三区 | 日韩国产在线观看av| 国产97视频| 久久久久深夜无码| www.91欧美| 尤物av网站| 69AV女优男人的天堂| 婷婷五月天AV| 日本三级韩三级99久久| 国产欧美成人第一页在线观看| 又粗又长又大国产不卡| 麻豆一区在线| 狠狠操天天干| 色欲无码人妻日韩欧美精品| 欧美第五页| 免费草草草草草视频| 男人的天堂.com| 亚洲 欧美 手机在线观看| 天天影视色香欲综合网小说| 欧美熟女丝袜| 青青草吊丝| 中文字日本乱码| 中文字日本乱码| 中文字幕片| 色鬼在线综合| 色综合色欲色综合色综合色综合| 九九综合九九综合| av网站免费线看| 内射老妇BBWX0C0CK| 日韩熟女无码| 国产美女自拍AV| 国产三级日产三级韩国三级| 操操吧亚洲乱伦视频| 少妇三p| 性色av一区二区| 蜜桃在线观看一区二区三区 | 国产偷拍网站| 国产中出内射一区二区| 素人一区二区三区日韩| 2020中文在线一区二区三区|