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

ARTICLE DETAIL

資訊詳情

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

從梯度提升決策樹到CatBoost:類別特征、有序提升與參數(shù)調(diào)優(yōu)實(shí)戰(zhàn)

從梯度提升決策樹到CatBoost:類別特征、有序提升與參數(shù)調(diào)優(yōu)實(shí)戰(zhàn) 簡介面向具備Python與機(jī)器學(xué)習(xí)基礎(chǔ)的中高級研發(fā)人員、數(shù)據(jù)科學(xué)家這份CatBoost梯度提升決策樹技術(shù)報(bào)告聚焦分類、回歸、排序任務(wù)中的模型構(gòu)建與特征優(yōu)化系統(tǒng)展開特征工程、模型調(diào)優(yōu)、并行計(jì)算、可視化及可解釋性等高級實(shí)踐可幫助讀者高效應(yīng)對金融、醫(yī)療、教育等場景的結(jié)構(gòu)化數(shù)據(jù)建模問題。壓縮包內(nèi)含1個(gè)docx文檔包體約14KB文檔按核心概述、技術(shù)架構(gòu)、最佳實(shí)踐等模塊編排既涵蓋數(shù)據(jù)清洗、缺失值處理、特征轉(zhuǎn)換、模型定制等完整流程又通過CatBoostClassifier、CatBoostRegressor、CatBoostRanker三類基礎(chǔ)示例以及特征選擇、網(wǎng)格搜索、線程加速等進(jìn)階代碼直觀演示了從數(shù)據(jù)準(zhǔn)備到模型評估的落地路徑。報(bào)告還介紹了2026年最新特性包括訓(xùn)練速度與內(nèi)存占用優(yōu)化、Python 3.10支持及安全增強(qiáng)便于開發(fā)者在最新環(huán)境下直接應(yīng)用。已有21人學(xué)習(xí)適合希望結(jié)合pandas、scikit-learn、SHAP生態(tài)構(gòu)建端到端可解釋性機(jī)器學(xué)習(xí)管線的技術(shù)人員為實(shí)際項(xiàng)目中的參數(shù)調(diào)整與性能優(yōu)化提供清晰參考。1. 機(jī)器學(xué)習(xí)里重新評估梯度提升決策樹CatBoost 為什么值得單獨(dú)跑一遍做點(diǎn)擊率預(yù)估的時(shí)候我第一次把 CatBoost 放進(jìn)候選模型里。那批數(shù)據(jù)的類別列占了一半缺失值、字符串、高低基數(shù)混在一起。拿到同樣一份特征LightGBM 需要先做一大堆編碼預(yù)處理CatBoost 這邊卻只要把類別列名傳進(jìn) cat_features訓(xùn)練就能跑起來并且效果沒有往下掉。這種情況在梯度提升決策樹Gradient Boosting Decision TreeGBDT的模型族里不太常見。CatBoost 把兩件事做得很徹底一是類別特征的原生目標(biāo)編碼二是有序提升Ordered Boosting的防泄漏機(jī)制。前者大幅降低特征工程的手工工作后者讓訓(xùn)練過程中的預(yù)測偏差更小所以它在分類、回歸、排序三類任務(wù)上都有一席之地。這篇實(shí)戰(zhàn)筆記按照「機(jī)制 → 特征工程 → 參數(shù)調(diào)優(yōu) → 避坑」的順序把基于 CatBoost 的梯度提升決策樹模型構(gòu)建路徑完整過一遍。適合剛跑通 XGBoost 或者 LightGBM、想在真實(shí)數(shù)據(jù)上比較模型差異的從業(yè)者也適合從零接觸機(jī)器學(xué)習(xí)、需要一套能解釋原理的可復(fù)現(xiàn)方案的讀者。后面所有代碼我都按可直接粘貼到 Jupyter 或命令行腳本里的方式寫。2. CatBoost 的梯度提升決策樹機(jī)制對稱樹、有序提升與原生類別編碼2.1 對稱樹與有序提升CatBoost 在底層解決的兩個(gè)問題梯度提升決策樹的核心是每一輪擬合前一輪損失的負(fù)梯度逐步把殘差壓下來。CatBoost 沒有跳出這個(gè)框架它改動(dòng)的是兩處實(shí)現(xiàn)細(xì)節(jié)樹的結(jié)構(gòu)和梯度的計(jì)算方式。樹的結(jié)構(gòu)上CatBoost 默認(rèn)使用對稱樹oblivious trees。普通梯度提升樹在每個(gè)節(jié)點(diǎn)都可以選不同的特征和閾值而對稱樹在每一層強(qiáng)制使用同一個(gè)特征、同一個(gè)分裂閾值所有葉子共享這一層的分裂規(guī)則。代價(jià)是單棵樹的表達(dá)能力弱一點(diǎn)換來兩個(gè)實(shí)際好處一是樹的形狀固定預(yù)測時(shí)可以用數(shù)組連續(xù)存儲(chǔ)推理速度快二是結(jié)構(gòu)更規(guī)則在小樣本和高噪聲數(shù)據(jù)上不容易把局部模式記死過擬合風(fēng)險(xiǎn)低一些。實(shí)際調(diào)參時(shí)這類樹的深度通常要比 XGBoost 里深一點(diǎn)我常用的起步值是 depth6數(shù)據(jù)量大的時(shí)候試過 8。梯度的計(jì)算方式上CatBoost 做了件事叫 Ordered Boosting。經(jīng)典 GBM 在計(jì)算第 k 個(gè)樣本的梯度時(shí)用的模型已經(jīng)包含過這個(gè)樣本自身的信息這樣會(huì)產(chǎn)生預(yù)測偏移訓(xùn)練損失會(huì)比真實(shí)損失小尤其在小數(shù)據(jù)集上表現(xiàn)明顯。CatBoost 的做法是給樣本做一個(gè)隨機(jī)排列對排列中的每個(gè)位置只用該位置之前的樣本訓(xùn)練一個(gè)臨時(shí)模型再用這個(gè)模型來更新當(dāng)前樣本的梯度。這樣梯度的估計(jì)就“干凈”了不再直接依賴樣本自身的標(biāo)簽訓(xùn)練曲線和驗(yàn)證曲線也不會(huì)拉開得太難看。這兩個(gè)機(jī)制疊加再加上類別特征的 Target Statistics 編碼構(gòu)成了 CatBoost 在中小規(guī)模表格數(shù)據(jù)上比 XGBoost 和 LightGBM 更穩(wěn)的底層原因。排序任務(wù)里同一個(gè) query 下的文檔之間是有關(guān)聯(lián)的模型的穩(wěn)定性直接影響最終指標(biāo)這也是 CatBoost 在搜索排序場景被廣泛使用的原因。2.2 用 Pool 組織數(shù)據(jù)cat_features 與 text_features 的顯式聲明CatBoost 訓(xùn)練前我習(xí)慣先把數(shù)據(jù)包成 Pool 對象。Pool 的好處是讓數(shù)據(jù)集、標(biāo)簽、類別特征聲明、分組信息固定在同一份結(jié)構(gòu)里后面訓(xùn)練、驗(yàn)證、特征重要性計(jì)算都復(fù)用它不容易出現(xiàn)切分后“聲明丟失”的問題。from catboost import Pool import pandas as pd df pd.read_csv(sample.csv) X df.drop(columns[label]) y df[label] # 類別特征列字符串或整數(shù)都行但一定要顯式列出來 cat_features [channel, region, device, hour] # text_features 放文本原始內(nèi)容CatBoost 內(nèi)部自己分詞 text_features [title, description] pool Pool( X, y, cat_featurescat_features, text_featurestext_features, )這一段最關(guān)鍵的是聲明順序。cat_features 和 text_features 傳的是列名CatBoost 會(huì)自動(dòng)去 DataFrame 里找對應(yīng)的列如果你喂的是 numpy 數(shù)組就得改成傳列索引否則字符串列在內(nèi)部會(huì)被當(dāng)成類別特征以外的東西處理。另一個(gè)容易忽略的點(diǎn)是如果某一列你既沒放進(jìn) cat_features又不是純數(shù)值CatBoost 在訓(xùn)練時(shí)會(huì)直接報(bào)錯(cuò)而不是幫你自動(dòng)推斷。Pool 里還可以傳 group_id這是排序任務(wù)專用的參數(shù)。后面 4.4 節(jié)會(huì)專門講 group_id 在排序任務(wù)里的作用這里先記住一句話凡是多個(gè)樣本屬于同一個(gè) query 的排序數(shù)據(jù)group_id 必須和 Pool 綁定否則 CatBoost 找不到組邊界排序損失函數(shù)無從計(jì)算。2.3 分類、回歸、排序最小訓(xùn)練代碼從 Logloss 到 YetiRank先看分類任務(wù)。二分類最常用的損失函數(shù)是 Logloss評估指標(biāo)業(yè)務(wù)選 AUC 或者 Accuracy。下面的代碼是能跑通的最小子集from catboost import CatBoostClassifier model CatBoostClassifier( iterations500, learning_rate0.05, depth6, loss_functionLogloss, eval_metricAUC, random_seed42, verbose50, ) model.fit(pool, eval_seteval_pool, early_stopping_rounds50)iterations 是樹的數(shù)量learning_rate 是每棵樹的步長兩者要一起調(diào)。early_stopping_rounds 的作用是當(dāng) eval_set 上的指標(biāo)連續(xù) 50 輪不改善就停避免白跑后面幾百棵樹。depth 是樹的深度CatBoost 的對稱樹結(jié)構(gòu)會(huì)讓它比 XGBoost 需要更大的深度我一般從 6 起步?;貧w任務(wù)換成 CatBoostRegressor 即可損失函數(shù)默認(rèn) RMSE評估指標(biāo)可以設(shè) MAEfrom catboost import CatBoostRegressor model CatBoostRegressor( iterations800, learning_rate0.03, depth8, loss_functionRMSE, eval_metricMAE, l2_leaf_reg5, random_seed42, ) model.fit(pool, eval_seteval_pool, early_stopping_rounds80)排序任務(wù)略有不同。需要給數(shù)據(jù)集引入 group_id表示哪些樣本屬于同一次搜索會(huì)話或者同一個(gè)請求。CatBoost 提供 CatBoostRanker 和 YetiRank 損失函數(shù)我一般這樣寫from catboost import CatBoostRanker, Pool # group_id 和 X、y 長度必須一致 pool Pool( X_train, y_train, group_idtrain_group_ids, cat_featurescat_features, ) model CatBoostRanker( iterations1000, learning_rate0.05, depth6, loss_functionYetiRank, eval_metricPFound, random_seed42, ) model.fit(pool, eval_seteval_pool, early_stopping_rounds100)排序任務(wù)的 y 一般是相關(guān)性分級數(shù)值越大越相關(guān)。group_id 決定了 CatBoost 在哪個(gè)范圍內(nèi)構(gòu)造文檔對如果 group_id 傳錯(cuò)模型會(huì)拿不同 query 的文檔互相比較指標(biāo)會(huì)變得毫無意義。3. 特征工程實(shí)戰(zhàn)類別特征、文本特征與交叉特征的構(gòu)造策略3.1 把類別列交給 cat_features為什么不需要獨(dú)熱編碼很多從 XGBoost 轉(zhuǎn)過來的人第一反應(yīng)是給類別列做 Label Encoding 或者 One-Hot Encoding。在 CatBoost 里這一步多數(shù)時(shí)候是多余的。CatBoost 對類別特征用的是目標(biāo)統(tǒng)計(jì)編碼直接用標(biāo)簽信息去估計(jì)每個(gè)類別對應(yīng)的目標(biāo)均值再通過一個(gè)平滑參數(shù)向全局先驗(yàn)收縮。類別出現(xiàn)次數(shù)少時(shí)編碼值會(huì)靠近全局均值不容易把低頻類別的噪聲放大。One-Hot 只在類別數(shù)特別少時(shí)由 CatBoost 自己處理由 one_hot_max_size 參數(shù)控制默認(rèn)值是 2。也就是說只有兩個(gè)類別的列才會(huì)走獨(dú)熱其他類別列默認(rèn)交給目標(biāo)統(tǒng)計(jì)不需要你手工干預(yù)。# 對比不傳 cat_features字符串列會(huì)報(bào)錯(cuò) # 傳了 cat_featuresCatBoost 內(nèi)部自動(dòng)完成目標(biāo)統(tǒng)計(jì)編碼。 pool Pool(X, y, cat_features[channel, region])實(shí)際使用中類別列可以保持原始字符串也可以預(yù)先轉(zhuǎn)成整數(shù)兩者效果幾乎一樣。但有一點(diǎn)要注意如果你把類別列提前做成了整數(shù)又忘了傳給 cat_features它會(huì)被當(dāng)成數(shù)值特征做連續(xù)分裂模型會(huì)按大小去切割編號(hào)這在語義上是完全錯(cuò)誤的。所以只要類別列進(jìn)入 CatBoost無論原本是什么類型都要顯式聲明。另外目標(biāo)統(tǒng)計(jì)編碼會(huì)把類別列轉(zhuǎn)換成連續(xù)值參與分裂特征重要性報(bào)告里看到的也是編碼后的貢獻(xiàn)度而不是原始類別的貢獻(xiàn)度。這一點(diǎn)在向業(yè)務(wù)解釋模型時(shí)要特別說明否則容易出現(xiàn)“你們模型把渠道號(hào)當(dāng)成數(shù)值用了”這種誤會(huì)。3.2 文本特征與自動(dòng)分詞原始字符串直接進(jìn)模型CatBoost 另一個(gè)不太被注意的能力是原生文本特征支持。你在 Pool 里聲明 text_features 后模型內(nèi)部會(huì)按默認(rèn)的分詞規(guī)則把字符串切成詞再統(tǒng)計(jì)詞頻或者構(gòu)造 n-gram 特征不需要你自己調(diào)分詞器。對于標(biāo)題、描述這類短文本這個(gè)能力非常實(shí)用。text_features [title, brief] pool Pool(X, y, cat_featurescat_features, text_featurestext_features)默認(rèn)分詞對英文是按空白切分對中文會(huì)按字符切分效果能用于基線但達(dá)不到精心調(diào)過分詞器的水平。如果做搜索、內(nèi)容理解這類文本權(quán)重高的任務(wù)我更傾向先在外部做切詞把切詞結(jié)果用空格拼回去再喂給 CatBoost因?yàn)檫@樣模型能拿到更穩(wěn)定的語義單元。文本特征參與訓(xùn)練后模型大小會(huì)明顯膨脹。因?yàn)?CatBoost 需要為文本詞表建字典哈希表詞表一大特征維度跟著上去。我遇到過文本特征加入后模型文件體積翻倍的情況所以文本特征一般只用于文本字段特別關(guān)鍵的場景普通表格數(shù)據(jù)里沒必要硬塞。特征重要性輸出時(shí)一個(gè) text_features 列會(huì)被展開成內(nèi)部多個(gè) bag-of-words 特征。換句話說模型報(bào)告的特征數(shù)量會(huì)大于你輸入的原始列數(shù)。做特征篩選前要對這個(gè)變化有預(yù)期。3.3 構(gòu)造業(yè)務(wù)特征與交叉特征降低模型學(xué)習(xí)成本的兩條路盡管 CatBoost 能原生處理類別和文本手工特征工程依然有效。核心思路有兩條一條是把業(yè)務(wù)規(guī)則組合成密度更高的特征另一條是主動(dòng)構(gòu)造交叉特征讓模型不用在很深的樹里才能發(fā)現(xiàn)兩個(gè)字段的關(guān)聯(lián)。# 時(shí)間特征拆出小時(shí)再做渠道 x 小時(shí)的交叉 df[hour] pd.to_datetime(df[time]).dt.hour df[channel_hour] df[channel].astype(str) _ df[hour].astype(str) # 業(yè)務(wù)比率特征替代兩個(gè)原始數(shù)值列的除法關(guān)系 df[amount_per_item] df[amount] / (df[item_count] 1e-6) # 用戶歷史行為的統(tǒng)計(jì)特征注意只在訓(xùn)練集上計(jì)算 df[user_hist_mean] df.groupby(user_id)[target_appr].transform(mean)這個(gè)代碼塊里最容易出問題的是最后一行。如果直接對全量數(shù)據(jù)做 groupby transform驗(yàn)證集和測試集的目標(biāo)信息會(huì)混進(jìn)特征造成目標(biāo)泄漏。正確做法是先切分出訓(xùn)練集在訓(xùn)練集內(nèi)部做統(tǒng)計(jì)再把統(tǒng)計(jì)結(jié)果映射回驗(yàn)證集和測試集。我自己的慣例是先建立 fold 劃分再對每個(gè) fold 單獨(dú)構(gòu)造這類統(tǒng)計(jì)特征。交叉特征不是越多越好?;鶖?shù)高的類別互相交叉會(huì)產(chǎn)生大量稀疏的類別組合目標(biāo)統(tǒng)計(jì)編碼會(huì)因?yàn)闃颖玖坎蛔愣兊貌环€(wěn)定。遇到這種情況我會(huì)用模型的特征重要性先跑一輪把貢獻(xiàn)度很低的人工交叉特征刪掉同時(shí)觀察是否有比原始兩個(gè)特征更高的增量沒有就撤掉。3.4 特征重要性評估與篩選用 get_feature_importance 決定取舍特征工程做完不要急著堆參。先用特征重要性做一輪減法通常能省下不少訓(xùn)練時(shí)間。CatBoost 提供 get_feature_importance 方法默認(rèn)返回每個(gè)特征對預(yù)測的平均貢獻(xiàn)度。importance model.get_feature_importance(pool) feature_names pool.get_feature_names() # 按重要性排序打印前 20 個(gè)特征 ranking sorted(zip(feature_names, importance), keylambda x: x[1], reverseTrue) for name, score in ranking[:20]: print(f{name}: {score:.4f})PredictionValuesChange 是默認(rèn)的重要性指標(biāo)反映特征取值改變時(shí)預(yù)測值平均變化多少。還有一個(gè) LossFunctionChange 類型它衡量刪除該特征后損失函數(shù)的惡化程度計(jì)算成本更高但對特征選擇的參考價(jià)值更直接??梢杂?type 參數(shù)切換model.get_feature_importance(pool, typeLossFunctionChange)。篩選特征時(shí)我一般保留累積貢獻(xiàn)達(dá)到百分之九十幾的那一批丟掉尾部長尾特征。CatBoost 對冗余特征不太敏感去掉一部分也不會(huì)讓指標(biāo)明顯下降但能縮短訓(xùn)練時(shí)間和模型體積。SHAP 值在核對特征方向時(shí)更有用。后面第 6 章會(huì)演示如何用 SHAP 值驗(yàn)證特征和業(yè)務(wù)直覺是否一致這一章先記住一個(gè)原則特征重要性是排序參考不是因果證據(jù)別只看排名就下結(jié)論。4. 分類、回歸、排序任務(wù)的模型優(yōu)化損失函數(shù)與參數(shù)配合4.1 學(xué)習(xí)率、迭代次數(shù)與 l2_leaf_reg三個(gè)參數(shù)的內(nèi)外關(guān)系CatBoost 的參數(shù)多但真正在分類、回歸、排序任務(wù)里起決定作用的參數(shù)是同一組learning_rate、iterations、depth、l2_leaf_reg。其他參數(shù)多數(shù)是錦上添花這組參數(shù)先定下來模型就穩(wěn)了一半。learning_rate 和 iterations 是一對。學(xué)習(xí)率越小每棵樹的修正量越小就需要越多的樹才能擬合到同樣程度。常見做法是先定一個(gè)偏小的學(xué)習(xí)率比如 0.03再用早停找到合適的迭代次數(shù)。反過來如果學(xué)習(xí)率設(shè)成 0.3迭代 500 次很容易過擬合這時(shí)候把 iterations 降到 100 也可能夠用。我習(xí)慣先跑小學(xué)習(xí)率加早停拿到 baseline 再去對比性能與訓(xùn)練時(shí)間的取舍。depth 影響樹結(jié)構(gòu)的復(fù)雜度。對稱樹因?yàn)橥粚訌?qiáng)制共用分裂表達(dá)能力弱于普通二叉樹所以需要更深。數(shù)據(jù)量大、特征多的時(shí)候depth8 甚至 10 都試過配合 l2_leaf_reg 一起控制。l2_leaf_reg 是葉節(jié)點(diǎn)權(quán)重的 L2 正則項(xiàng)默認(rèn) 3數(shù)據(jù)噪聲大時(shí)調(diào)到 5 到 10能明顯拉低方差。一個(gè)容易踩的坑是把這些參數(shù)單獨(dú)調(diào)忽略它們的相互作用。比如 depth 從 6 提到 8樹的容量變大l2_leaf_reg 如果不一起上調(diào)模型很可能過擬合。我現(xiàn)在的流程是先固定 learning_rate 和 iterations然后用網(wǎng)格搜索同時(shí)掃 depth 和 l2_leaf_reg這樣比逐個(gè)參數(shù)單獨(dú)調(diào)省事得多。4.2 分類任務(wù)調(diào)優(yōu)Logloss、AUC 與樣本不平衡處理二分類任務(wù)損失函數(shù)默認(rèn) Logloss評估指標(biāo)一般看 AUC。這里有個(gè)微妙之處Logloss 關(guān)心的是概率校準(zhǔn)質(zhì)量AUC 關(guān)心的是排序能力兩者不是一回事。同一個(gè)模型 Logloss 降不下來但 AUC 高說明排序正確但概率值整體偏移這時(shí)可以考慮在輸出端做溫度縮放而不是改模型參數(shù)。樣本不平衡時(shí)CatBoost 提供了 auto_class_weights 參數(shù)。設(shè)成 Balanced 會(huì)把少數(shù)類的權(quán)重按樣本量反比放大默認(rèn)是 None。我在正負(fù)樣本比超過 1:10 時(shí)一般會(huì)開啟同時(shí)觀察 Precision-Recall 曲線而不是只看 AUC。from catboost import CatBoostClassifier model CatBoostClassifier( iterations500, learning_rate0.05, loss_functionLogloss, eval_metricAUC, auto_class_weightsBalanced, random_seed42, verbose50, )使用 Balanced 后訓(xùn)練集上的 Logloss 會(huì)發(fā)生偏移因?yàn)檫M(jìn)入損失函數(shù)的樣本權(quán)重變了。這時(shí)候不要把 train 的 Logloss 和 eval_set 的 Logloss 直接對比只關(guān)心 eval_metric 的走勢即可。多分類任務(wù)同理用 MultiClass 損失函數(shù)auto_class_weights 在多分類上依然有效。類別數(shù)很多的分類任務(wù)比如幾十個(gè)類別iterations 會(huì)比二分類更高因?yàn)槊恳惠喣苄拚姆较蚋稚?。我常?1000 起步配 0.03 的學(xué)習(xí)率讓早停來決定最終輪數(shù)。4.3 回歸任務(wù)調(diào)優(yōu)RMSE、MAE 與 Quantile 的選擇回歸任務(wù)的損失函數(shù)選擇本質(zhì)取決于你對異常值的容忍度。RMSE 會(huì)被大誤差樣本主導(dǎo)如果你的業(yè)務(wù)對極端誤差敏感比如價(jià)格預(yù)測少數(shù)偏差很大的樣本會(huì)顯著拉高損失MAE 更穩(wěn)健但它對梯度方向不敏感訓(xùn)練時(shí)收斂慢一點(diǎn)。實(shí)際使用時(shí)我會(huì)先看標(biāo)簽分布。長尾嚴(yán)重的標(biāo)簽比如收入、成交量這類直接預(yù)測均值往往被少數(shù)大值帶偏。更好的做法是預(yù)測對數(shù)后用 exp 還原或者改用 Quantile 損失函數(shù)預(yù)測特定分位點(diǎn)。from catboost import CatBoostRegressor model CatBoostRegressor( iterations800, learning_rate0.03, depth6, loss_functionQuantile:alpha0.5, eval_metricMAE, random_seed42, )Quantile 損失通過 alpha 參數(shù)指定分位數(shù)alpha0.5 時(shí)等價(jià)于 MAE 的中位數(shù)回歸。在某些業(yè)務(wù)里預(yù)測中位數(shù)比預(yù)測均值更符合運(yùn)營需求比如庫存準(zhǔn)備要考慮需求波動(dòng)的分位數(shù)而不是均值。這時(shí)可以把 alpha 調(diào)到 0.7 或 0.9直接輸出偏保守的上限估計(jì)?;貧w任務(wù)的 eval_metric 和 loss_function 可以不同比如用 RMSE 訓(xùn)練、用 MAE 做早停判斷這樣可以避免模型被大誤差樣本過度牽著走。只要保證 eval_metric 是可比較的指標(biāo)就行不需要和損失函數(shù)完全一致。4.4 排序任務(wù)調(diào)優(yōu)group_id、YetiRank 與 PFound排序任務(wù)的輸入結(jié)構(gòu)和分類回歸完全不同。一組樣本屬于一個(gè) query模型的任務(wù)是對組內(nèi)樣本排出正確順序。CatBoost 里這個(gè)組信息通過 group_id 傳入訓(xùn)練和評估都必須保證組的完整性。損失函數(shù)方面YetiRank 是 CatBoost 較推薦的排序損失。它在每輪迭代中構(gòu)造文檔對用近似排序的梯度和權(quán)重更新模型對噪聲數(shù)據(jù)更穩(wěn)健。另一個(gè)可選的是 PairLogitPairwise它在構(gòu)造配對時(shí)更嚴(yán)格數(shù)據(jù)量足夠大時(shí)效果也不錯(cuò)。我的經(jīng)驗(yàn)是數(shù)據(jù)量小優(yōu)先 YetiRank數(shù)據(jù)量大且排序文檔數(shù)集中時(shí)再對比 PairLogitPairwise。from catboost import CatBoostRanker model CatBoostRanker( iterations1000, learning_rate0.05, depth6, loss_functionYetiRank, eval_metricNDCG:top10, random_seed42, )評估指標(biāo)上NDCGtop 和 PFound 是兩種常見選擇。NDCG 位置折扣更重PFound 模擬用戶逐條瀏覽的終止概率。做搜索排序我用 NDCG10 比較多做信息流推薦則用 PFound 更貼近真實(shí)用戶行為。排序訓(xùn)練對數(shù)據(jù)質(zhì)量的要求更高。相關(guān)性標(biāo)錯(cuò)一兩個(gè)文檔產(chǎn)生的壞配對可能拖累整個(gè) query 的梯度。所以排序任務(wù)上線前一定要做標(biāo)注一致性校驗(yàn)比如對同一 query 的兩個(gè)標(biāo)注版本計(jì)算標(biāo)注員的 Kappa 系數(shù)分?jǐn)?shù)太低時(shí)先別急著訓(xùn)模型。4.5 用早停與交叉驗(yàn)證收尾調(diào)參避免無謂的反復(fù)訓(xùn)練參數(shù)調(diào)優(yōu)的最后一步我建議用 early_stopping 加交叉驗(yàn)證來收尾而不是手動(dòng)一次一次跑完整訓(xùn)練。from catboost import cv params { iterations: 1000, learning_rate: 0.03, depth: 6, loss_function: Logloss, eval_metric: AUC, random_seed: 42, } cv_results cv( pool, params, fold_count5, stratifiedTrue, early_stopping_rounds100, verboseFalse, )cv 函數(shù)會(huì)在 fold 內(nèi)部自動(dòng)完成訓(xùn)練和驗(yàn)證返回每一輪的平均指標(biāo)幫你判斷當(dāng)前參數(shù)組合在數(shù)據(jù)上的泛化能力。分類任務(wù)記得開 stratifiedTrue保證每個(gè) fold 里正負(fù)樣本比例一致。排序任務(wù)不能直接分層切分要按 group_id 分組再切 fold這一點(diǎn)在下一章會(huì)展開。早停輪數(shù)通常和學(xué)習(xí)率掛鉤。學(xué)習(xí)率小早停閾值也要放寬否則會(huì)在訓(xùn)練曲線還沒走穩(wěn)時(shí)就提前停掉。我一般的經(jīng)驗(yàn)是 learning_rate0.03 時(shí)early_stopping_rounds 取 100learning_rate0.1 以上取 50 足夠。5. CatBoost 常見問題與避坑指南泄漏、過擬合與排序數(shù)據(jù)切分的五個(gè)坑5.1 特征構(gòu)造階段的目標(biāo)泄漏訓(xùn)練分?jǐn)?shù)高得離譜先別高興現(xiàn)象模型在訓(xùn)練集上 AUC 達(dá)到 0.98驗(yàn)證集卻只有 0.72兩者差距大得反常。原因特征工程時(shí)把包含目標(biāo)信息的統(tǒng)計(jì)量誤當(dāng)成了特征。最常見的是用 groupby 構(gòu)造用戶歷史均值時(shí)不小心把驗(yàn)證集和測試集的數(shù)據(jù)也統(tǒng)計(jì)進(jìn)去了或者把去重后的標(biāo)簽列直接當(dāng)作特征傳入。解決所有涉及目標(biāo)變量的統(tǒng)計(jì)特征一律只在訓(xùn)練折內(nèi)部計(jì)算。先劃分 fold再用 transform 或 map 把統(tǒng)計(jì)結(jié)果映射到對應(yīng)折的驗(yàn)證集。更保險(xiǎn)的做法是給這類特征取一個(gè)名字訓(xùn)練完立刻檢查特征重要性的排名如果用戶 ID 或者行為均值排在最前面說明大概率泄漏了。5.2 沒有 eval_set 的過擬合訓(xùn)練誤差一直在降驗(yàn)證指標(biāo)卻停滯現(xiàn)象iterations 設(shè)了 2000訓(xùn)練曲線一路下探驗(yàn)證集指標(biāo)從第 400 輪開始就不動(dòng)了甚至緩慢下降最終提交的模型效果不升反降。原因沒傳 eval_set也沒設(shè) early_stopping_rounds模型一直訓(xùn)練到最后把噪聲也學(xué)進(jìn)去了。CatBoost 的迭代式訓(xùn)練會(huì)讓訓(xùn)練損失單調(diào)下降但泛化能力在某個(gè)點(diǎn)后開始惡化這個(gè)拐點(diǎn)只能靠驗(yàn)證集捕捉。解決每次訓(xùn)練前必須保留一份獨(dú)立的驗(yàn)證集傳入 eval_set同時(shí)設(shè)置 early_stopping_rounds。訓(xùn)練結(jié)束后用 get_best_iteration() 拿到最佳輪數(shù)再用 shrink 把模型修剪到該輪數(shù)后續(xù)預(yù)測和保存都用修剪后的模型。5.3 忘記顯式聲明 cat_features字符串列直接報(bào)錯(cuò)現(xiàn)象輸入是帶字符串的數(shù)據(jù)集訓(xùn)練時(shí) CatBoost 直接報(bào) Invalid cat_features 錯(cuò)誤或者你把類別列轉(zhuǎn)成了整數(shù)但沒聲明模型不報(bào)錯(cuò)只是把這些編號(hào)當(dāng)成連續(xù)值進(jìn)行分裂效果莫名其妙地差。原因CatBoost 對字符串列要求必須顯式聲明為類別特征否則無法區(qū)分它是文本內(nèi)容還是類別。數(shù)值編碼的類別列更隱蔽CatBoost 默認(rèn)全部按數(shù)值特征處理只有在顯式聲明后才知道它們是類別。解決在 Pool 或 fit 調(diào)用里始終顯式傳 cat_features 參數(shù)。從 DataFrame 切換成 numpy 數(shù)組時(shí)要特別注意列名會(huì)丟失必須改傳列索引。我習(xí)慣在訓(xùn)練前打印 pool.get_cat_feature_indices() 抽查一遍避免聲明錯(cuò)位。5.4 排序任務(wù)切分不當(dāng)group_id 被隨機(jī)洗牌打散現(xiàn)象排序模型訓(xùn)練時(shí)不報(bào)錯(cuò)但 NDCG 評估結(jié)果明顯偏低查看預(yù)測結(jié)果發(fā)現(xiàn)同一個(gè) query 下面的文檔順序和標(biāo)注幾乎對不上。原因用 sklearn 的 train_test_split 直接按行切分同一 query 的文檔被隨機(jī)分到了訓(xùn)練集和驗(yàn)證集兩邊。訓(xùn)練時(shí)模型看到同一組 query 的部分文檔甚至可能記住了 query 內(nèi)部的標(biāo)注傾向驗(yàn)證集評估失去意義。解決切分必須按 group_id 粒度進(jìn)行先對 query 集合切分再通過 isin 篩選出對應(yīng)樣本。import numpy as np unique_groups np.unique(df[query_id].values) val_groups set(unique_groups[: int(len(unique_groups) * 0.2)]) train_mask ~df[query_id].isin(val_groups) val_mask df[query_id].isin(val_groups)這樣的切分保證同一個(gè) query 的文檔全部在訓(xùn)練側(cè)或全部在驗(yàn)證側(cè)排序評估才有意義。5.5 忽略模型文件大小與單次推理耗時(shí)上線階段才發(fā)現(xiàn)的意外現(xiàn)象離線調(diào)參時(shí)指標(biāo)很滿意上線前發(fā)現(xiàn)模型文件很大單次預(yù)測延遲超過接口耗時(shí)預(yù)算或者內(nèi)存占用過高導(dǎo)致服務(wù)分配不下。原因iterations 和 depth 設(shè)置過大文本特征又引入了大量內(nèi)部詞表模型體積被成倍放大。CatBoost 的對稱樹推理比普通 GBDT 快但樹的棵樹成倍擴(kuò)展后延遲依然會(huì)超預(yù)算。解決訓(xùn)練結(jié)束后用 shrink 修剪到 best_iteration先把冗余輪數(shù)去掉。如果仍然太大檢查 text_features 是否必要文本詞表往往是體積膨脹的主因。再不行就降 depth配合提高 l2_leaf_reg 補(bǔ)回泛化能力。上線前做一次壓測確認(rèn) P99 延遲滿足要求再發(fā)布。6. 模型優(yōu)化的最后閉環(huán)預(yù)測分布回測與模型瘦身技巧6.1 用 SHAP 與特征重要性核對業(yè)務(wù)假設(shè)模型調(diào)完參數(shù)后我會(huì)做一次特征歸因的回讀確認(rèn)模型學(xué)到的邏輯和業(yè)務(wù)直覺一致。CatBoost 可以直接輸出 SHAP 值不需要額外裝庫。shap_values model.get_feature_importance(pool, typeShapValues) # 返回維度為 [樣本數(shù), 特征數(shù) 1]最后一列是基線值 shap_importance np.abs(shap_values[:, :-1]).mean(axis0)拿到 SHAP 值后我重點(diǎn)關(guān)注兩件事一是頭部特征是否和業(yè)務(wù)方判斷一致如果業(yè)務(wù)認(rèn)為價(jià)格最重要模型卻把某個(gè) ID 類特征排第一就要警惕泄漏二是看看高 SHAP 值對應(yīng)的樣本手工檢查幾條確認(rèn)預(yù)測沒有反業(yè)務(wù)常識(shí)。特征重要性只告訴你“哪個(gè)特征有用”SHAP 值還能告訴你“特征往哪個(gè)方向推高預(yù)測”。這一步雖然不做進(jìn)訓(xùn)練流程但對上線前的風(fēng)險(xiǎn)評估很有價(jià)值。6.2 模型瘦身與上線前的驗(yàn)證習(xí)慣上線前我最后一個(gè)動(dòng)作是把模型修剪到最佳輪數(shù)并做一次端到端預(yù)測驗(yàn)證。best_iter model.get_best_iteration() model.shrink(best_iter) model.save_model(final_model.cbm) # 加載后做小批量預(yù)測確認(rèn)輸入輸出格式 loaded CatBoostClassifier() loaded.load_model(final_model.cbm) pred loaded.predict(X_test[:100])我習(xí)慣在這里同時(shí)記錄三樣?xùn)|西訓(xùn)練時(shí)的評估指標(biāo)、特征重要性 Top10、模型文件大小。下次迭代時(shí)先對比這三樣如果指標(biāo)漲了但模型體積翻倍就要考慮是不是文本特征或者迭代輪數(shù)膨脹帶來的副作用?,F(xiàn)在做新任務(wù)時(shí)我總會(huì)先跑一個(gè)小參數(shù)的完整流程確認(rèn)特征和評估指標(biāo)都合理再放大 iterations 和 depth。這個(gè)習(xí)慣幫我避開了無數(shù)次“訓(xùn)練跑了一整晚結(jié)果發(fā)現(xiàn)特征泄漏”的翻車。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美精品宗合| 高潮嗯啊性感美女久久久| av网站在线看| 欧美人妻少妇| 久久精品国产99久久,亚洲日韩久久日本一区一区三区 | 大香蕉五月天| 国产aⅴ无码片毛片一级网站| 91丰满| 美女91色黄18| 欧美性生活内射| 成人看片网站| 九九综合| 91xingse| 超碰亚洲97| 竹菊影视国产一区二区| 十八禁av无码免费网站APP| 密臀在线一区尤物| 国产熟女无套内射| 秋霞怕怕片| 96超碰网| 欧洲性爱无码区| 91黄站| 人妻激情视频| 18+91网站| 97超碰公开| 神马九九九| 国产91精品久久久久久久网曝门| 老女人爆菊| ,国产乱人伦精品一区二区三区| 一区二区三区欧美激情| 亚欧性爱ab| 午夜福利在线合集| 又大又白奶子| 欧美久久毛片基地| 欧美 日韩 另类 亚洲| 性老妇一区二区三区| 熟女自慰久久久| 亚洲宗合电影| 99国产精品久久久久久久成人热| 香蕉久久精品| 亚洲十八禁止| 黄页网站成人免费| 男人天堂2030| 少妇一区二区三区精选| 亚洲一级性爱视频免费看| a片在线播放| 精品久久久久久无码| A一区片| 99国产在线 精品 视频| 韩国一区二区精品亚洲| 天天天天天天天天综合| 亚洲综合校园春色| 东京热天堂网| 天堂俺去俺来也www久久婷婷| 园内精品自拍视频在线播放| av国产无码| 婷婷五月天小说| 色噜噜综合在线| 开心六月色| 智利AV在线网| 在线日韩精品一区二区三区| 天天操夜夜嗨| 欧美精品另类人妖xxxx| 色综合99999| 这里只有97精品| 中国一级αV| 亚洲自拍天堂| 青草青青久久久久久国产| 久久水蜜臀亚洲AV无码精品| 男人的天堂com| 国产日韩精品suv| 日逼视频日本| 中文字幕av色| 97se亚洲| 国产AV久久野战精品| 91久热| 久久久久密臀视频| 成人怡红院| 日韩激情啪啪啪| 五月丁香| 死我十八禁| a级免费在线观看| 久久草在线综合视频| 第四色色综合91| 天天综合网在线91| 亚洲黄网在哪免费看| 亚洲成人一二三区| 2024年最新色情网站在线观看| 欧美日韩香蕉| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 欧美极品性爱天天射| 日韩操人| 国产美女91| 精品少妇人妻av久久免费| 九九毛片这里只有精品| 青草伊人网| 在线观看成人性爱免费小视频| 97福利视频| 欧美丝袜美女电影一二三四区| 可以免费看黄片的视频| 日韩亚洲美州欧洲综三区一品在线| 亚州高清av| 黄色操人| 激情视频一二三| 边做饭边操逼逼| 大香蕉啪啪网| 少妇无码999| 国产免费一区在线观看| 久久久久久久9最新免费视频观看| 波多野42部无码喷潮在线观看| 一区二区偷拍拍视频| 激情文学亚洲| 99免费在线视频| 国产一区二区在线看| 日韩视频啪啪| 88在线一区二区三区| 免费簧片在线观看| 偷拍新久久| 亚洲无码一区二区三区三州| 伊人久日| 日韩精品一二三四| 明星性猛交ⅹxxx乱大交| 大香蕉综合久久| 黑操B| 男人的天堂com| 日本福利二区视频| 五月婷亚洲精品天堂| 色999人与兽| 亚洲不卡三级手机播放| 91超碰碰在线| 国产一区二区三区精品观看啪| 丰满人妻一区二区中文| 激情一区二区三区在线观看| 人人操人人爽人人操人人| 日韩一999精品| 天天插夜夜操| 大香蕉草草| 五月婷婷综合激情| 成人一道本免费视频| 麻豆一区在线| 中文字幕 码 自拍 视频 区| AV污污污污| 天天干1区2区在线| 800zy一区二区| 日本一区二区三区四区免费观看| 日韩9区| 亚洲综合码| 成人亚欧免费视频| 欧美一级二级三级| 国产二区三区粉嫩在线| 少妇超碰在线| 一本一道波多野毛片中文在线| 九九av| 日本免费中文一区二区三区四区| 老司机天天操| 精品午夜福利| asc国产精品| 亚洲情色电影网| 成年人黄色小视频网站| 变态综合色| 久久中出在线| 澳门人妻久久| 久久精品美女一区| 日韩性爱再线视频| 亚洲一区中文精品| 久久久久久久久9| 久久只有精品一区二区三区| 日韩AV中文字幕电影| 黄色性爱网网| 欧美性爱1080p| 天美精品原创av片国产| 快播电影网日韩新片| 亚洲中文字幕有码视频一区二区三区| 国产精品视频精品一二| 色情五月丁香| 操高情无码| 蜜桃狠狠色伊人亚洲综合网站| 久久99深爱久久99精品| 操逼内射干逼白丝91| 日韩成人电影AV| 在线免费观看日韩一区| 亚洲熟女性高潮久久久| 特级特黄一级毛片免费| 3PAV乱伦视频| 亚洲欧美伦综合| 超碰在线综合97| 九区国产| 激情小说亚洲图片| 伊人久久久日韩一区| 久久大香蕉手机高清视频| 国模精品娜娜一二三区| 在线一道啪| 啪啪啪东京| 成人毛片免费| 人人妻碰人人免费| 久久精品日韩| 一起草欧美| 午夜福利一区二区影院| 成全动漫视频观看免费下载| 亚洲巨爆乳一区二区三区四季网| 久久78| 中欧人妻丝袜中文字幕| 欧美一区二区三区不卡高清视频| 日本一级特级毛片视频| 搞中出久久| 天天干天天燥| 亚洲欧洲精品视频发布| 91小视频| 任你爽视频| 人人操AV| 亚洲欧美一区二区三区在钱蜜桃 | 超碰97玖玖爱| 区一二区日韩亚洲乱码av电影| 爱爱动态120秒| 六月婷激情福利天堂69| 免费99精品国产自在在线| 日韩精品操少妇| 青青草字幕AV| 骚日日av| 东京热男人天堂| 亚洲一区二区三区婷婷| 香蕉国产精品麻豆亚洲欧美日韩| 中文字幕中文字幕一区二区| 国产超碰人人爽人人做| www.色婷婷| 夜夜操91744565| 大香蕉在线视频重口味毛片在线| 亚洲精品不卡一二三区| 欧美亚洲手机在线| 久久综合九色综合欧洲98| 韩国手机不卡无码三级视频| 再深点灬舒服灬太大了好硬好爽| 理论久久婷婷网 8| 加勒比人妻综合| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 日韩美女高潮喷水视频| 激情小说激情视频| 香蕉国产精品麻豆亚洲欧美日韩| 操逼不卡中文字幕| 美女超碰978| 国产丝袜美腿美女麻豆| 999热日韩精品| 欧美高清色| 久久精品国产99精品亚洲蜜...| 青青操综合网| 日本福利社| 在线黄色污污网站| 人人操,人人液| 芊芊操逼视频无码| 亚洲色欲一区二区三区| 蜜臀久久久99久久久久 | a级免费在线观看| 老熟女乱子伦中文字幕一区二区| 超碰久久中文| 成人夜夜| 影音先锋每日最新资源在线观看| 国产乱伦性爱AV| 亚州日韩97| 蜜桃臀一区二区aV| TS人妖另类精品视频系列| 国产AV毛片| 国产精品乱人伊人网| 九九九九九九九| 人人人摸人人| 亚洲色图在线视频| 蜜臀va69| 欧美亚洲| 久久999久| 久久超碰97| 91天堂色男人的天堂| 日日干日日操五月天伦理视频| 亚欧美色图| 色屁屁影院www国产| 久久女婷| 亚洲色图 91| 巨爆乳一区二区爆乳区| 老熟妇一区二区三区啪啪| 亚洲综合首页| 人妻久久久| 日韩欧美蜜桃精品久久中文字幕久久| 金莲网址| 果冻传媒一区二区三区| 乱伦av麻豆| 一区二区 电影 亚洲| 久久久久久久97| 操操啪| 好色美女九七第一页| 综合 欧美 亚洲 日本| 欧美大香蕉在线观看| 97超碰色色| 欧美色偷拍| 久夜视频| 成人女人国产| 亚洲av综合伊人久久| 91 国产丝袜在线放观看| 男人久久天堂| 91嫩草欧美| 91精品久久久| 亚洲性综合| 乱伦日本色图AⅤ| 久噜噜| 日韩在线一区高清在线| 久久精品中文字幕女同| 精品人人插人人操| 国产成年女黄特黄| 超碰天天久久79| 在线观看一级α片刺激高潮视频| 久草资源在线视频官方总站日韩丝袜美腿| 69av一区二区三区| 亚洲蜜臀视频精品久久| 日韩欧美经典在线观看| 综合五月天| 电影69乱码96| 久综合国内精品自在自线| 午夜福利区| 操比国产| 97超碰人人操人人操| 欧美 综合| 女人被男人桶爽视频网站| 久久精品一区二区三区蜜桃臀| 国产成人精品日本视频| 亚洲综合九九| 人妻素股| 日本不卡三级网在线播放| 免费精品中文字幕| 99re视频在线播放青草| 99在线观看无大码| 欧洲熟妇xxXx欧美老妇裸体| 91人妻少妇| 日韩天天本| 97综合在线| 午夜啪| 9ⅰ久久久天天| 亚洲天堂人妻一区二区| 中文字幕一区电影在线观看| 加勒比99999| 第45页一区二区| av资源在线播放天堂| 欧美精品三级黄片| 综合 亚洲 欧美| 亚洲999综合| 五月天色图影视| 天天摸夜夜添无码小视频| 久久香蕉国产线看观看亚洲女人| 亚洲精品人伦一区二区| 国产精品suv一区| 亚洲综合色网| AV无码久久久精品| 91精品女厕偷拍视频| 国产精品一区二区三区免费视频| 美熟女逼导航AV操逼| 高潮内射在线| 日韩人妻少妇 一区二区三区| 久久久久亚洲三级电影| 麻豆精品.欧美精品.日韩精品.| 99色日| 精精夜夜| 97在线视频观看| 日韩激情中文字幕有码| 国内偷自视频区视频综合| 亚洲图片第一页| 欧美在线|亚洲| 久久久久久久久久黄色网| 欧美日不卡| 亚洲天堂99| 国语av最新自产拍在线观看| 6080YYY午夜理论片在线观看| 天天92av| 欧亚日韩一区在线| 欧美96精品在线| 欧美成97爱| 啊啊在线| 大香蕉99999| 91n处女在线观看| 丝袜视频网国产90| 久久久久久人| 国产精品久久久久久久久久久久久久| 超碰色美女| 欧美日韩97在线| 婷婷九月国产| 色九九九九九九| 人妻大香蕉| 羞答答AV中文字| 超碰欧美97资源| 亚洲日韩97| 蜜臀va69| 视频不卡中文字幕| www亚洲免费| 精品国产91av一区二区三区| 乱伦av.com| 国产亚州高清国产拍精| av凤凰久久久| 91人人看| 国产精品久久久999| 操逼999| 九九热午夜欧亚国产视频| 91n免费处女| 999热日韩精品| 日日爱99| 国内偷自视频区视频综合| 超碰成人公开| 欧美综合站| 青青操在线亚洲视频观看欧美在线| 78久久久| 一区二区三区四区五区久久久久久| 一二三四区电影| 亚洲男人天堂手机版| 91操操操操| 天天干干天天干干| 丰满人妻一区二区三区| 亚洲国产一级中文综合久久天堂在线免费观看| 久久欧洲| 男生通女生屁股| 99国产精品| 国产日产精品久久快鸭的功能介绍| 日韩人妻中文视频| 91精品电影18| 97爱碰| 欧美色图亚洲色| 岛国片在线播放| JIZZJIZZ国产精品喷水| 蜜桃视频精品一区二区三区| 欧美激情黑人| 成人蜜乳小视频网站| 国产区91柔拿会所技师| 色女女女导航| 俞拍久久国应视频| 成人乱码一区二区三少妇| 九九九九九九九精品视频| 歐美性天天| 久久久不卡| 国产精品成人福利在线| 精彩国产视频播放1区2区| 大学生美女口爆| 天天做日日做| 熟女天天干| 九九热三级片| 丁香五月天激情| 日本新免费二区三区| 婷婷综合伊人一区| 色香蕉影院| 国产第11页| 亚洲欧美国产va在线播放频| 亚洲激情综合| 精品97久久| 十八禁的黄污污免费网站| 富二代亚洲精品99| 91成人无码| 激情五月婷婷| 亚洲AV永久无码精品成人调教| 成人无遮挡毛片免费看| 殴美,日韩国产伦精品| 中文字幕av一区二区三区人妻少妇 | 欧美肥臀在线| 伊人女女资源在线观看| 久久久久9999精品九九九| 亚洲春色一区二区三区| 伊人97超碰| 色97干| 99热91| 爱丝福利| 麻豆国产96在线| 欧美激色| 岛国黄色大片网站| 后入福利视频| 色婷久久| 国产精品农村妇女| 亚洲黑丝在线| 欧美乱伦专区| 99精品网站| 免费av高清无码| 91jk色拍| 人人操人人搞人人草| 久久香蕉超碰97国产精品| 91亚洲色人| 91精产一区二区三区| 操操操日本的逼| 欧美在线色| 成人网站 免费观看| 亚洲自拍青操视频| 玖玖婷婷五月天| 91老司机精品| 夜夜高潮夜夜爽高清视频一 | 国产人伦精品一区二区三区 | 亚州操操穴网| 午夜.DJ高清在线观看免费7| 9 9无尺码天堂网| 亚洲最大无码中文字幕网站| 91亚洲综合在线| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 狠狠图片青青草| 亚洲欧美中文一区二区三| 久久久久久99999国产精品| 国产成自自拍在线观看| 欧美日韩国产三级黄色| 96国产精品| 日本不卡卡一区| 正在播放国产精品一区| 国产少妇内射| 91视频观看网站| 国产www色在线观看| 亚洲狠狠入| 久无码| 伊人久久在线视频观看| 狠狠色五月亚洲91| 91色碰| 日韩亚洲中文有码视频| 91熟女丨91老女人| 精品中文日韩字幕视频| 伊人五月天| 中文字幕在线观看永久| 91成人精品| 久久綜合很很很| 91婷婷| 日韩国产不卡在线视频| 久久久久国产精品久久久| av久日| 91色黑人少妇| www.久久99| 欧美日韩色综合网| 婷婷丁香激情| 亚洲天天天| 欧美色图成人网一区二区| 丁香色婷婷| 日韩精品资源专区二区| 欲香欲色综合天天伊人| 伊人色综合欧美| 一区=区三区视频| 亚洲精品成人激情在线| 在线看的av| av激情亚洲五月天| 亚欧美色| 易易A毛视频| 九七人妻在线| 久久日本熟妇熟色高清| juliaann精品熟女一区| 夜夜爽33333| 亚洲操逼视频网站| 黄色高清无码无码破解免费暗网| 日韩操逼HD| 翔田千里无码一区| 97国产精品| 丰满人妻-区二区三区免费看| 国产久久男人天堂| 蜜桃一区二区三区| 中文字幕精品久久久久人妻红杏ⅰ| 中文字幕国产精品1区| 日本天天色| 亚洲精品亚洲人成人网| 秋霞视频一区二区| 日韩探花精品在线视频| www.久久最新地址| 永久免费发布性爱网| 免费看黄视频亚洲网站| 欧美日韩亚洲一区二区在线观看| 精品国产一区二区三区在线播出| 亚洲无码太久| 一本大道不卡一二三区| 成人三一级一片aaa| 色色色色日本| 黄色小视频日本txt| 顶级丝袜熟女一区二区三区 | 91九久| 色狠狠综合噜一二三区| 日本一二三高清| 天天做天天爱天天爽AV| 亚洲综合性网址| 亚洲宗合网| 色777999综合| 亚洲熟女综合网| 91狠狠| 亚洲激情综合另类男同| 精品v日韩欧美国产| 丁香婷婷久久 | 亚州高清色综合| 色悠久久久av| 2017天天插| WWW.操逼.COM| 91c色| 天天弄天天操| 亚洲熟妇无码一区二区三区| 久 久无码人妻AV| 91天天看| 欧美性爱中文字幕无线码| 女人被添高潮免费视频| 内射日韩大臀美女| 亚洲电影91| 久久久久久加勒比| 熟妇的味道HD中文字幕| 亚洲中文字幕三级在线| 色狠狠综合噜一二三区| 在线小说视频一区| 亚洲欧美电影| 亚洲情色中文字幕一区| 青青国产精品在线| 欧美国产操逼| 蜜臀久久99精品久久久久久-DVD原版全| 国产亚洲性生活视频播放| 日韩性爱播放| 青青国产在线拍揄自揄拍| 国产精品夜夜夜| 三男一女不戴套的A片| 国产1769在线| 一及黄久一点| 美女高潮国产高清| α√在线| 熟女欧美日韩综合婷婷| 中文乱码字幕观看视频| 国产免费操逼| 色盈盈影院| 97超碰欧美手机| 3d成人精品一区二区| 手机av天堂久久久久| 久草毛片| 综合免费无码中文| 亚洲天堂自拍| 日本一区二区中文字幕久久| **一级毛片国产| 亚州欧美一区| 琪琪精品免费一区二区三区| 国产九九久久久精品| 欧美中日韩XXXX| 粉嫩在线一区二区懂色| 亚州日韩97| 国产v片在线免费观看| 日本精品一区三区| 91美女片在线| 一块操欧美| 四虎免费视频| 高跟丝袜AV专区国产| www.高清无码诱惑一区.com| 亚欧无码线免费观看视频| 伊人AAA| 中文字幕激情小说| 久久五月综合| 欧美91网| 五月天色综合| 天天操天天舔| 夜夜爽33333| 欧美色图电影| 天天综合91在线| 欧美色图 色综合图| 91久久久久久| 亚洲综合在线第一页| 亚洲丝袜色| 亚洲人妻久久| 精品一区96| 免费视频在线一区二区不卡| 日韩精品熟妇| 亚洲精品乱码线路中文字幕 | 综合久久少妇中文字幕| 日韩美女久久一区二区三区| 日韩免费中文字幕视频| 国产SV一线| 欧美伊人久久综合网| 欧美情色贴图| 在线人人人人人人精品超| 久久久久久免费电影| 国产精品免费视频不卡| 三级色影综合网| 91精品国产综合久久久蜜臀| Av手机版天堂网| 日韩精品大香蕉伊人在线| 人人操人人叉人人插人人| 欧美色爱综合| 玖色AV| 亚洲A曰本VA欧美VA视频| 国产熟女精品区| 人看人人摸人人操| 久久黄人人爽视频| 麻豆AV短剧| 亚洲Av无码成人精品国产| 久草资源在线| 亚洲淫乱骚妇AV| 91丨熟女丨丰满熟女| 久久黄人人爽视频| av亚洲天堂资源网站| 欧美黄片欧美黄片xxx| 99re久久| 人妻人妻天天碰| 色五月激情网| 亚洲精品国产日韩无码AV永久免| 天天日熟妇| 国产av高清版| 日本一区二区不卡精品| 蜜臀视频网站| 天天热精品| 亚洲精品819| 亚洲黄色网址视频| 国产农村妇女精品| 国产丝袜高跟美女av免费观看| 操久久久久久| 久久精品店| 中文字幕精品探花视频| 九九热午夜欧亚国产视频| 日本曲间由美性生活片| 26uuu国产成人综合| 天美传媒精品一区二区| 少妇久久久免费| av大香蕉网站| 亚洲第一综合| 另类 日韩 熟女| 日本黄大片在线观看视频| 欧美综合色| 91精产一区二区三区| 91人人看| 日韩精品 资源| 91操人| 欧美色视频在线| 网站A V在线| 91丝袜美女视频| 精品久久久久成人码免| 熟女一区二区三区| 欧美九九99久久精品| 99在线精品视频| av天堂手机版追回| 超碰成人最新最好看| 日韩偷拍一区二区三区| 老熟妇乱轮| 精品一区二区三区丰满熟女-亚洲欧美一区| 亚州高清av| 久久超碰98| 人人超碰在线观看黄| 青青草视频爽一爽| 中文字幕一区 二 区 三 四 五 区日 日 骚| 最新国产精品久久精品| 国产综合网站在线播放 | 免费毛片在线播放| 国产精品自在线发布| 日日日日做夜夜夜夜无码| 黑人精品XXX一区一二区| 久久一区二区三区四区五区| 97Ai亚洲| 日日爱99| 日韩成人性日韩成人性爱视频在线免费观看| 不卡二三区人妻少妇| 夜夜高潮夜夜爽夜夜爱爱一区 | 天天操夜夜操| 五月丁香综合| 少妇的嫩逼图片| 亚洲人妻av| 91丝袜在线视频| 中文字幕一区二区三区视频播放| 天天干18禁| 老鸭窝日丰县女人| 久草色悠悠在线视频| 91色五月俺来也| 日韩av色图综合| 婷婷香网站| 强奸熟女一区二区三区| 久久久久婷婷精品av电影| 后入日本1234| 久久久久久久| 国产强奸乱伦第1页| 欧美色人| 八戒午夜福利理论片| 欧美极品性爱天天射| 8050无码八戒| 色色亚洲| 五月天综合网| 91老熟女91老女人| 欧成人精品一区二区三区| 亚洲久久久久| 国产一区二区三区白丝| 国产美女mm131爽爽爽爽| 久久99精品视频| 91亚洲黑人| 天天夜夜久久| 99在线精品观看视频中文| 91高潮| 欧美中文字幕日韩在线| 日韩精品1区2区中文字幕| 99热99色| 激情终合网| 欧美日韩小说| 伊人黄色片| 青青草天天亲夜夜操网| 大香蕉免| 91超碰在线观看| 在线午夜成人无码视频| 黄色网址在线免费观看| 中文字幕精品一区二区精品| 久久久久久久久久久久黄色| 精品少妇高潮久久| 在线中文字幕| 色五月首页| 屌妞视频久久久久久久久久久久| 久久久78| 国产成人一级av88| 校园春色之综合网| 欧美日韩97在线| 国产自制av蜜乳| 岛国片在线观看视频亚洲| 婷婷五月天久久精品视频一区二区三区 | 午夜120视频在线观看| 性爱动态120秒| 色天堂在线观看| 国产精品不卡高清在线观看| 熟女被操视频网址| 亚洲综合九| AVE乱伦| 五月天社区| 久久久久96| 黑人美精品 A片| 久操B网| 怡红院成人视频| 亚洲精品乱码久久久久久蜜桃麻豆| 哈哈操电影AV| 久热一区二区| 天天综合精品| 青青草在线视频美女| 国产精品美女在线一区| 嗯嗯嗯啊啊啊操的我好爽| 欧美综合色,www| 欧美性爱伊人| 国产精品乱码久久久久久| 国产精品久久久无码aV去| 麻豆视频test| 激情欧美97| 久久久久久久人妻| 国产97/欧美| 人人操人人大香蕉| 欧美色图97| 加勒比在线视频一区二区三区| av午夜玫瑰| 四虎午夜影院| 久久最新视频免费观看| 97无码视频在线播放| 美女露胸露奶头| 天天澡天天爽日日AV| 日韩精品99999| 综合色好色| 国产av白丝| 精品一区二区三区免费古装毛片香港三级日本三级人妇 | 亚洲视频中文一区| 嗯嗯啊啊啊好舒服| 伊人网免费视频| 人妻社区男人天堂| 日日日日做夜夜夜夜无码| 91在线丝袜视频| 国产亚洲女v在线观看| 99re99视频在线免费观看| 乱伦1色页| 九九人妻| 丁香六月激情综合| 97干在线视频| 精品国产嫩穴视频| 久久这里只精品免费福利| 亚洲综合99999| 国产精品无套内谢| 欧美另类天堂| 夜夜肏2021| 蜜乳中文字幕a在线| 欧美暴力猛交| 在线观看综合精品亚洲| 欧美丝袜中文字幕07在线| 色老汉玖玖爱| 午夜福利一区二区影院| 亚洲人码13| 色播综合| 一区二区三区免费视频入口 | 国产精品久久久无码AV网站| 五月天精品| 麻豆亚洲Av成人无码一区精品| 少妇熟女1区2区3区| 色制服丝袜夫妻av一区| 日韩精品一区二区三区色欲| 啊啊啊啊网站| 美女黑人91神马| 精品久热| 性色av大全| 久草久日| 美女人妻色网站| 日本视频一区二区三区| 舔足天天操天天射| 超碰98综合网| 欧美综合站| 国产精品999zyz| 奶水 人妻 哺乳 在线| 麻豆婷婷成人一二三| 亚洲欧洲国产综合av| 天天干人人看综合| 色婷婷一区二区三区久久午夜成人不| 亚洲最大91网| 无码聚合| a片在线播放| 97亚洲自在精品在线观看| 97干色天堂| 婷婷九月色| 日韩国产欧美伦理在线| 欧美色图91| 九一国产精品| 亚洲综合性感在线| 激情久久久| 女人喷水视频在线观看| 日本在线观看网址| 激情婷婷黑人91| 日韩天天本| 色噜噜人妻av 中文字幕| 丰满人妻大屁一区二区| 翔田千里Av在线| 天天干电影| 67914在线兔费成人视频| 久久夜嗨| 中文字幕加勒比海高清无码免费视频| 亚洲成人久久美女| 国产精品极品美女视频| 狠狠久久手机视频精品| 蜜臀99精品国产高清在线观看| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 国产精品农村妇女精品| 九九九九精品一区| 久久偷拍人| 嗯嗯,啊啊,国产精品| 久综合网| 亚洲日韩精品在线播放| 亚洲天堂7777| 色黄色美女大长腿午夜视频| 欧美熟妇成人一区二区| 天天噜| 91熟女丨91老女人| 91日产桃蜜| 欧美日韩亚洲少妇寂寞影院正在播放 | 制服丝袜第二页| 欧天美中出| 北京美女一区二区| 91中文精品日韩欧美在线 | 国内毛片欧美香蕉精品| av中亚| 亚洲色图欧美色图另类图片| 欧美亚洲丝袜人妻制服中文99| 啊啊在线| 中国熟妇| 老熟女综合| 蜜臀久久99精品久久久| 麻豆美女丝袜人妻中文| 97干色| 天天看天天日天天操| 亲子敌伦对白在线播放| 女人精品内射国产99| 张柏芝国产一区在线观看| 亚洲欧美综合| 欧美性爱第一页久久| 欧美v亚洲v综合v国产v妖精| 九九精品无码专区免费| 超碰无码加勒比| AAAAAAAAA黄片| 一区二区三区四区免费视频| 一本一道vs波多野结衣| 日韩一级欧美一级在线观看| 另类天堂| 久久久工口| 青青久操| 亚洲人精品午夜不卡| 日本幼女18+| 九九九九热| 操逼逼一区视频| 凹凸久久人人| 成年女人18级毛片毛片免费观看| 婷婷导航| 国产日韩精品一区二区三区| 日本大香蕉| 超碰偷拍| 色综合av综合久久| 国产精品久久99日日| 亚洲国产麻豆一区二区三区| 久热无码| 在线天堂999| 学生妹天天看| 国产97在线 | 亚洲| 老熟女乱伦一区| 日韩av不卡在线看| 蜜臀久久99精品久久久久久成人小说 | 日韩一级性爱无码| 久久久国产亚洲精品系列| 五月天综合在线| 亚91亚洲网| 九九九只有精品| J?P?NESEHD熟女熟妇伦| 伊人黄色视频免费观看| 亚洲国产欧美日韩人妻日中文| 樱花草社区www中国| 99少妇| 久久国产免费激情视频| 久久综合99| 东京热精品97综合网| 国产精品夜夜| 青娱乐国产精品| 嗯嗯,啊啊,国产精品| 国产AB视频| 黄色成人网久久久久久| 亚洲欧美经典一区二区| 91夜夜蜜桃臀1区2区3区| 久久久久久人体| 超碰在线香蕉| 蜜臀精品1区2区| 久久久久久久久9| 一线黄色免费性爱片| 日韩97超碰中文字幕| 亚洲高清男人天堂| 人人干黄色| 91熟女熟妇视频网站| 欧美体内射精| 97在线精品观看视频| 亚洲日本韩国极品一区二区| 免费99精品国产自在在线| 国内亚洲高清无码| 国产欧美伊人| 亚洲精品乱码久久久久久蜜桃麻豆| 国产精品ⅴ无码大片在线看.| 激情久久久| 大干人妻| 东京热男人的天堂精品| 97色欧州| 曰韩中文人妻视频| 天天干天天插| 校园春色美腿丝袜| 在线可观看的黄色网址| 亚洲第91页 | 亚洲精品蜜桃久久久久久久| 人人操 欧美| 视频在线观看一二三区| 精品一区二区三区麻豆| 五月婷在线| 男人天堂导航| 激情综合网五月婷婷| 怡红院亚洲怡春院av| 天堂中文资源在线bt| 熟女网站最新| 无码高清国产AV| 97精品国产手机| 三级精品三级在线观看| 欧美熟妇乱码在线一区| 少妇综合网| 欧美成人精品一区二区三区| 久久男人的天堂| 天天操天天射青青草| 啊啊啊啊啊啊在线观看| 欧美 亚洲 制服 精品| 91天天综合日韩欧美| 好吊色在线观看| 中文字幕在线观看网址| 国产又黄又猛又粗又爽的网站| 伦理第一页| 嗯嗯嗯啊啊啊在线免费观看| 精品人妻一区二区三区在| 夜夜夜久久| 日本爽爽爽爽爽爽免费视频| 欧美色997| 成年人三级黄色片视频| 国产精品国产| 九九99精品| 日日骚中文字幕| 肥臀熟女福利视频一区二区| 内射夫妻三片| 97超视频在线观看| 久久精品国产72国产精品福利| 欧美人妻熟女在线| 日日夜夜干| 欧美色www亚洲国产阿娇要播| 久久视网78| 在线强奷到舒服的无码视频| 久肏视频字幕| 超碰日本97美女人妻人人玩人人爱| 亚洲无码电影久久久| 综合91网| 超碰在线91| A级国产欧美激情在线| 亚洲图片 激情小说| 国产高清无码一区二区三区四区皇冠| 中文字幕成人乱码熟女精品国50 | 四方色播| 69人妻精品丰满熟女区| 日本熟妇人妻中出视频| 美女久久久久久久久久久| 色欲人妻一区二区在线| 91狼人| 天天上日日上日韩精品| 亚洲天天精品| 久久久久国产亚洲一区欧美色图日韩 | 日韩一区二区三区四区五区| 啊啊啊啊啊啊啊啊在线观看| 五月天久久婷婷亚洲| 丁香九月激情啪| 欧美性爱综合,免费| 久久久久久裸体| 91亚洲不卡一区| 欧美午夜视频精品久久| 搡老女人老91妇女老熟女| 色眯眯av| 按摩中文字幕| 国产精品自拍欧美在线| 久久产精品一区二区三区电影| 欧洲大香蕉| 嗯……啊…嗯嗯…啊…好舒服| 亚洲欧美国产成人综合不卡| 国产粉嫩蜜臀av一区二区三区| 蜜乳av一区二区三区| 夜夜高潮夜夜爽高清视频一| 91精品国产高清久久久久久,亚洲成人 | 精品无码少妇| 久久一本大香蕉 | 人妻人人澡人人爽人人| 久操大香蕉手机视频在线看 | 97操| 一二三区视频在线观看| 成人一区二区三区四区| 亚洲 欧美 天天| 久久人人爽人人爽人人片Ⅴ| 热久久国产| 毛片久久| 精品久久久久综合无码| AV久日| 裸体1区| 欧亚不卡| 久久精品视-一级做a爰片性色毛片16美国-中国女与老外在线精品 | 91久久久久久| 尤物国产一区在线观看| 日韩美女啪啪一区| 亚洲精品自拍| 久久久人妻| 91熟女丨老女人| 一本久久久精品| 久久九九久精品国产尤物|国产精品爽黄69天堂A片潘金莲,国产亚洲精品第一综合 | 97综合| 亚洲97精品| 熟女熟妇一区二区三四区| 中出20p| 亚洲人精品久久久| 人澡逼| 人妻少妇久久| 亚洲s色图| 99999这里都精品| 日本熟妇色熟妇在线视频播放| 国桃视频产巨乳精品一区二区在线| 午夜一区| 精品少妇99| 91在线观看,天天综合| 欧美日韩美女精品久草一区二区三区| 亚洲免费97免费| 丝袜美腿校园春色| 成人在线视频一区| 亚洲情色在线| 久草热制服丝袜在线观看| 亚熟hd视频在线| 亚洲精品蜜桃久久久久久久| 亚洲欧美日产国产91毛片| 99www.bibizy香蕉资源国产一区二区三区高清 | 免费伦费视频在线观看| 久久91精品国产9丨久久分亭| 女人被男人桶爽视频网站| 国产A v无码专区| 亚洲二区精品在线观看| 国产精品熟女丝袜一区二区| 在线观看精品国产免费| 韩国黄色片精品久久久| 涩五月婷婷| 在现视频女上位好爽| 久久欧洲| 蜜桃精品一区二区三区久在线|