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

ARTICLE DETAIL

資訊詳情

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

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

Pandas DataFrame時(shí)間序列處理:重采樣、滾動(dòng)特征與數(shù)據(jù)泄漏排查 DataFrame 的時(shí)間序列處理我前后踩過(guò)三輪坑才算真正用順。第一輪是把時(shí)間列當(dāng)普通字符串排序結(jié)果亂序數(shù)據(jù)喂進(jìn)模型指標(biāo)飄得沒(méi)法復(fù)現(xiàn)第二輪是重采樣窗口邊界沒(méi)對(duì)齊日匯總和原始分鐘數(shù)據(jù)對(duì)不上賬排查到半夜第三輪最狠構(gòu)造的特征里混進(jìn)了未來(lái)信息離線評(píng)估漂亮得離譜實(shí)際跑起來(lái)直接失效。這三個(gè)坑基本覆蓋了時(shí)間序列 DataFrame 的絕大多數(shù)陷阱也正好說(shuō)明了為什么這一塊必須單獨(dú)拎出來(lái)講。它是 DataFrame 系列的收尾篇也是銜接機(jī)器學(xué)習(xí)前置技術(shù)棧的關(guān)鍵一環(huán)——前面講的索引、切片、合并、聚合本質(zhì)都是把數(shù)據(jù)擺整齊而時(shí)間序列這一篇要解決的是讓數(shù)據(jù)帶著時(shí)間語(yǔ)義動(dòng)起來(lái)。如果你正在做設(shè)備采集分析、業(yè)務(wù)指標(biāo)監(jiān)控、銷量預(yù)測(cè)或者準(zhǔn)備把一張帶時(shí)間戳的表轉(zhuǎn)成模型能吃的特征矩陣這篇的內(nèi)容基本可以照著抄。下文所有代碼都基于常規(guī)實(shí)踐整理環(huán)境是 Python 3.10 以上配 Pandas 2.x2.x 和 1.x 在部分時(shí)間序列行為上有差異我會(huì)在涉及的地方標(biāo)出來(lái)。1. 時(shí)間序列 DataFrame 的底層邏輯與設(shè)計(jì)取舍1.1 為什么時(shí)間列不能只當(dāng)普通列用很多人第一次處理時(shí)間數(shù)據(jù)的直覺(jué)是時(shí)間不就是一列字符串嗎排序、篩選、分組照做就行。這個(gè)做法在數(shù)據(jù)量小、需求單純的時(shí)候確實(shí)能跑一旦涉及按天匯總、取最近七天均值、補(bǔ)齊缺失的分鐘點(diǎn)這類操作就會(huì)立刻暴露出問(wèn)題。原因在于 Pandas 的時(shí)間序列能力并不是掛在列上的而是掛在索引上的——DatetimeIndex是一個(gè)帶有頻率語(yǔ)義的特殊索引對(duì)象它能回答下一個(gè)時(shí)間點(diǎn)是誰(shuí)這種普通列回答不了的問(wèn)題。你寫df.resample(D)Pandas 需要知道當(dāng)前索引的粒度、有沒(méi)有空洞、邊界怎么取這些都依賴索引是DatetimeIndex這個(gè)前提。把時(shí)間留在普通列里resample直接報(bào)錯(cuò)rolling的時(shí)間窗口寫法也用不了只能退化成按行數(shù)滾動(dòng)的近似方案精度和語(yǔ)義雙輸。我自己習(xí)慣的做法是原始數(shù)據(jù)讀進(jìn)來(lái)之后第一時(shí)間把時(shí)間列轉(zhuǎn)成datetime64[ns]然后set_index提到索引位置再sort_index()排一次序。這三步做完后面所有操作才有意義。排序這一步特別容易被跳過(guò)因?yàn)榇蠖鄶?shù)采集數(shù)據(jù)天然是順序?qū)懭氲目雌饋?lái)不用排。但只要中間有過(guò)補(bǔ)數(shù)、合并、多源拼接順序就可能被打亂而resample、rolling、shift全都是順序敏感的——順序錯(cuò)了結(jié)果不會(huì)報(bào)錯(cuò)只會(huì)靜默算錯(cuò)這是最難查的一類問(wèn)題。1.2 頻率語(yǔ)義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í)間軸是按分鐘對(duì)齊的asfreq(1min)就會(huì)把不在整分鐘上的點(diǎn)丟掉或者對(duì)齊行為完全不同。所以freq是一個(gè)聲明不是一個(gè)檢測(cè)——你聲明了什么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就是安全的如果前幾名分散得很厲害說(shuō)明數(shù)據(jù)有大量缺失或者本身就是事件流這時(shí)候強(qiáng)行設(shè)freq只會(huì)給自己埋雷不如保持None用resample的時(shí)候再顯式指定目標(biāo)頻率。這個(gè)習(xí)慣幫我省過(guò)很多次排查時(shí)間——頻率聲明錯(cuò)誤導(dǎo)致的問(wèn)題往往要等到下游聚合結(jié)果明顯不合理才被發(fā)現(xiàn)。1.3 幾種常見(jiàn)方案的橫向?qū)Ρ葧r(shí)間序列的建模方式不止一種選錯(cuò)了后面全是返工。我把實(shí)際項(xiàng)目里用過(guò)的幾種方案列個(gè)表方便對(duì)照自己的場(chǎng)景挑。方案時(shí)間位置適用場(chǎng)景主要優(yōu)勢(shì)主要代價(jià)普通列 手動(dòng)分組普通列一次性報(bào)表、低頻分析無(wú)需學(xué)習(xí)成本無(wú)法用 resample/時(shí)間窗口 rollingDatetimeIndex resample索引固定頻率聚合、降采樣語(yǔ)義清晰、代碼短要求數(shù)據(jù)大致規(guī)整整數(shù)序號(hào) 時(shí)間列普通列不規(guī)則事件流、序列模型順序可控、便于對(duì)齊時(shí)間語(yǔ)義要自己維護(hù)PeriodIndex索引按月/季等周期統(tǒng)計(jì)周期邊界天然正確跨周期運(yùn)算受限第三行那個(gè)方案值得多說(shuō)一句。做序列模型比如基于滑動(dòng)窗口的回歸時(shí)我有時(shí)會(huì)故意不用DatetimeIndex而是保留一列整數(shù)seq當(dāng)索引時(shí)間作為普通列掛著。原因是模型訓(xùn)練階段更關(guān)心第 t 步到第 t-1 步的嚴(yán)格先后關(guān)系用整數(shù)序號(hào)可以避免時(shí)間空洞帶來(lái)的隱式錯(cuò)位特征對(duì)齊也更直觀。這不是說(shuō)DatetimeIndex不好而是說(shuō)工具要匹配階段——探索分析和特征工程用時(shí)間索引喂模型前轉(zhuǎn)成規(guī)整的二維矩陣。分清楚這個(gè)邊界很多到底該用哪種的糾結(jié)就沒(méi)了。2. 時(shí)間索引的建立與清洗臟數(shù)據(jù)的第一道閘2.1 to_datetime 的參數(shù)怎么選才不出事pd.to_datetime是入口函數(shù)也是最容易埋雷的地方。最常見(jiàn)的坑是不指定format讓它自己猜。Pandas 的推斷邏輯在混合格式下會(huì)退化成逐行解析速度慢幾十倍不說(shuō)遇到2024-03-01和01/03/2024混在一起的情況它可能把后者解析成 1 月 3 日——月日顛倒結(jié)果全錯(cuò)而且不報(bào)錯(cuò)。我在一個(gè)多源合并的表上吃過(guò)這個(gè)虧兩個(gè)數(shù)據(jù)源一個(gè)用 ISO 格式一個(gè)用斜杠格式合并后時(shí)間線整體錯(cuò)位了半個(gè)月查了兩天才定位到。所以我現(xiàn)在的固定寫法是能確定格式就顯式寫format格式不統(tǒng)一就先按來(lái)源拆開分別轉(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ù)也值得展開說(shuō)。默認(rèn)是raise遇到解析不了的值直接拋異常改成coerce會(huì)把壞值變成NaT流程能繼續(xù)跑下去。我傾向于在探索階段用raise逼自己把臟數(shù)據(jù)全部找出來(lái)只有在已經(jīng)確認(rèn)臟值占比極低、且能接受丟棄的場(chǎng)景下才用coerce。見(jiàn)過(guò)不少代碼一上來(lái)就errorscoerce結(jié)果整列里有三成解析失敗全變成NaT后續(xù)dropna一刪樣本少了一大截還沒(méi)人察覺(jué)。另一類坑來(lái)自時(shí)間戳里的意外成分比如帶毫秒、帶時(shí)區(qū)偏移、帶中文時(shí)分秒。帶時(shí)區(qū)的字符串轉(zhuǎn)出來(lái)是datetime64[ns, tz]和本地時(shí)間的不同列運(yùn)算會(huì)報(bào)錯(cuò)需要統(tǒng)一tz_localize或tz_convert??鐣r(shí)區(qū)采集的場(chǎng)景里我的建議是一律先轉(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)——這類問(wè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ì)連帶丟掉本來(lái)有效的那條。我一般先統(tǒng)計(jì)重復(fù)數(shù)量占比很低千分之幾才直接去重占比高的話說(shuō)明數(shù)據(jù)源有問(wèn)題得回頭查采集鏈路不能靠去重掩過(guò)去。還有一個(gè)容易被忽略的點(diǎn)MultiIndex下的時(shí)間序列操作。當(dāng)索引是(設(shè)備編號(hào), 時(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è)量級(jí)我做過(guò)一次對(duì)比二十萬(wàn)行、200 個(gè)分組resample(level)比groupby().apply()快大約四倍。2.3 補(bǔ)齊時(shí)間軸reindex 的正確打開方式缺失時(shí)間點(diǎn)有兩種處理哲學(xué)一種是沒(méi)有就是沒(méi)有保持稀疏一種是補(bǔ)齊柵格再填值保持規(guī)整。分析階段我偏向后者因?yàn)檎麠l時(shí)間軸完整之后rolling、diff、shift的語(yǔ)義才準(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ù)別漏不寫的話新索引沒(méi)名字后面reset_index會(huì)得到index這個(gè)列名接下游容易對(duì)不上。補(bǔ)出來(lái)的空位是NaN怎么填取決于數(shù)據(jù)性質(zhì)測(cè)量值可以前向填充ffill或線性插值計(jì)數(shù)類指標(biāo)應(yīng)該填 0比率類指標(biāo)最好別亂填寧可標(biāo)成缺失讓模型自己處理。我見(jiàn)過(guò)把缺失的比率直接ffill二十多個(gè)點(diǎn)的做法等于人為制造了一段平坦的假數(shù)據(jù)模型學(xué)到的就是這個(gè)假規(guī)律評(píng)估階段看起來(lái)還行實(shí)際預(yù)測(cè)時(shí)就會(huì)在同樣的位置給出可疑的平穩(wěn)輸出。注意ffill一定要設(shè)limit否則長(zhǎng)時(shí)間斷流會(huì)被一個(gè)值填滿整段看起來(lái)像真的連續(xù)觀測(cè)。我的習(xí)慣是limit3最多補(bǔ)三個(gè)點(diǎn)超出的保持NaN交給下游丟棄或單獨(dú)標(biāo)記。3. 重采樣與頻率轉(zhuǎn)換降采樣和升采樣的實(shí)操細(xì)節(jié)3.1 resample 的聚合字典與命名規(guī)范降采樣高頻轉(zhuǎn)低頻最常用的就是resample。基礎(chǔ)寫法很簡(jiǎn)單但真正用起來(lái)聚合方式往往不是一個(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]})出來(lái)的多級(jí)列名好處理得多。多級(jí)列名后續(xù)要droplevel或者手動(dòng)拼名字很容易出錯(cuò)尤其是下游要按列名取特征的時(shí)候。這一點(diǎn)我在給模型準(zhǔn)備特征表時(shí)深有體會(huì)——多級(jí)列名導(dǎo)成 CSV 再讀回來(lái)列名會(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ù)人的直覺(jué)但當(dāng)你要和另一套系統(tǒng)對(duì)齊時(shí)就必須顯式確認(rèn)——對(duì)方是左閉右開還是左開右閉標(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é)果看起來(lái)只差一個(gè)時(shí)間標(biāo)簽但實(shí)際數(shù)值分布完全不同因?yàn)槁涞矫總€(gè)桶里的原始點(diǎn)不一樣。我在一次對(duì)賬里就是因?yàn)檫@個(gè)差了一整個(gè)時(shí)間桶上游按右閉算、我按左閉算兩邊的日匯總在跨天時(shí)刻差了整整五分鐘的數(shù)據(jù)量級(jí)不大但對(duì)不上賬就是問(wèn)題。還有一個(gè)參數(shù)origin在按天、按周聚合時(shí)很關(guān)鍵。默認(rèn)originstart_day也就是按自然日切如果要按從某個(gè)時(shí)間點(diǎn)開始的 24 小時(shí)切就得傳originstart或具體時(shí)間戳。做班次統(tǒng)計(jì)、按批次時(shí)長(zhǎng)聚合的場(chǎng)景這個(gè)參數(shù)直接決定結(jié)果對(duì)不對(duì)。3.3 asfreq 和 resample 的差別別混著用這兩個(gè)函數(shù)經(jīng)常被當(dāng)成等價(jià)物其實(shí)定位完全不同。resample是分組聚合必須給一個(gè)聚合方式或者默認(rèn)取均值asfreq是重采樣到新柵格只做取樣不聚合多出來(lái)的點(diǎn)直接丟空出來(lái)的位置給NaN。做升采樣低頻轉(zhuǎn)高頻的時(shí)候我?guī)缀踔挥胊sfreq因?yàn)樯蓸颖緛?lái)的語(yǔ)義就是放大柵格、保留原值、填空缺用resample反而會(huì)引入不必要的聚合邏輯。up df.asfreq(30s) up[value] up[value].interpolate(methodtime)interpolate(methodtime)這個(gè)寫法值得單獨(dú)說(shuō)。普通的interpolate()是按位置線性插值methodtime是按時(shí)間距離加權(quán)。數(shù)據(jù)間隔不均勻的時(shí)候兩者差別明顯比如08:00值是 1、08:04值是 5中間08:01那個(gè)點(diǎn)按位置插值給 2等距假設(shè)按時(shí)間插值同樣給 2看起來(lái)一樣但如果中間點(diǎn)是08:03按位置給 3按時(shí)間給 4。顯然按時(shí)間更符合物理意義。不規(guī)則采集的數(shù)據(jù)做插值一定要加methodtime否則時(shí)間間隔的信息白丟了。3.4 一個(gè)完整的分層聚合實(shí)戰(zhàn)把上面這些串起來(lái)走一遍從分鐘級(jí)原始數(shù)據(jù)到日級(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) 短缺口前向填充長(zhǎng)缺口保留 NaN df[value] df[value].ffill(limit3) # 5) 日級(jí)聚合 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)記甚至剔除——用覆蓋率只有三成的天算出來(lái)的日均值噪聲比信號(hào)大得多混進(jìn)訓(xùn)練集只會(huì)拉低模型表現(xiàn)。這個(gè)指標(biāo)沒(méi)有任何技術(shù)難度但很多人的特征表里就是沒(méi)有導(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 行可能對(duì)應(yīng)三天也可能對(duì)應(yīng)七小時(shí)語(yǔ)義完全不同。時(shí)間窗口寫rolling(7D)才是字面意思上的過(guò)去七天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)值等于窗口長(zhǎng)度意味著前六個(gè)點(diǎn)的滾動(dòng)均值全是NaN——數(shù)據(jù)頭部直接損失。設(shè)成min_periods1能讓頭部也算出值但早期的值是兩三個(gè)點(diǎn)算出來(lái)的方差極大和后面的值不在一個(gè)尺度上。我的處理方式是折中設(shè)min_periods為窗口長(zhǎng)度的一半左右早期那一段直接在下游截掉不用。這樣既不會(huì)因?yàn)轭^部NaN導(dǎo)致整行被dropna刪掉也避免了用兩三個(gè)點(diǎn)冒充七天均值。窗口的center參數(shù)也要留意默認(rèn)False表示窗口右端對(duì)齊當(dāng)前點(diǎn)只用歷史設(shè)True會(huì)讓窗口居中等于用了未來(lái)數(shù)據(jù)。做特征工程時(shí)center必須是False一旦設(shè)成True你的滾動(dòng)均值里就包含了未來(lái)信息離線指標(biāo)會(huì)虛高。這個(gè)參數(shù)在畫圖平滑曲線時(shí)很好用在建模特征里是禁用項(xiàng)兩種場(chǎng)景要分開記別寫混。4.2 expanding 與 ewm長(zhǎng)記憶特征的兩條路線rolling是固定窗口expanding是從開頭累積到當(dāng)前點(diǎn)窗口長(zhǎng)度一直變大。適合刻畫累計(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è)無(wú)限長(zhǎng)但權(quán)重衰減的窗口。做有明顯趨勢(shì)和突變的指標(biāo)比如流量、活躍度ewm通常比簡(jiǎn)單滾動(dòng)均值跟得更緊滯后更小。關(guān)鍵是span和alpha的換算關(guān)系alpha 2 / (span 1)span7對(duì)應(yīng)alpha0.25。我一般直接用span因?yàn)樗投嗌偬斓闹庇X(jué)對(duì)應(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推形式更接近在線更新的語(yǔ)義也便于你在流式計(jì)算里復(fù)現(xiàn)同樣的值。如果訓(xùn)練時(shí)用了默認(rèn)值、推理時(shí)自己手寫遞推公式兩邊必然對(duì)不上這類線上線下不一致的問(wèn)題排查起來(lái)極其折磨。4.3 shift / diff / pct_change滯后特征的正確姿勢(shì)滯后特征是時(shí)間序列建模的主力三個(gè)函數(shù)各管一段shift平移、diff差分、pct_change變化率。用法簡(jiǎn)單但有兩個(gè)細(xì)節(jié)必須講清楚。第一個(gè)是shift的方向。shift(1)是把數(shù)據(jù)往下推一行也就是當(dāng)前行拿到的是上一行的值——這才是用歷史預(yù)測(cè)現(xiàn)在的正確構(gòu)造。shift(-1)是把未來(lái)值拉到當(dāng)前行這是標(biāo)簽構(gòu)造用的當(dāng)前特征對(duì)應(yīng)下期目標(biāo)絕對(duì)不能出現(xiàn)在特征里。我在代碼審查時(shí)見(jiàn)過(guò)把shift(-1)當(dāng)特征寫進(jìn)流水線的那基本等于作弊。第二個(gè)是pct_change的除零和負(fù)值。當(dāng)上期值為 0 時(shí)變化率是inf當(dāng)上期值為負(fù)時(shí)變化率的符號(hào)會(huì)翻過(guò)來(lái)語(yǔ)義完全變味。穩(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 的值。除出來(lái)的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í)只對(duì)lag做了shift滾動(dòng)統(tǒng)計(jì)直接在原序列上算結(jié)果第 t 行的roll_mean_7里包含了第 t 行的真實(shí)值——模型只要盯著這個(gè)特征就能看到答案離線評(píng)估自然漂亮。這個(gè)錯(cuò)誤的隱蔽性在于單看代碼base.rolling(7).mean()完全合理根本不像有 bug。唯一的防法是養(yǎng)成條件反射——看到滾動(dòng)統(tǒng)計(jì)先問(wèn)一句這個(gè)窗口的右端點(diǎn)包不包含當(dāng)前時(shí)刻。時(shí)間特征的周期性編碼也值得說(shuō)一下。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è)技巧對(duì)星期、月份同樣適用代價(jià)是多了幾列特征收益是模型不用再自己學(xué)這個(gè)映射關(guān)系小樣本下提升挺明顯。4.5 切分與防泄漏最后一道關(guān)卡特征表造好之后切訓(xùn)練集和測(cè)試集這一步必須按時(shí)間切不能隨機(jī)切。隨機(jī)切會(huì)讓測(cè)試集的時(shí)間點(diǎn)散落在訓(xùn)練集內(nèi)部模型實(shí)際是在插值而不是外推評(píng)估結(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)用到測(cè)試集。很多人在整張表上fit完再切均值方差里已經(jīng)包含了測(cè)試集信息這是典型的隱性泄漏。我習(xí)慣在流水線里把fit嚴(yán)格限定在訓(xùn)練切片上寧可多寫兩行也不圖省事。提示造完特征先用一句feature_df.isna().mean().sort_values(ascendingFalse).head()看一眼各列缺失率。頭部那幾行被shift挖空是正常的如果有中間段落的列缺失率異常高多半是原始時(shí)間軸沒(méi)補(bǔ)齊或者聚合口徑寫錯(cuò)了別急著往下走。5. 常見(jiàn)問(wèn)題與排查實(shí)錄5.1 問(wèn)題速查表下面這張表是我這幾年遇到頻率最高的一批問(wèn)題按癥狀—原因—處理三列整理遇到類似現(xiàn)象可以直接對(duì)號(hào)入座。癥狀大概率原因處理方式resample 報(bào)TypeError索引不是 DatetimeIndex檢查set_index后有沒(méi)有to_datetime聚合結(jié)果比原始數(shù)據(jù)少很多時(shí)間列解析失敗變NaT后被丟用errorsraise重跑定位壞值日匯總和手工核對(duì)差一截closed/label口徑不一致顯式指定兩個(gè)參數(shù)并與上游對(duì)齊rolling 頭部全NaNmin_periods默認(rèn)等于窗口長(zhǎng)度降到窗口長(zhǎng)度一半頭部截?cái)鄏olling 中間出現(xiàn)大段NaN時(shí)間軸有空洞時(shí)間窗口跨不過(guò)去先reindex補(bǔ)齊再滾動(dòng)pct_change出inf上期為 0分母where掉近零值模型離線指標(biāo)好得反常特征含未來(lái)信息排查shift(-1)、centerTrue、未 shift 的 rolling推理結(jié)果與訓(xùn)練分布不符ewm的adjust不一致統(tǒng)一adjustFalse合并后時(shí)間線整體偏移多源時(shí)間格式不統(tǒng)一分源解析后再合并統(tǒng)一時(shí)區(qū)5.2 幾個(gè)只有踩過(guò)才知道的細(xì)節(jié)第一個(gè)是resample對(duì)空桶的處理。如果某個(gè)時(shí)間窗口內(nèi)一個(gè)樣本都沒(méi)有聚合結(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ì)把沒(méi)有數(shù)據(jù)偽裝成數(shù)值為零。第二個(gè)是Grouper和groupby的配合。當(dāng)你要按周聚合、但周的定義不是自然周比如從周一開始算resample(W)可能不符合預(yù)期pd.Grouper(freqW-MON, closedleft, labelleft)更靈活。另外多列分組時(shí)Grouper可以只對(duì)時(shí)間列生效其他列正常分組weekly df.groupby([ pd.Grouper(freqW-MON, closedleft, labelleft), device_id, ]).agg(val_mean(value, mean))這個(gè)寫法比先resample再unstack干凈得多尤其是在分組維度多的時(shí)候。第三個(gè)是性能。resample().agg()在千萬(wàn)行級(jí)別會(huì)明顯變慢我實(shí)測(cè)過(guò)幾種寫法用命名聚合比傳字典快用內(nèi)置聚合函數(shù)比lambda快很多l(xiāng)ambda里的s.isna().sum()這類操作會(huì)退化成逐組 Python 調(diào)用。如果數(shù)據(jù)量大把自定義邏輯挪到聚合之后用向量化算能省掉一大半時(shí)間。另外一個(gè)思路是先降采樣到粗粒度再算比如日級(jí)特征不需要從分鐘級(jí)逐點(diǎn)算可以先聚合到小時(shí)再往上滾誤差在可接受范圍內(nèi)而速度提升明顯。第四個(gè)是時(shí)間序列的對(duì)齊問(wèn)題多序列合并時(shí)尤其明顯。兩張表的采樣時(shí)刻不完全一致df1 df2會(huì)產(chǎn)生大量NaN因?yàn)?Pandas 按索引精確對(duì)齊。這時(shí)候用resample先統(tǒng)一到同一柵格或者用merge_asof做近似匹配。merge_asof要求兩邊都按時(shí)間排序direction參數(shù)控制取最近的過(guò)去還是最近的未來(lái)做傳感器數(shù)據(jù)與事件打標(biāo)對(duì)齊時(shí)特別好用比reindexffill更精確因?yàn)樗梢赃x擇最近鄰而不是單純的前向。最后分享一個(gè)我自己養(yǎng)成的習(xí)慣任何一次時(shí)間序列處理開頭先打印三行——索引類型、索引是否單調(diào)遞增、時(shí)間跨度。這三行幾乎能提前暴露八成的潛在問(wèn)題。print(type(df.index).__name__) print(df.index.is_monotonic_increasing) print(df.index.min(), -, df.index.max(), | rows:, len(df))看起來(lái)是廢話但我確實(shí)靠這三行抓到過(guò)好幾次數(shù)據(jù)只導(dǎo)入了半天的低級(jí)錯(cuò)誤——文件截?cái)?、查詢條件漏了時(shí)間上限這類問(wèn)題不會(huì)報(bào)錯(cuò)只會(huì)讓你在幾小時(shí)后對(duì)著一堆反常的聚合結(jié)果發(fā)懵。花三秒鐘打印比花三小時(shí)排查劃算得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
黄片aaaaa一区| 性欧美| 人人弄人人摸| 伊人在线大香蕉视频久久| 自拍偷拍2025在线观看| 亚洲?V高清一区二区三区尤物| 97干天天| 久久这里| 99精品高潮| 亚洲另类综合欧美| 麻豆黄色五月天| 国产操逼逼网| 色综合久久av| 波多野结衣之双飞调教在线播放| 欧美色九九| 麻豆精品A片免费观看| 99re国产中文字幕| www.色操逼| 99精品国产户外露出| 成人资源中文字幕在线观看| 加勒比人妻综合| 啊啊啊com| 免费久久精品麻豆一区二区av| 91啦人妻| 欧美黄色手机在线观看| 欧美97色| 精品国产乱码久久久久久网站入口| 色天欧美| 亚州男人的天堂| 91是天天| 夜夜人妻爽| 男女91| 九九久久一区二区三区| 日韩在线视频1234| 精品无码一区二区| www.97在线| 清柠毛片| 天堂av2019| 大香蕉九九| 久久香蕉影院| 91九九九逼| 美女的肌被草喷水视频| 9热9热综合网| 97视频在线免费播放| 91真人天天在线| 偷拍亚洲高清图片| 久久久99999久网站| 久久久精品久久| 日韩有码回春沙龙第一页| 91亚洲欧美综合高清在线| 风月影院男女十八禁| 爱妻综合网| 日本在线15p| 久久九九精品一区二区| 大学生美女口爆| 欧美亚洲中文| 色色香蕉| www.99热| 试看福利| 无码高清操逼网址| 人人人人插| 亚洲av乱伦色图网站| 色区久久| 韩日男人的天堂| 最新精品久久蜜桃| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 国产精品青草综合久久| 久久偷拍人| 久久超碰av在线| 97在线免费视频观看| 亚洲精品国产精品成人| 欧美强奸乱| 婷婷五月天福利| 蜜臀国产AV中文字幕| 色好看av| 精品传媒在线一区| 新婚人妻扶着粗大强行坐下| 欧美制服网站美腿丝袜| 激情四射五月天| 视频二区美腿制服人妻欧美| 国产精品无码成人精品| 天美麻豆精品视频99| 久久精9| 嫩草 我啊~嗯~在线| 久久啊啊| 精品国产www久久| 亚洲 日本 一 二 三| 欧美在线 亚洲| 日韩精品午夜操呦呦不卡影院| 日本乱人伦片中文三区| 激情视频网址| 色与欲影视| 欧美大波激情xxxx| 日韩一级二级| 亚洲图片偷拍欧美| 国语国产操逼伊人AV网| 色欲人妻一区二区在线| 夜夜爽夜夜高潮夜夜爽| 青青草天天亲夜夜操网| 国产偷人妻精品一区二区在线| 精品久久久久久久| 人妻熟女午夜精品在线| 91性网| 国产精品久久久无码AV网站| 亚洲瓯美色图| 校园春色 欧美| 天堂种子在线www网资源| 91亚洲影院综合| 97超碰超碰| www.狠狠| 人人澡人人干| 久久97| 老熟乱一区二区三区四区| 国产成人欧美一区二区三区的国产| 国产女上位好爽在线| 日韩精品一二三| 偷窥自拍A片| 亚洲综合一| 一区二区三区黄色片a| 在线 亚洲 网爆 自拍| 青青五月天| 97人人射| 男人精品区| 色综合五月天| 91情色| 欧美不卡在线美女| 人人么人人操| www.99热在线只有精品| 免费精品人妻一区二区三| 亚洲少妇在线影音| 一本色道人妻久久| 人人操人人uiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii | 国产精品网站免费| 国产精品嫩草影院免费| 色臀aV| 日韩色欲久久一二三四区| 操香逼| 爽极品影院| 91爰爱欧美| 思思热影视| 亚洲色综网| A片三级无码| 亚洲欧美伦综合| 情色日播放AV| av日韩在线观看电影| 欧美一二级| 91碰碰碰| 粘花网06av视频| 韩三级a视频在线观看 | 夜夜影视四色| 9Ⅰ老熟女| 97日视频| 色噜噜狠狠色综无码久久合欧美| 襙一襙| 久偷拍| 岛国在线一区二区三区| 中文字幕人妻丝袜乱一区三区| 美女刺激久久国产欧美| 国产精品盗摄 偷窥盗摄| 精品九九淫乱男| 成片免费播放| 爽极品影院| 亚洲小说视频| 色综合 加勒比| 婷婷香蕉欧美在线一区二区三区 | 91欧美长吊| 日人妻视频91| 国产精品久久天天干| 色婷婷淫色网| 殴美,日韩国产伦精品| 一级性爱啪啪视频| 国产午夜在线观看| 亚洲色图片区| 搡老女人老91妇女熟女| 久久久久久久少妇| 99色婷婷| 久久精品高清AV| 日本成人在线不卡一区二区三区| 中文字幕在线第二页| 中文啪啪视频| 丁香五月婷婷五月| 91久久精品中文字幕| 操逼操2| 疯操AV| 绑缚麻绳人妻寝取完整版| 超碰99在线| 欧美老妇曰批的视频| 亚洲天堂男人天堂网| 热热色色综合| 日本久久综合| 国产丰满熟夫69mpp| 夜夜操狠狠操| 夜夜狼人妻| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 欧美一区二区情色| 久久天堂婷婷网| 国产精品久久久鸭无码的功能| 国内毛片国产欧美拍| 97综合久久| 伊色久人大在线| 97天天在线| 日韩视频小说在线观看| 使劲用力艹少妇视频一区二区| 蜜臀久久99精品久久久久久久久| 亚洲精品丝袜-不卡成人免费……| 强奸乱伦中文字幕AV| 日韩欧美大力操| 女性喷水高潮在线观看| 国产操逼网站亚洲一级黄色| 欧美成人免费在线观看| 欧美另类综合久久| 国产一区二区在线电影| AV 少妇 人妻 偷拍| 午夜一区| 人妻无码后入| 人妻丝袜肏逼| 91老妇女| 久操免费在线| 国产精品点击进入在线影院| AV和黑人在线播放| 插穴性爱视频在线观看| 国产小视频91| 激情六月天| 少妇 综合| 东北黄色电影| 91丝袜激情在线| 91性高| 玖玖爱伊人玖玖爱| 精品久久97观看在线视频| 超碰地址久久| 国产日韩区| 青草青草久热| 殴美,日韩国产伦精品| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 人妻人人澡人人爽人人| 火箭成精品视频884必出精品| 亚洲视频精选| 曰韩操B| 国产欧美日韩在线不卡第一页| 99热成人| 欧美中字二区| 人妻娇喘 激情视频| 亚洲一区中文精品| 亚洲精品国产精品乱码不99| 夜夜操老骚逼视频网站| 欧美影音在线| 日韩无限资源| 国产真实野战在线视频| yirendaxiangjiashipin| 台湾肥佬网一区二区三区| 精品人妻一区春色| 综合网91| 人妻精品一区二区在线| 亚洲精品欧美专业| 三级色影综合网| 国产家庭乱伦性爱视频| 亚洲精品三| 亚洲欧美另类少妇精品| 欧美宗合色| 永久免费发布性爱网| 又黄又爽在线观看视频| 色淫网站优优视频| 日本操大逼| 91N欧美| 国产午夜福利合集| 曰韩操B| 伊人五月天青青草婷婷| 国产熟女自拍| 国产 日韩 欧美高清| 中文字幕一区av| 亚洲精品一区二区免费在线观看| 成年无码动漫av片无尽在线| 国产精品亚洲一区二区三区四区| 97精品第3页| 襙一襙| 午夜天堂精品久久久久91| 欧美91精彩| 13小男生GAY自慰脱裤子| 99视频在线| 美国三级日本三级久久99| 成人午夜高潮av猛片| 九九Av| 91亚洲丝袜| 国产精品麻豆免费视频| 欧美综合加勒比在线| 亚洲男人天堂av| 国产无马av| 超碰97久| 99精品在线观看| 亚洲猛交| 大香蕉婷婷| 亚洲资源吧| 欧美一级A片在线看视频性色| 国产地址二三| 高清无码 国产精品| 国产十八禁视频| 中国操逼无码| 97视频在线视频| 亚洲一级性爱视频免费看| AV在线资源| 色天使亚洲综合在线观看| 97久久免费| 国产成人自拍视频视频| 加勒比海成人视频网| 久操com| 亚洲 欧美 综合 91| 色天使亚洲综合在线观看| 久久夜色一区二区| www.大香| 欧美天天综合网| 麻豆区99999| 人人操人人摸人人看人人插| 久草毛片| 殴美性色a级欧美| 亚洲天堂久久久久久粉红视频| 青青草原人妻| 亚洲成aⅴ人片不卡无码| s片在线观看| 日韩在线观看字幕精品| 啊啊啊草死我| 青青国产在线拍揄自揄拍| 不卡av在线中文字幕| 激情人妻另类| 香一区二区三区| 欧美日韩国产三级黄色| 999热这里只有精品| 国产精品久久发布| 久久精品国产亚洲AV无码做| 久久男人的天堂| 一区 欧美 日韩 麻豆| 8050无码八戒| 人人 操人人 操人人| 欧美日韩亚洲国产中文永久天天看| 色播综合| 亚洲 日韩 丝袜 熟女 变态| 久久亚洲AV无码白度| 色综合久久夜色精品国产天堂| 欧美成人性爱视频大全| 影音先锋每日最新资源在线观看| 9精品久久久久| 亚洲欧美setu| 又黄又爽在线观看视频 | 国产精品91ai| 久久婷婷五月综合| 日韩欧美字幕亚洲一区二区| 精品免费视频国产一区| 亚洲欧美清纯| 91日日夜夜| 后入 亚洲 美女 射| 久精品无码av一区二免费国产在线观看 | 成人AV超碰免费在线| 四虎影视国产精品| 久久久久元码视频| 日韩美女久久一区二区三区| 精品国产一区二区三区av在线资源| AV一区观看| 高清视频一区| 欧洲一区二区三区四区在线观看| 亚洲AV无码久久精品蜜桃小说| 日韩成人精品中文字幕| 欧美日本国产日韩激情视频| 人人操我人人干| 麻豆精品.欧美精品.日韩精品.| 久久久久久少妇| 美女大乳久久久久久久女人18| 欧美激情综合| 五月婷婷综合网| 国产尤物AV尤物在线观看不卡 | 很很很很操| 久草视频制服诱惑| 色一射色一射| 97网址www| 中文字幕大片三级狠狠干| 九九无码视频| 密桃99999| www.99色| 天天干一区二区| 国产原创自拍| 青青操青娱乐| 日韩精品三区四区| 欧中日成人免费影视| 97色五月天完| 精品人妻一区二区三区-国产| 亚洲男人天堂2019| 欧美久久草熟女| 91在线美女| 乱日视频| 激情欧美日韩女同久久| 天海翼久久| 91熟女.com| 欧美色图片欧美色图| 丝袜天堂网| 欧美色老汉| 久久久精选| 成人性生活高清视频在线播放| 久久久久久九九九九九| 91av熟女人妻| 人人看人人爰人人操| 亚洲第一精品在线视频| 国产成人在线观看综合| 淮穴色AV| 国产第11页| 青青草在线视频美女| 好涩综合| 亚洲精品自拍| 欧洲一级性爱视频在线观看| 色婷婷网| 99re8超碰| #NAME?| 天躁夜夜躁2021| 大香蕉一级黄色片久久| 久久久久久久久久久免费精品| 乱伦1色页| 日本午夜久久电影| 丝袜制服字幕在线| 激情视频图片| 亚洲欧洲日本精品中文a∨| 久久高清欧美国产| 97天天爽| 欧洲性人爱视频| 久久久久久久97| 少妇一区二区三区高速| 五月综合久久| 日韩精品电影| 凹凸精品熟女在线观看| 久久国内| 超碰 av 女人天堂| 一本色道久久综合精品婷婷| 亚洲第一免费视频| 九色 人妻 大香蕉| 欧美色图片色哟哟| 东北丰满熟女国产一区 | 国产综合色精品在线观看| 嫩草一区二区在线观看| 久久久久久大| 色噜噜狠狠色综无码久久合欧美| 岛国网址国产| 久久久久久久久久久久久久久乱码 | 亚洲天堂2020| 国产人妻天天干精品| 1234区中文字幕在线观看_青青草国产在线_日韩一区二区 | 加勒比综合| 国产呦精品一区二区三区下载 | 免费啪啪av| 啊好大好舒服| 久久97超碰| 免费毛片在线播放| 人妻精品一区一区三区蜜桃91| 啪啪性爱免费视频| 嗯嗯啊啊视频在线看| 久久久精| 国产成人精品无码久久| 精品国产一区二区三区久久久蜜臀| 操一对老熟妇爽上天视频| 91高清无码下载| 神马久久久久久久久久久久| 国产女大学生AV| 色婷婷激情| 久久久久久久久久久精| 亚洲熟女中文字幕在线| 夜夜免费视频| 欧美日韩性爱无码| 香蕉国产97| 性爱精品一区| rivers-china.com| 国产高潮AA片免费看| 久艹99| 中国国国产一级特黄毛片| 久久精品国产99国产精品亚洲| 思思久热在线精品66| 欧美乱色| 边做饭边操逼逼| 97大色网| 乱伦图一区| 人妻熟女一区二区| 中文字幕 国产 精品| 人乳av| 俺去俺来也在线www| 茄子社区国产精品| 中文字幕一区二区三区视频播放| 伊人宅男大香蕉| 曰韩精品九九无码 | 欧美内射少妇| 欧美大香蕉同搞| 嫩草 我啊~嗯~在线| 最近的最新的中文字幕视频| 国产精品乱码久久久久久久久| 色色婷婷五月天| 特污精品女优骚货黄色视频在线免费观看| 亚洲国男人的天堂| wwwxxx日本爽| 91亚洲丝袜熟女| 亚洲 日本 一 二 三| 综合伊人网12色| yy少妇精品久久| 六月丁香久久| 日韩激情电影中文字幕| 蜜臀一二三| 99精彩视频| 欧洲性爱无码区| 青青草久草AV| 欧美78p| 2019久久久久久久久福利| 在线观看啊啊啊啊啊| 成年女人一区| 美国日韩黄色片| 国产深喉视频一区二区| 日本大香蕉| 国产精品大香蕉| 亚洲一区在线观看欧洲| 无码精品啪啪啪一区二区三区三州| 天天插天天干| 手机在线播放国产福利| 狼人狠干| 久久精品91| 高树玛利亚无码流出| 91小视频| .精品人妻一区二区三| 噜噜噜亚洲精| 最新av在线| 91狠| 操逼逼无码| 你懂的在线观看区国产| 乱人乱色一区二区三区免费| 熟妇人妻一区二区三在线| 男人天堂久久精品| 人人插人人搞人人操| 一级AV性爱| 欧美大的香蕉有线电视视频| 久久久久921| 蜜臀AV一区二区三区激情综合| 一级免费啪啪片| 欧美aa一级片| 日韩一级久久毛片| 亲子敌伦对白在线播放| 5252色欧美在线男人的天堂| 嫩草影院永久在线制服丝袜| 黄色小说亚洲| 亚洲大色堂| 大香蕉日韩欧美| 欧美熟女逼久久久久久| 多毛小伙内射老太婆| 最新三级网址| 中文字幕av亚洲在线| 四虎在线播放| 久久97资源 网| 亚洲色图激情小说| 人妻嗯啊啊在线播放| 丰满人妻av一区二区三区 | 熟妇熟女一区二三区| 色狠狠综合| 久久鲁干| 国产精品亚洲免费| 翔田千里av一区二区三区| 高清无码 国产精品| 亚洲小电影免费涩涩成人在线高清| 2017av无码免费无线播| 欧美亚洲91| 欧美AB在线| 看全色黄大色大片免费视频| 成人怡红院| 丰满人妻一区二区三区免费| 香蕉精品二区二区| 国产区在线| 狠狠爱大香蕉| 亚洲无码精品AV久久久| 天天夜躁日日躁狠狠2002| 精品无码一区二区三区色欲| 一区二区三区美女超清| ji熟女.com| 美国一区二区三区视频| 被体育老师抱着c到高潮| 丰满人妻一区二区三区大胸懂色| 婷婷久久大香蕉| 久久思思热| 日本熟妇一区二区三区| 麻豆久久久久久久久丝袜| 大香伊人在线一区| 国产精品3| 国产97av| 无码一区免费在线不卡| 99在线无码精品秘 入口黑人| 乱伦AVxx| 大奶啊啊好爽 | 亚洲九九九| 国产精品国产亚洲区艳妇糸列| 久久受www免费人成| 色婷婷激一区二区三区 | 欧姜老司机| 玖玖爱在线视频免费观看| 国产性久久久| 九九AV| 夜夜夜久久| 91爱欧美| 亚洲色图 欧美| 日本成人A片免费看| 91chinese在线| 久艹伊人精品综合在线| 亚洲偷拍欧美激情| 亚洲天堂男人天堂| 黄骗免费| 日韩三级网址| 亚洲校园激情| 亚洲精品性爱片| 丁香五月激情五月| 欧美色自拍| 97干在线| 午夜一区| 亚精品无码毛片一区二区三区| 亚洲性高潮| 一类无码操逼视频| 亚州宗合另类| 福利天天都操| 久久久国产av美女私房| 水野优香在线观看| 精品欧美日韩在线观看| 成人无码在线视频网站| 伊人成人中文字幕久久网| 激情人妻另类| AⅤ片水多多| 国产11页| 久久精品国产亚洲粉嫩| 黄网色一区二区三区四区精品| 韩国轻伦国内自拍一区| 人人澡人人干| 99热99在线| 亭亭在线资源| 天天弄天天操| 欧美美女在线高潮999| 欧美 亚洲 第一页| 91色久| 午夜久久久| 国产精品人妻熟女aⅴ| 嗯嗯啊啊用力视频免费| 欧美精品宗合| 天天综合网国产| 亚洲一区二区AV| 任你艹| 精品日日人妻| 亚洲综合色网| 91中出视频| 人妻av在线| 在线播放欧洲免费av| 午夜福利免费精品视频| 亚洲 欧美 综合 91| 日本性爱欧美性爱| 亚洲成人妻日韩在线| 99老司机精品视频在线观看| 日韩精品9999| AA特级绝黄| 中文子幕一二三| av天堂手机版追回| 亚洲天堂电影网99999| 亚洲 欧美 手机在线观看| 人妻 欧美亚洲| 中文字幕av亚洲在线| 蜜桃午夜视频一区二区| 色五月首页| 亚洲人妻精品一区二区| 夜色五月天| 成人精品在线免费视频| 国产AV人人 夜夜人人澡| 日韩无码a片| 伊人午夜福利视频| 狠狠爱综合网| 国产综合色精品在线观看| 国产自产91区13区| 中文字幕奈奈美被公侵犯| 国产精品久久久久久夜夜夜夜| 成人性爱美曰韩| 91日产桃蜜| 免费视频在线观看啊啊啊啊啊| 亚洲码在线中文在线观看| 欧美后入视频| 女人被添高潮免费视频| 91另类| 人妻酒店出差被中出免费在线播放| 国产一区二区a毛片| 18精品一二区| 国产精品久久久蜜臀| 中文字幕中文字幕一区二区| 亚洲少妇视频| 日韩精品9999| 1024人妻| 一类av片在线看| 中文字幕成人乱码熟女精品国50| 96精品久久久久中文字幕| 综合欧美激情网| 夜色综合| 天美麻豆黄色录像| 人妻密肉在线观看| 在线观看日韩av不卡| 亲子敌伦对白在线播放| 青青草中日韩在线| 大香蕉在线视频15| 中国一区二区亚洲人妻| 91亚洲综合| 伊人久久亚洲色欲综合网站 | 极品白嫩福利在线| 日韩不卡a级视频专区| 永久电影三级在线观看| 天天综合,91入口| 东北老女人的激情视频| 五月天综合| 3P乱轮视频| 欧美天天综合网| 天天综合站| 国产AV天美| 激情99| 图片区小说区| 日本免费中文字幕在线| 亚洲人妻在线精品| 人妻娇喘 激情视频| 嗯嗯啊啊好大好爽| 久久男人网| 久操高青| 欧美亚洲综合色| 国语av最新自产拍在线观看| 在线中文字幕| 日韩兔费看黄片| 久久久久久久9999| 国产精品电| 日韩不卡网操逼中文字幕日韩| 天天操女人| 亚洲一区二区麻豆影院| 亚洲国产欧美中日韩成人综合视频| 国内毛片国产欧美拍| 亚洲欧美日韩激情不卡| 91制服丝袜| 中出20p| 玖玖爱伊人玖玖爱| 东京热大香焦| 男人的天堂无码| 99re在线精品78| 亚洲精品蜜桃久久久久久久| 91天美传媒精品| 一区二区三区日韩欧美 | 青青草中文字幕| 久久久久久久| 97视频在线看| 秋霞怕怕片| 精品人妻一区二区三区在| 亚洲图片激情小说| 久久男人天堂| 国产1024在线播放| 少妇厨房愉情理伦片bd在线观看| 88xx成人精品视频| 丰满人妻一区二区三区性色| 美女视频尤物网在线看| 国产av强奸美女| 一区操逼日比视频| 久久一级无码精品毛片6| 日韩精品黄片免费观看| 性爱精品一区| 婷婷综合激情| 小草三级久久观看| 欧美永久激情一区二区| 99re69| 色五月激情AV在线| 久久亚洲一区女同性恋中文字幕| 91亚洲图片| 欧美成人免费在线观看| 自怕偷自怕亚洲精品| 午夜影美女日鸡鸡天天视频国产| 伊人色综合网电影| 殴美,日韩国产伦精品| 91伊人大香蕉| 中出人妻中文字幕91在线| 天天夜夜rb| 波多野结衣之双飞调教在线播放 | 久99久视频精选| 超碰97男人| 日本天天干天天日一区| 久热热| 黄色片一区二区三区四区五区| 色成人Www精品永久观看| 综合色色网| 美女在线H91| 色五月激情AV在线| 亚州综合色| 性在久久久久久| 天天爽爽爽爽| 啊啊啊久久久视频| 欧美天天性| 欧美经典一区二区三区| 日韩草久视频| 精品中文一区二区| 国产成人在线观看网址| 性做久久久久久久| 国产自产91区13区| 日本精品加勒比海一区| 丰满美女一级毛片在线播放| 欧美日韩第一页| 欧美在线啊啊啊| 2017天天操| 可以免费观看的日韩av毛片| 殴美,日韩国产伦精品| 国产热av| 青娱乐欧美激情一区二区| 色色99| 欧美淫乱视频| 93人人操人人| 色鬼在线综合| 欧洲精品一级二级精品综合视频综合| 激情网色| 性生活无遮挡纯毛片在线看| 91骚熟女| 婷婷色色五月| 久草毛片| 久久久免费的精品| 欧美色日本| 亚洲欧美日韩免费观看| 超碰国产在线| 限制级中的三级片中的黑粗大屌屌日人妻熟女| 国产女s强制榨精视频| 欧美激情综合色综合啪啪五月| 日韩欧美中文字| {男男暴菊gay无套网站| 久久亚洲影院一区二区| 超碰天天去日穴| 日操粉逼逼| 久草在| 日韩性爱视频在线免费观看| 色九九九| 国产资源中文字幕在线 | 在线日韩日本亚洲国产| 亚洲国产精品久久久久久久久久| 丝袜美腿91| 黄色av片三级三级三级免费看| 91高跟美女在线播放| 在线中文字幕| 91中文精品日韩欧美在线| 亚洲欧美日韩免费观看| 精精夜夜| 色网站导航大全| 亚洲AV免费在线观看| 国产又黄又爽| 91偷拍欧美亚洲| 精品人妻一区二区三区四区石在线| 台湾佬激情综合| 伊人天天久久动态图| 内射日韩大臀美女| 一二三区操逼国产91| 男人的天堂2018.| 日韩免费av片高清无码| 9精品在线| 欧美,日韩综合久久| 是还免费视频1727我| 围产精品一区二区三区视频播放| 国产后入清纯| 中文字幕一区二区三区视频播放| 91高清欧美| 少妇二级| 久久精品国产亚洲AV高清演员表| 搞中出视频在线观看| av在线免费一区二区| 大香蕉2017| 九九九九九九九精品视频| 蜜桃久久一区二区| 白丝jkav| 中国探花熟女| 中文字幕一区二区三区50路| 日韩欧美成人大香蕉| 亚瑟国产精品久久无码| 99热国产精品| 亚洲成人av色网| 久久精品人人做人人看| 欧美第二页午夜| 狠狠色丁香| a'v在线资源| 人妻五十路在线| 九九热视频在线观看| 熟妇综合一区二区三区| 综合激情一一91| 懂色AV一区二区三区| 天天日天天搞天天干| 中文字幕第7页| 歐美一級亂黃99在綫精品| 日本丝袜人妻内射| 99在线精品视频| 白 大 人妻 区 在线| 性一交一乱一交A片久久四色| 欧美激情久操网| 国产一区二区在线播放,久久亚洲精品中文字幕第一区,亚洲精品在线中文字幕视频 | 久久久久国产精品喷潮免费观看臀 | 久久99九九九九6666免费观看软件| 亚洲。日韩。欧美| 福利伊人玖玖国产| 天天看天天日| 久久久九| 久久99手机免费视频| 亚洲人妻av| 丰满人妻一区二区三区四区| 九九久久久| 久久久久久九九九九九九| 韩国女主播青草福利视频| 美女操逼福利视频| 91视频伊人| 啊啊啊免费| 国产九九九九九九| 一区| 久无码| 青青草天天亲夜夜操网| 欧美一区二区福利在线| 五十路熟女人妻一区二区在线观看| 伊人精品国产| yazhousetuoumei| 床上啊啊啊一区二区三区| 97人人操人人摸| 国产AAAAAABBBBB| 精品人妻一区二区免费蜜桃视频| 台湾佬中文娱乐网久久久久久久久久com| 夜夜夜久久| 熟女精品一区二区三区| 中文字幕精品资源在线| 国产日逼视频| 熟妇xxxxx性春色| 国产激情视频一区区三区| 亚洲性刺激| 夫妻AV网站| 日本顶级天天操狠狠操夜夜操中文字幕| 一区二区三区网站日日骚| 超碰狠狠操| 久热伊人| 久久婷婷五月| 五月婷婷激情综合| 狠狠色婷婷777| 国产无码一二三区| AA特级绝黄| 欧美午夜一区二区三区| 操逼视频亚洲| 久久精品高清AV| 国产欧美岛国精品一区| 美女尤物人人操| 欧美丰满少妇xx高潮| 日韩亚洲中文有码视频| 最新岛国大片| 手机在线A片| 天天色天天干天天射| 午夜AV人气不卡| 亚洲成a人片在线观看中文!!!| 欧美性生活免费网| 国产女人高潮嗷嗷嗷叫小说 | 欧美日韩国产人人| 天美传媒av在线| AV色五月天| 欧美小说区视频区| 97久久超碰亚洲| 香蕉99秘 一区精品蜜桃臀| 久久久久久久| 亚洲福利影院一区久久| 久热影视| 国产精品呦一区二区三区| 凸凹视频在线观看| 亚洲操操操| 久悠悠av| baiduhicn.com。| 日韩av电影网站| 日产精品久久久一区二区| 91色香| 国产黄色在线播放观看| 日韩国产成人自拍视频| 久久女婷| 日韩av三四区| 偷拍五区| www欧美91| 国产成人超碰在线| 99久久精品无码一区二区| 亚洲日韩精品在线播放| 九九热九九热| 新精精品久久精品| 欧美少妇高潮| 人妻色偷色噜| 日韩一级成人毛片免费观看| 久久九九99| 亚洲永久AV无码精品秋霞| 97久久精品不卡| 亚洲国产精品成人久久蜜臀| 欧美日产国产在线成人第一区| 强奸a片网| 97人人爱人人做人人乐| 久男人久久| 操逼网站网站| 人、人、摸,人、人、草| 97网址www| 久久久96精品| 欧美亚洲国产91在线| 丰满人妻大屁一区二区| 亚洲AV乱码专区国产噜噜亚洲| 亚洲系列欧美| 操逼无码操逼| 五月婷婷六月丁香| 都市激情人妻一区二区青青操视频 | 欧综合网| 操高情无码| 久久久久久亚洲精品中文字幕人妻| 91国产丝袜美女| 香伊人在线| 发朗少妇买婬全视频中文| 亚洲爱爱视频一区二区| 日韩欧美性爱电影在线观看| 亚欧国产无码精品在线| 欧美精品偷拍| 亚洲色图欧美色图另类图片| 性爱乱伦一区| 国产美女激情| 亚洲欧美国产va在线播放频| 成人电影一区| 2019亚洲男人天堂| 偷拍三区| 国产自产91区13区| 久久99九九九九6666免费观看软件| 99久久婷婷丁香| 妇女视频网站| 日韩性爱啪啪视频| 天天添天天干电影| 美女91网| 久久久 国产精品| 天天综合网AV91| 蜜乳AV免费观看| 天美国产精品| 色妇综合网| 国产成人网址| 97欧美色| 日本国产欧美高清在线| 久久99草| 一区不卡在线观看av| 台湾佬中文娱乐自偷自拍| 欧美日韩中文视频播放| 久久麻豆一区二区| 九九热精品视频六| 综合网色| 国产在线激情| 9 9精品一区二区三区| 78m啪啪啪| 成人看片网站| 熟妇色99| 婷婷色一区| 99无码狠狠久久| 日韩欧美成人大香蕉| 国语对白露脸XXXXXX| 激情图片伦理国产一区二区日韩| 超碰色综合| 99久久无色码| 欧美 精品国产制服第一页| 刺激性视频黄页| 男人女人18禁片免费看网站| 婷婷五月天久久精品视频一区二区三区 | 男人天堂2030| 天美传媒av 在线| 家庭乱伦麻豆| 夜夜嗷嗷一区二区| 激情无码日韩| 97日韩欧美亚洲| 日韩有码一区三区| JIZZJIZZ亚洲女人被躁| 精品一区二区三区四区女| 中文字幕一区二区在线日韩精品| 69丨亚洲丨精品丨入口免费播放| 色综合网1| 久久东京热久久| 色婷婷综合久久久久中文一区二区 | 中文字幕一区av| 色哟哟 日韩精品| 亚洲91网站| 久操不卡视频| 99re免费| 极品后入免费视频| 精品人妻美妇91job| 超碰99re| 久久综合女优| 欧美很很操视频| 国产精品女aA片爽爽视频| 国产成人主播| 久久激情五月| 三男一女不戴套的A片| 伊人网在线视频| 久久综合婷婷| 国产精品久久久久久久久久梁医生| 精品美女少妇一区二区三区| 操屄不卡视频| 免费AV中文网在线观看| 色在线69堂| 欧苏综合色综合| 亚洲国产欧美另类自拍| 少妇的嫩逼图片| 99re在线观看| 国产精品成人在线| 亚欧毛片基地国产毛片基地 | 狠狠色综合网| 国内偷自视频区视频综合 | 920日本午夜免费| 午夜一区二区三区国产| 欧美天堂在线| 加勒比伊人综合| 97网址www| 国语对白在线播放视频| 一区在线精品中文字幕| 人妻色情天天操| 性欧美天天| 五月激情小说| 99久久e免费热视| 在线日韩精品一区二区三区| 97超碰欧美手机在线| 国产精品2020| 99热这里| 国产激情在线观看| www亚洲免费| 极品另类| 欧美97网| 九九九九97| 九九九九日本| 久久国产99精品72福利| 97啪啪| 欧美成人一级免费电影| 久久透逼视频| 亚洲欧美成人网站AAA| 91欧美www| 久久久久幕乱码| 91 综合 色| 抽插爽| 日韩精品人妻系列无码天堂| 婷婷五月天影院| 超碰人人超在线观看| 欧美黑人精品在线播放| 成人小说另类在线| 日本不卡五区| 青草成人免费视频一COm| 人妻丰满熟妇av无码区蜜桃| 超碰在97| 超碰免费欧美7| 久久精品视频一区三区小泽玛利亚| 96AV久久久| AV一二区| 超碰97在线 欧美 国产| 亚洲人在线成线成人| 久久久久精| 91精品国产综合久久久蜜臀| 亚洲 欧美 91| 男人的天堂2019AV| 一区二区三区精品黑丝白丝酒店对鸡| 久久老子无码午夜伦不卡| A片三级无码| 夜夜草网站| 97最新在线播放视频| 久久久精品成人国产| 日韩欧美经典在线观看| 91人妻Pr| 五月丁香| 日本免费不卡二区| 亚洲精品天天影视综合网 | 欧美亚州综合网图片| 久久草草亚洲蜜桃臀| 秋霞视频一区二区| 精品超碰国产| 婷婷五月天综合网| 麻豆国产尤物AV| 97午夜剧场日韩| 色婷婷蜜臀av| 青青三级视频|