日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

KNN算法從原理到實(shí)戰(zhàn):鳶尾花數(shù)據(jù)集全流程調(diào)參與優(yōu)化

KNN算法從原理到實(shí)戰(zhàn):鳶尾花數(shù)據(jù)集全流程調(diào)參與優(yōu)化 1. 先把KNN這件事想明白一個(gè)不訓(xùn)練的算法憑什么上臺(tái)面K近鄰算法K-Nearest Neighbors簡(jiǎn)稱KNN在機(jī)器學(xué)習(xí)里是個(gè)特別有意思的存在。你把訓(xùn)練集喂給它它幾乎什么都不干——不擬合參數(shù)、不更新權(quán)重、不建梯度、不迭代。fit()一調(diào)用時(shí)間基本花在把數(shù)據(jù)存進(jìn)內(nèi)存上。真正干活是在predict()那一刻來一個(gè)新樣本它把訓(xùn)練集里所有點(diǎn)和這個(gè)新樣本逐個(gè)算一遍距離找出最近的K個(gè)鄰居看這些鄰居大多屬于哪一類就把新樣本判成哪一類。這套邏輯樸素得像小區(qū)里問路——你不知道某個(gè)地方在哪就問身邊最近的幾個(gè)人多數(shù)人說往東你大概就往東走。我在帶新人的時(shí)候常講一句話KNN的全部智能都藏在距離和K這兩個(gè)詞里。它沒有學(xué)到特征和標(biāo)簽之間的映射函數(shù)它學(xué)到的其實(shí)是整個(gè)訓(xùn)練集本身就是模型。這個(gè)特性決定了它的優(yōu)缺點(diǎn)都極其鮮明——實(shí)現(xiàn)簡(jiǎn)單、無需訓(xùn)練、天然支持多分類、對(duì)非線性邊界有一定適應(yīng)力但同時(shí)內(nèi)存占用隨數(shù)據(jù)線性增長、預(yù)測(cè)慢、對(duì)特征尺度極其敏感、在高維空間里幾乎失效。這篇文章講的是鳶尾花Iris數(shù)據(jù)集上的KNN完整實(shí)現(xiàn)。這個(gè)數(shù)據(jù)集小得可愛150條樣本4個(gè)特征花萼長度、花萼寬度、花瓣長度、花瓣寬度3個(gè)類別三個(gè)不同品種每類50條。很多人嫌它太簡(jiǎn)單一行代碼準(zhǔn)確率就96%但我偏偏喜歡拿它做教學(xué)載體因?yàn)樗蓛舻娇梢园衙恳粋€(gè)環(huán)節(jié)單獨(dú)拎出來反復(fù)折騰——你怎么選K、怎么縮放、怎么切分、怎么驗(yàn)證、怎么解釋結(jié)果全都看得清清楚楚不會(huì)有一堆臟數(shù)據(jù)干擾你的判斷。適合誰看寫過一點(diǎn)Python、聽過KNN但沒真正跑通過全流程的人調(diào)包能出結(jié)果但說不清為什么準(zhǔn)確率是96%而不是99%的人想手寫一遍KNN理解底層的人。如果你已經(jīng)能熟練做網(wǎng)格搜索和特征工程這篇可能偏基礎(chǔ)但里面關(guān)于標(biāo)準(zhǔn)化順序、維度災(zāi)難、距離度量選擇的那些坑大概率還是能幫你省點(diǎn)時(shí)間。1.1 距離即投票KNN的核心假設(shè)到底是什么任何算法背后都有一套對(duì)世界的假設(shè)KNN的假設(shè)直白得不像話特征空間里挨得近的樣本標(biāo)簽大概率相同。這句話聽起來像廢話但它成立是需要條件的。第一個(gè)條件特征必須能構(gòu)成一個(gè)有意義的度量空間。也就是說兩個(gè)樣本之間的距離要真的能反映它們的相似程度。如果你的特征里混了用戶ID這種純編號(hào)ID1001和ID1002看起來距離是1但它們之間沒有任何語義關(guān)聯(lián)這種距離就是假的會(huì)把整個(gè)模型帶偏。第二個(gè)條件各特征的量綱要可比?;ㄝ嚅L度單位是厘米取值范圍4.3到7.9如果我還加入一個(gè)花瓣面積單位是平方厘米取值可能到20以上。那么在歐氏距離的平方和里面積這個(gè)維度會(huì)完全壓制長度維度長度特征等于白給。這就是為什么KNN幾乎必須配標(biāo)準(zhǔn)化不是建議是必須。第三個(gè)條件樣本密度要足夠。KNN是純局部方法它只看鄰居。如果某個(gè)區(qū)域訓(xùn)練樣本極其稀疏那最近的K個(gè)鄰居可能其實(shí)離得很遠(yuǎn)投票結(jié)果的可靠性就大打折扣。所以KNN在樣本分布均勻、類別邊界清晰的問題上表現(xiàn)好在長尾、稀疏、類別極不平衡的問題上容易翻車。想清楚這三點(diǎn)你就明白為什么很多人拿KNN跑出來的結(jié)果忽高忽低——不是算法玄學(xué)是這三個(gè)前提被破壞了。我見過有人把KNN直接用在幾千維的文本TF-IDF向量上然后抱怨KNN效果太差其實(shí)問題不在KNN在于高維空間里最近這個(gè)概念已經(jīng)失真了這個(gè)后面會(huì)專門講。1.2 它和線性模型、樹模型的根本差別在哪拿KNN和邏輯回歸對(duì)比差別不只在效果更在模型的形態(tài)。邏輯回歸訓(xùn)練完得到的是一組權(quán)重模型被壓縮成幾個(gè)數(shù)字你甚至可以把它寫在紙上KNN訓(xùn)練完得到的是一整個(gè)訓(xùn)練集模型體積等于數(shù)據(jù)體積。這是參數(shù)化模型和非參數(shù)化模型的分水嶺。和決策樹對(duì)比更有意思。決策樹是在特征空間上切格子切完之后每個(gè)格子給一個(gè)標(biāo)簽切法由訓(xùn)練數(shù)據(jù)決定但一旦確定就固定了KNN不切格子它的決策邊界是隨著查詢點(diǎn)移動(dòng)的每個(gè)新樣本都會(huì)臨時(shí)劃出一片鄰域。所以KNN的決策邊界可以非常曲折、非常非線性代價(jià)是它沒法給你一個(gè)可解釋的規(guī)則表。這個(gè)差別帶來的直接影響是預(yù)測(cè)成本。邏輯回歸預(yù)測(cè)是幾次乘加微秒級(jí)決策樹預(yù)測(cè)是幾次比較也是微秒級(jí)KNN預(yù)測(cè)要遍歷訓(xùn)練集算距離10萬條樣本就是10萬次距離計(jì)算。線上服務(wù)里如果QPS高、延遲敏感KNN基本不適合直接懟在請(qǐng)求鏈路上得配近似最近鄰索引或者做預(yù)計(jì)算。1.3 哪些場(chǎng)景該用它哪些場(chǎng)景趁早換我自己的判斷標(biāo)準(zhǔn)很簡(jiǎn)單看三條數(shù)據(jù)量中等偏小萬級(jí)到十萬級(jí)特征維度不高幾十維以內(nèi)且特征都是數(shù)值型、量綱可以統(tǒng)一——用KNN很合適甚至經(jīng)常能打贏一些復(fù)雜模型。樣本量極大或者維度極高幾百上千維——先別急著上KNN除非你愿意上近似檢索。需要給出為什么這么判的業(yè)務(wù)解釋——KNN能給出因?yàn)楹瓦@5個(gè)歷史樣本最像這種解釋在某些風(fēng)控、推薦場(chǎng)景反而比權(quán)重系數(shù)更好用。實(shí)際落地里KNN出現(xiàn)頻率最高的地方往往不是主模型而是推薦系統(tǒng)的召回層找相似物品/相似用戶、圖像檢索的相似度匹配、異常檢測(cè)離所有鄰居都遠(yuǎn)的點(diǎn)判為異常、缺失值填補(bǔ)用鄰居的均值填、以及小樣本冷啟動(dòng)場(chǎng)景。這些場(chǎng)景有一個(gè)共同點(diǎn)——相似本身就是業(yè)務(wù)語義不需要額外解釋。2. 核心參數(shù)與原理細(xì)節(jié)K值、距離度量、決策規(guī)則2.1 K值怎么選偏差和方差的那桿秤K是KNN里唯一一個(gè)真正意義上的超參數(shù)它的作用是把局部的尺度調(diào)大調(diào)小。K1的時(shí)候模型完全信任最近的那一個(gè)點(diǎn)。訓(xùn)練集里只要有一個(gè)噪聲點(diǎn)或者標(biāo)錯(cuò)的樣本它周圍就會(huì)被劃出一小塊錯(cuò)誤的領(lǐng)地。這叫過擬合方差極大換一批訓(xùn)練數(shù)據(jù)決策邊界抖得厲害。準(zhǔn)確率在訓(xùn)練集上永遠(yuǎn)是100%因?yàn)樽罱泥従泳褪撬约簻y(cè)試集上往往明顯掉一檔。K取很大比如K100那就等于每次預(yù)測(cè)都看一大片區(qū)域。極端情況KN所有樣本都參與投票預(yù)測(cè)結(jié)果對(duì)所有輸入都一樣永遠(yuǎn)是多數(shù)類。這叫欠擬合偏差極大。所以K的選擇本質(zhì)就是在偏差和方差之間找平衡點(diǎn)。經(jīng)驗(yàn)做法有這么幾條從K sqrt(N)開始試N是訓(xùn)練樣本數(shù)。150條樣本開方約12所以鳶尾花上可以先試K11或13這類奇數(shù)。二分類問題盡量取奇數(shù)避免平票。多分類問題平票的可能性低但sklearn內(nèi)部會(huì)按距離加權(quán)或取索引小的類行為不一定符合你的預(yù)期能避開就避開。不要用訓(xùn)練集選K。必須用驗(yàn)證集或者交叉驗(yàn)證否則你會(huì)選出一個(gè)過擬合的極小K。K通常不會(huì)取到樣本量的很大比例一般不超過樣本數(shù)的十分之一到五分之一。在鳶尾花上做5折交叉驗(yàn)證掃一遍K你會(huì)看到一個(gè)很典型的U形曲線K從1漲到5左右準(zhǔn)確率快速上升5到15之間平臺(tái)區(qū)很平超過25之后開始緩慢下滑。平臺(tái)的平坦程度說明這個(gè)數(shù)據(jù)集類別邊界很干凈實(shí)際上K取3到15結(jié)果都差不多在0.95以上。這時(shí)候真正的決策依據(jù)不是哪個(gè)準(zhǔn)確率高0.01而是哪個(gè)更穩(wěn)——我一般會(huì)選平臺(tái)區(qū)中間偏小的值兼顧穩(wěn)定性和局部性。2.2 距離度量不是只有歐氏距離默認(rèn)的歐氏距離是L2范數(shù)公式是各維度差值的平方和再開根號(hào)。它在特征維度獨(dú)立、量綱統(tǒng)一、分布比較團(tuán)狀的時(shí)候最合適。曼哈頓距離是L1范數(shù)各維度差值絕對(duì)值求和。它對(duì)異常值更不敏感因?yàn)檎`差不被平方放大。如果某一維偶爾出現(xiàn)離譜的值L1會(huì)比L2穩(wěn)。余弦相似度衡量的是方向而不是長度。文本向量、embedding向量這種長度不重要、方向才重要的場(chǎng)景必須用余弦。你在高維稀疏向量上算歐氏距離結(jié)果基本被向量模長主導(dǎo)完全沒有意義。閔可夫斯基距離是把上面這些統(tǒng)一起來的通式參數(shù)p決定具體形態(tài)p1是曼哈頓p2是歐氏p→∞是切比雪夫距離取各維度差值的最大值。sklearn里metricminkowski, p2就是歐氏距離。還有幾個(gè)值得知道但少用的馬氏距離考慮了特征之間的協(xié)方差能消除特征相關(guān)性影響但對(duì)小樣本估計(jì)協(xié)方差矩陣不穩(wěn)漢明距離專門給離散/二值特征用Jaccard用于集合相似度。選距離度量的判斷順序我一般是這樣的特征有明確物理量綱且相互獨(dú)立→歐氏存在離群點(diǎn)或分布偏斜→曼哈頓向量方向比大小重要→余弦特征間強(qiáng)相關(guān)→考慮馬氏或先做PCA去相關(guān)。2.3 投票規(guī)則與距離加權(quán)標(biāo)準(zhǔn)做法是等權(quán)投票K個(gè)鄰居一人一票。但這里有個(gè)隱含問題——K5的時(shí)候最近的鄰居距離可能是1.0最遠(yuǎn)的那個(gè)可能是3.0它們的話語權(quán)完全一樣這顯然不太合理。weightsdistance就是來解決這個(gè)的每個(gè)鄰居的票權(quán)按距離的倒數(shù)分配。距離越近權(quán)重越大距離趨近于0時(shí)權(quán)重趨于無窮大。實(shí)現(xiàn)上sklearn用的是1/d而不是嚴(yán)格的1/d2避免數(shù)值爆炸。效果上距離加權(quán)在小K時(shí)通常能提升一點(diǎn)準(zhǔn)確率尤其在類別邊界附近但在噪聲多的數(shù)據(jù)上反而可能放大單個(gè)異常點(diǎn)的影響。我的實(shí)測(cè)經(jīng)驗(yàn)是數(shù)據(jù)干凈、邊界清晰比如鳶尾花等權(quán)和距離加權(quán)差別在1個(gè)百分點(diǎn)以內(nèi)數(shù)據(jù)噪聲大、密度不均等權(quán)反而更穩(wěn)?;貧w任務(wù)里KNN就是取鄰居標(biāo)簽的均值或加權(quán)均值邏輯完全對(duì)應(yīng)。分類投票、回歸平均這是同一套思想的兩種輸出形式。2.4 維度災(zāi)難KNN在高維空間為什么會(huì)失靈這一條很關(guān)鍵但很多教程一筆帶過。高維空間里距離這個(gè)概念會(huì)鈍化。設(shè)想在一維區(qū)間[0,1]里隨機(jī)撒點(diǎn)最近鄰的距離大概在1/N量級(jí)在100維的單位超立方體里撒點(diǎn)任意兩點(diǎn)之間的距離會(huì)高度集中在一個(gè)很窄的范圍內(nèi)最近鄰和最遠(yuǎn)鄰的距離比值趨近于1。這意味著什么意味著最近的那個(gè)鄰居并不比隨便挑一個(gè)點(diǎn)近多少KNN的局部性假設(shè)直接崩塌。有個(gè)粗略的經(jīng)驗(yàn)說法KNN在維度超過20左右就要小心了超過50基本只能靠降維或者換算法。這不是硬閾值跟樣本量有關(guān)——樣本量隨維度指數(shù)增長才夠用所以維度和樣本量的關(guān)系比單純的維度數(shù)字更重要。對(duì)策很實(shí)在先做特征選擇把明顯無關(guān)的維度砍掉。用PCA或者別的降維手段壓到低維再跑KNN很多時(shí)候比直接堆全特征效果還好。如果維度確實(shí)高比如embedding檢索不要用暴力搜索改用近似最近鄰HNSW、IVF之類的索引結(jié)構(gòu)現(xiàn)代向量檢索基本都是把這個(gè)思路工程化。2.5 特征縮放不做這一步后面全是白干標(biāo)準(zhǔn)化公式很基礎(chǔ)但值得寫清楚因?yàn)楹芏嗉?xì)節(jié)在為什么這么算上$$z \frac{x - \mu}{\sigma}$$其中 μ 是訓(xùn)練集上該特征的均值σ 是訓(xùn)練集上該特征的標(biāo)準(zhǔn)差。變換之后每個(gè)特征的均值是0標(biāo)準(zhǔn)差是1。標(biāo)準(zhǔn)化不改變分布形狀只改尺度和位置。這里有兩個(gè)必須記住的操作禁忌計(jì)算 μ 和 σ 只能用訓(xùn)練集然后把這個(gè) μ、σ 應(yīng)用到驗(yàn)證集和測(cè)試集上。如果用全體數(shù)據(jù)算均值和方差再切分測(cè)試集的信息就泄漏進(jìn)訓(xùn)練過程了評(píng)估結(jié)果會(huì)虛高。正確做法是scaler.fit(X_train)后scaler.transform(X_test)或者用Pipeline把縮放和模型綁在一起。StandardScaler 對(duì)常數(shù)列標(biāo)準(zhǔn)差為0處理時(shí)會(huì)把該列置0不會(huì)報(bào)錯(cuò)但那一維就廢了。如果某個(gè)特征在訓(xùn)練集里只有一個(gè)值請(qǐng)?zhí)崆白R(shí)別出來刪掉。除了StandardScaler還有幾種常見選擇MinMaxScaler把值壓到[0,1]適合需要固定范圍或者稀疏數(shù)據(jù)RobustScaler用中位數(shù)和四分位距對(duì)離群點(diǎn)更穩(wěn)Normalizer是行歸一化改的是樣本向量的模長而不是列的分布別和標(biāo)準(zhǔn)化搞混。在鳶尾花上標(biāo)準(zhǔn)化的影響其實(shí)不大因?yàn)樗膫€(gè)特征本來就在同一量級(jí)厘米歐氏距離不會(huì)嚴(yán)重失衡。但為了養(yǎng)成習(xí)慣也因?yàn)檫@是通用流程的一部分正式代碼里我還是會(huì)加上。這個(gè)習(xí)慣在你自己接手的真實(shí)數(shù)據(jù)上價(jià)值巨大——我踩過的最隱蔽的一次坑就是一個(gè)以元為單位的價(jià)格特征和一個(gè)以百分比為單位的比率特征混在一起KNN的準(zhǔn)確率一直在60%左右徘徊標(biāo)準(zhǔn)化之后直接跳到88%。3. 鳶尾花數(shù)據(jù)集實(shí)操從加載到評(píng)估的完整流程3.1 加載數(shù)據(jù)與第一輪觀察先用sklearn自帶的版本省去下載和清洗的功夫。import numpy as np import pandas as pd from sklearn.datasets import load_iris iris load_iris() X pd.DataFrame(iris.data, columnsiris.feature_names) y pd.Series(iris.target, nametarget) print(X.shape) # (150, 4) print(y.value_counts()) # 每類各50 print(X.describe().round(2))跑出來你會(huì)看到各特征的范圍花萼長度4.3到7.9花萼寬度2.0到4.4花瓣長度1.0到6.9花瓣寬度0.1到2.5。四個(gè)特征量綱一致但分布寬度差了一倍多花瓣寬度的標(biāo)準(zhǔn)差比花萼寬度小不少說明花瓣相關(guān)的特征區(qū)分度可能更高。再看一下類別分布三個(gè)類各50條完全均衡。這一點(diǎn)很重要——均衡數(shù)據(jù)上準(zhǔn)確率這個(gè)指標(biāo)才可信如果是9:1的不均衡數(shù)據(jù)全猜多數(shù)類也有90%準(zhǔn)確率那時(shí)候必須看混淆矩陣、看每類的precision和recall。還有一個(gè)必做的動(dòng)作看特征之間的相關(guān)性。print(X.corr().round(2))在鳶尾花上花瓣長度和花瓣寬度的相關(guān)系數(shù)大約0.96花萼長度和花瓣長度大約0.87。高度相關(guān)意味著信息冗余對(duì)KNN來說不致命它不像線性回歸那樣有共線性問題但確實(shí)意味著你在重復(fù)計(jì)權(quán)同一個(gè)維度。這也是后面能不能做PCA降維的依據(jù)之一。我一般還會(huì)畫一下散點(diǎn)圖用花瓣長度和花瓣寬度做二維投影肉眼就能看出三類基本是分開的其中一類setosa和另外兩類完全線性可分另外兩類之間只有少量交疊。這解釋了為什么這個(gè)數(shù)據(jù)集的準(zhǔn)確率天花板在96%到98%之間——那2%到4%的錯(cuò)誤幾乎全部來自后兩類的邊界樣本無論你怎么調(diào)K都是這個(gè)數(shù)。3.2 數(shù)據(jù)劃分與標(biāo)準(zhǔn)化的正確姿勢(shì)劃分訓(xùn)練測(cè)試集固定隨機(jī)種子保證可復(fù)現(xiàn)from sklearn.model_selection import train_test_split X_train, X_test, y_train, y_test train_test_split( X, y, test_size0.2, random_state42, stratifyy )stratifyy這個(gè)參數(shù)一定要加。它保證訓(xùn)練集和測(cè)試集里的類別比例與原數(shù)據(jù)一致。150條數(shù)據(jù)、3個(gè)類如果不分層隨機(jī)切出30條測(cè)試集有概率某一類只分到6條甚至更少評(píng)估結(jié)果波動(dòng)會(huì)很大。分層之后每類在測(cè)試集里穩(wěn)定出現(xiàn)10條。然后是標(biāo)準(zhǔn)化注意順序from sklearn.preprocessing import StandardScaler scaler StandardScaler() X_train_scaled scaler.fit_transform(X_train) # fit和transform都在訓(xùn)練集 X_test_scaled scaler.transform(X_test) # 只用transform這里有個(gè)細(xì)節(jié)fit_transform(X_train)之后scaler.mean_和scaler.scale_就固定了transform(X_test)用的是訓(xùn)練集的統(tǒng)計(jì)量。如果你寫成scaler.fit_transform(X_test)那就是徹頭徹尾的數(shù)據(jù)泄漏測(cè)試集的均值方差參與了變換評(píng)估結(jié)果會(huì)偏樂觀。這個(gè)坑極其常見我在代碼review里見過不止一次。更穩(wěn)妥的寫法是直接用Pipeline把縮放和模型串成一體交叉驗(yàn)證的時(shí)候sklearn會(huì)自動(dòng)保證每一折的縮放只在該折的訓(xùn)練部分?jǐn)M合from sklearn.pipeline import Pipeline from sklearn.neighbors import KNeighborsClassifier pipe Pipeline([ (scaler, StandardScaler()), (knn, KNeighborsClassifier(n_neighbors5)) ])用Pipeline最大的好處不是代碼短是從結(jié)構(gòu)上消滅了忘記順序的可能性。我現(xiàn)在的習(xí)慣是只要涉及任何需要fit的預(yù)處理一律走Pipeline不給自己犯錯(cuò)的機(jī)會(huì)。3.3 建模、預(yù)測(cè)與評(píng)估from sklearn.metrics import accuracy_score, classification_report, confusion_matrix pipe.fit(X_train, y_train) y_pred pipe.predict(X_test) print(f準(zhǔn)確率: {accuracy_score(y_test, y_pred):.4f}) print(confusion_matrix(y_test, y_pred)) print(classification_report(y_test, y_pred, target_namesiris.target_names))默認(rèn)K5跑出來測(cè)試集準(zhǔn)確率通常在0.93到0.97之間浮動(dòng)取決于random_state?;煜仃嚂?huì)顯示錯(cuò)誤集中在那兩個(gè)容易混的類之間。光看一個(gè)測(cè)試集的結(jié)果不夠30條樣本錯(cuò)一條就是3.3個(gè)百分點(diǎn)波動(dòng)太大。養(yǎng)成習(xí)慣用交叉驗(yàn)證from sklearn.model_selection import cross_val_score scores cross_val_score(pipe, X, y, cv5, scoringaccuracy) print(f5折CV: {scores.mean():.4f} ± {scores.std():.4f})5折交叉驗(yàn)證用的是全部150條數(shù)據(jù)每一折都有120條訓(xùn)練、30條驗(yàn)證最后取5次平均。這個(gè)數(shù)字比單次train_test_split穩(wěn)定得多也是我用來判斷模型好壞的主要依據(jù)。注意這里的cross_val_score傳入的是完整的X和y內(nèi)部會(huì)自己切分——Pipeline保證了每一折的縮放只在訓(xùn)練折上擬合所以沒有泄漏。還有一個(gè)指標(biāo)值得看一眼predict_proba。proba pipe.predict_proba(X_test[:5]) print(proba.round(3))KNN輸出的概率就是K個(gè)鄰居里各類的占比。K5的話概率只可能是0、0.2、0.4、0.6、0.8、1.0這幾檔粒度非常粗。如果你需要比較細(xì)的概率估計(jì)比如做排序或者閾值調(diào)整KNN不是好選擇它的概率沒經(jīng)過校準(zhǔn)??梢杂肅alibratedClassifierCV包一層或者干脆換邏輯回歸。3.4 手寫一遍KNN把黑箱拆開調(diào)包調(diào)通了不代表懂了。我強(qiáng)烈建議每個(gè)人手寫一遍代碼不超過40行import numpy as np from collections import Counter class SimpleKNN: def __init__(self, k3, p2): self.k k self.p p def fit(self, X, y): self.X_train np.asarray(X, dtypefloat) self.y_train np.asarray(y) return self def _dist(self, a, b): if self.p 1: return np.abs(a - b).sum(axis1) if self.p 2: return np.sqrt(((a - b) ** 2).sum(axis1)) return np.max(np.abs(a - b), axis1) def predict(self, X): X np.asarray(X, dtypefloat) preds [] for x in X: d self._dist(x, self.X_train) idx np.argsort(d)[:self.k] votes Counter(self.y_train[idx]) preds.append(votes.most_common(1)[0][0]) return np.array(preds)寫完自己手動(dòng)標(biāo)準(zhǔn)化一下再跑mu, sigma X_train.mean(0), X_train.std(0) Xtr (X_train - mu) / sigma Xte (X_test - mu) / sigma knn SimpleKNN(k5).fit(Xtr.values, y_train.values) pred knn.predict(Xte.values) print((pred y_test.values).mean())結(jié)果應(yīng)該和sklearn基本一致。手寫的價(jià)值在于你會(huì)親眼看到預(yù)測(cè)這一步是O(N×D)的計(jì)算N是訓(xùn)練樣本數(shù)D是維度。這解釋了為什么KNN預(yù)測(cè)慢、為什么大數(shù)據(jù)量下必須上索引結(jié)構(gòu)。你也會(huì)看到argsort是整個(gè)流程的瓶頸——實(shí)際上只需要前K個(gè)用argpartition會(huì)快很多工業(yè)實(shí)現(xiàn)里還會(huì)用堆或者樹結(jié)構(gòu)。順便說一個(gè)優(yōu)化點(diǎn)很多人不知道sklearn的KNN可以預(yù)計(jì)算距離矩陣在特征不變、只反復(fù)調(diào)K的場(chǎng)景下能省一半時(shí)間還有一個(gè)更實(shí)用的技巧是設(shè)置algorithmauto之外顯式指定kd_tree或ball_tree在低維中等數(shù)據(jù)量下比暴力搜索快一個(gè)數(shù)量級(jí)。4. 調(diào)參與性能優(yōu)化把準(zhǔn)確率從96%推到98%4.1 用網(wǎng)格搜索找K和權(quán)重手工試K效率太低直接上GridSearchCV。注意要搜的參數(shù)在Pipeline里帶前綴from sklearn.model_selection import GridSearchCV param_grid { knn__n_neighbors: list(range(1, 31, 2)), knn__weights: [uniform, distance], knn__p: [1, 2] } grid GridSearchCV(pipe, param_grid, cv5, scoringaccuracy, n_jobs-1) grid.fit(X, y) print(grid.best_params_) print(f{grid.best_score_:.4f})參數(shù)空間是15×2×260組每組5折一共300次訓(xùn)練加預(yù)測(cè)在鳶尾花這種規(guī)模上幾秒鐘就跑完了。一個(gè)觀察跑完之后你大概率會(huì)發(fā)現(xiàn)最優(yōu)的K落在3到11之間weights是uniform還是distance差距很小p是1還是2差距也很小。這說明在這個(gè)數(shù)據(jù)集上這些超參并不敏感。這時(shí)候別再糾結(jié)了挑一個(gè)泛化誤差曲線平臺(tái)區(qū)靠中間的值定下來把精力放到別的地方去。但有一種情況需要注意GridSearchCV用的是同一份數(shù)據(jù)做交叉驗(yàn)證選參數(shù)然后再用同一個(gè)best_score_報(bào)告結(jié)果這個(gè)數(shù)字會(huì)略微偏樂觀因?yàn)閰?shù)是在這同一批數(shù)據(jù)上挑出來的最優(yōu)值。嚴(yán)格的評(píng)估應(yīng)該留一個(gè)從不參與調(diào)參的測(cè)試集最后單獨(dú)跑一次。我一般這么切先分出20%測(cè)試集鎖起來剩下80%做交叉驗(yàn)證調(diào)參最后用那20%報(bào)最終結(jié)果且只報(bào)一次。4.2 縮放方式對(duì)結(jié)果的對(duì)比實(shí)驗(yàn)這個(gè)實(shí)驗(yàn)值得親手做一遍體會(huì)一下預(yù)處理選擇會(huì)直接影響指標(biāo)。from sklearn.preprocessing import MinMaxScaler, RobustScaler from sklearn.model_selection import cross_val_score for name, sc in [(none, None), (standard, StandardScaler()), (minmax, MinMaxScaler()), (robust, RobustScaler())]: steps [(knn, KNeighborsClassifier(n_neighbors5))] if sc: steps.insert(0, (scaler, sc)) p Pipeline(steps) s cross_val_score(p, X, y, cv5) print(f{name:9s} {s.mean():.4f} ± {s.std():.4f})在鳶尾花上你會(huì)看到不縮放的結(jié)果其實(shí)只差一點(diǎn)點(diǎn)因?yàn)樗膫€(gè)特征量綱本來就接近。但如果我把花萼寬度乘以100模擬量綱差異不縮放的準(zhǔn)確率會(huì)立刻掉到0.6以下而標(biāo)準(zhǔn)化版本紋絲不動(dòng)。這個(gè)對(duì)比實(shí)驗(yàn)我每次帶人做都會(huì)做沖擊感比講十遍原理都強(qiáng)。順便提一個(gè)邊界情況如果數(shù)據(jù)里有明顯的極端離群點(diǎn)StandardScaler會(huì)被拉偏因?yàn)榫岛蜆?biāo)準(zhǔn)差都受離群值影響這時(shí)候RobustScaler通常更穩(wěn)。判斷方法很簡(jiǎn)單畫個(gè)箱線圖看看就清楚了。4.3 大數(shù)據(jù)量下的加速思路鳶尾花只有150條談性能優(yōu)化有點(diǎn)奢侈。但既然講到這把思路說清楚對(duì)將來有用。暴力搜索的復(fù)雜度預(yù)測(cè)單個(gè)樣本是O(N×D)N條查詢就是O(N×M×D)。N到十萬級(jí)、D到百級(jí)單次預(yù)測(cè)就要上千萬次運(yùn)算這是不可接受的。第一條路是空間索引。KD樹在低維經(jīng)驗(yàn)上D20能顯著加速本質(zhì)是把空間遞歸二分查詢時(shí)剪枝掉不可能包含近鄰的分支。Ball Tree對(duì)高維稍好一些用超球體代替超矩形切分。sklearn里algorithm參數(shù)支持這兩種設(shè)置auto會(huì)讓它自動(dòng)選。但注意維度一高這些樹的剪枝效率急劇下降最后退化成接近暴力搜索。第二條路是近似最近鄰ANN。放棄精確找到最近的K個(gè)轉(zhuǎn)而以很高概率找到足夠近的K個(gè)換來數(shù)量級(jí)的速度提升。常見思路有基于圖的把樣本連成近鄰圖查詢時(shí)在圖上貪心游走、基于量化的把向量空間分桶只在附近桶里找、基于哈希的。這些在檢索場(chǎng)景已經(jīng)成為標(biāo)配文本、圖像、向量數(shù)據(jù)庫底層基本都是這套東西。第三條路是降維。PCA降到幾十維再跑既緩解維度災(zāi)難又直接降低每次距離計(jì)算的成本雙贏。前提是降維后保留的方差足夠一般看累計(jì)解釋方差到95%以上。第四條路是工程手段預(yù)計(jì)算距離矩陣、批量向量化用矩陣運(yùn)算代替循環(huán)、把訓(xùn)練集常駐內(nèi)存避免重復(fù)加載、用更緊湊的數(shù)據(jù)類型float32代替float64內(nèi)存減半、速度提升。這些都是實(shí)現(xiàn)層面的小優(yōu)化累加起來也很可觀。5. 常見問題與排查實(shí)錄5.1 準(zhǔn)確率異常低按這個(gè)順序排查我整理了一個(gè)排查順序從最常見的開始第一檢查是否做了縮放。這是頭號(hào)原因占比超過一半。特征量綱差異大而沒縮放KNN基本等于只在一個(gè)特征上做判斷。第二檢查縮放是不是做在了劃分之前。如果先對(duì)全量數(shù)據(jù)fit_transform再切分雖然準(zhǔn)確率會(huì)虛高而不是變低但另一個(gè)常見錯(cuò)誤是把fit_transform用在了測(cè)試集上這會(huì)導(dǎo)致訓(xùn)練和測(cè)試的變換標(biāo)準(zhǔn)不一致結(jié)果可能變得很奇怪。第三檢查有沒有把ID、時(shí)間戳之類的列喂進(jìn)去。這類特征的距離沒有語義會(huì)嚴(yán)重稀釋真實(shí)特征的作用。特征列一定要手動(dòng)點(diǎn)一遍名。第四檢查類別是否極度不平衡。不平衡時(shí)KNN會(huì)傾向于預(yù)測(cè)多數(shù)類整體準(zhǔn)確率看起來還行但少數(shù)類的召回率慘不忍睹。這時(shí)候要看每類的指標(biāo)并考慮用weightsdistance或者對(duì)多數(shù)類下采樣。第五檢查K值是不是太大。K接近樣本數(shù)時(shí)模型退化所有預(yù)測(cè)趨同。第六檢查是否存在重復(fù)樣本或近重復(fù)樣本導(dǎo)致的泄漏。如果同一條數(shù)據(jù)或幾乎相同的樣本同時(shí)出現(xiàn)在訓(xùn)練集和測(cè)試集KNN會(huì)直接背答案準(zhǔn)確率高得離譜。這在做過數(shù)據(jù)增強(qiáng)或者按時(shí)間切分不當(dāng)?shù)膱?chǎng)景里很常見。5.2 問題速查表現(xiàn)象最可能的原因處理方式準(zhǔn)確率明顯低于預(yù)期未做特征縮放加StandardScaler走Pipeline準(zhǔn)確率虛高接近100%數(shù)據(jù)泄漏或重復(fù)樣本檢查切分邏輯去重縮放只在訓(xùn)練集fit訓(xùn)練集100%、測(cè)試集很差K過小過擬合增大K用交叉驗(yàn)證選值所有樣本預(yù)測(cè)成同一類K過大或類別極不平衡減小K處理不平衡調(diào)參后提升很小超參不敏感或特征信息不足轉(zhuǎn)去做特征工程別死磕超參維度很高時(shí)效果崩塌維度災(zāi)難特征選擇或降維換ANN索引預(yù)測(cè)速度很慢暴力搜索大樣本KD樹/Ball樹或近似檢索概率輸出只有幾檔KNN概率粒度等于1/K增大K或用概率校準(zhǔn)5.3 幾個(gè)我踩過的坑寫下來省你時(shí)間坑一把predict和predict_proba的結(jié)果混用。前者返回類別標(biāo)簽后者返回各類占比。有次我在做閾值篩選直接把predict的結(jié)果當(dāng)概率去比較大小邏輯全錯(cuò)排查了半天才發(fā)現(xiàn)類型不對(duì)。坑二忽略特征的相關(guān)性做特征越多越好的判斷。加了一堆高度相關(guān)的特征KNN的距離計(jì)算里同一個(gè)信息被反復(fù)計(jì)權(quán)效果反而下降。加特征之前先看相關(guān)性矩陣??尤跁r(shí)間序列數(shù)據(jù)上隨機(jī)切分。KNN天然會(huì)把未來的信息帶到過去因?yàn)橄嗨频臉颖驹跁r(shí)間上往往相鄰。時(shí)間序列必須按時(shí)間切分否則評(píng)估結(jié)果毫無意義??铀囊詾閚_neighbors是唯一要調(diào)的。實(shí)際上metric的選擇在文本、embedding類任務(wù)上比K的影響大得多很多人壓根沒試過換度量??游逶谛颖旧线^度相信單次評(píng)估結(jié)果。150條數(shù)據(jù)測(cè)試集30條多對(duì)一個(gè)少對(duì)一個(gè)就是3.3個(gè)百分點(diǎn)。一定要用交叉驗(yàn)證并且報(bào)出均值±標(biāo)準(zhǔn)差而不是報(bào)一個(gè)孤零零的數(shù)字??恿浌潭S機(jī)種子。每次跑結(jié)果都不一樣調(diào)試的時(shí)候根本不知道變化是來自你的改動(dòng)還是來自切分。random_state是必備參數(shù)不是可選項(xiàng)。我在實(shí)際使用中的一個(gè)體會(huì)是KNN看起來是最簡(jiǎn)單的算法之一但它對(duì)數(shù)據(jù)質(zhì)量的敏感度在所有常見模型里排前列。線性模型還能靠權(quán)重把噪聲特征壓下去樹模型還能靠分裂點(diǎn)忽略無用維度KNN不行——你給它什么特征它就老老實(shí)實(shí)按這些特征算距離一維都不能糊弄。所以用好KNN的關(guān)鍵從來不在算法本身而在數(shù)據(jù)準(zhǔn)備那幾步特征選得準(zhǔn)不準(zhǔn)、量綱統(tǒng)一了沒有、有沒有混進(jìn)偽特征。把這幾步做扎實(shí)KNN在很多中小規(guī)模問題上依然是個(gè)又便宜又穩(wěn)的基線值得在項(xiàng)目早期就先跑一遍看看天花板在哪。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美精品 - 91爱爱| 日本潮催一卡操| 99婷婷一区二区| 人人摸人人干| 天天综合网在线91| 国产做?爰片久久毛片?片美国| 97亚洲资源| 日本一级特级毛片视频| 亚洲aw毛茸茸在线| 精品日韩| 九九九午夜| 精品一区二区三区麻豆| 国产成人网站在线观看| 超碰色美女| 久久亚洲AV无码专区国产精品 | 青青草综合在线| 在线看片国产精品每日更新| 校园春色中文字幕AV| 欧美18老人禁| 亚洲日韩av一区二区三区百合| 亚洲精品1区| 亚洲天堂7777| 操淫穴亚洲五月丁香| 吖在线不卡一区二区国产剧情| 中文久久一区| 国产精品一区av在线| 美女裸体麻豆天美蜜桃91| AⅤ片水多多| 婷婷色香| 国产在线强奸视频| 97se亚洲| 欧美黑人猛交春色影视大全| 天天干天天舔| 日本最新1区2区3区| 国产精品麻豆成人av| 中文字幕乱碼在线| 人人操人人插人人摸人人干| 欧美中字不卡| 2020视频1区2区3区| 3PAV乱伦视频| 色婷婷婷五月天激情四射| 国产精品露脸在线观看| 99精品无码| 日本在线一二| 久久五月天婷婷丁香中文字幕| 欧美综合制服在线| 欧美午夜精品久久久久久超碰| 大学生美女口爆| 欧美精品91| 国产欧美一级在线观看| 嗯嗯嗯啊啊在线观看| 色婷婷五月综合激情中文字幕| 日韩成人小视频| 天天日老熟妇| 日本操嫩b网| 四虎影视永久在线观看精品免费网站 | 大学生美女口爆| 精品久久久久瑟瑟| www久久99| 九九碰九九爱97超碰| 国产精品。| 97人人操人人摸| 午夜亚洲| 国产亚洲精品美女| 丁香激情网| 秋霞一集毛片观看| 91熟女视频网| 午夜激情床戏激情| 91n免费处女| 久久精视频美日韩在线视频| 天久久久噜噜噜久久国产精品爽爽 | 超碰久久中文| 日本无码1| 人人妻人人爱人人玩| 日韩精品9999| 青青11操操操操操操操操| 成人麻豆av电影网站| 亚洲Av诱惑| 91亚洲欧美色图| 性饥渴少妇av无码毛片| 97超碰9| av亚洲天堂资源网站| 国产尹人在线视频免费| 97色亚洲| 校园春色AV天堂| 午夜精品久久久99| 免费黄色视频网址| 久久直播国产| 伊人国产成人av网站| 少妇人妻在线| 久久超碰98| 久色网| 美国人人操人人操| 999久久久九九九九| 嗯嗯啊啊好大好爽| 婷婷伊人一区| 啪啪一区| www成人啪啪18秘 免费| 思思视频免费看网站| 超碰在线综合97| 日韩情色AV| 婷婷久草一区二区三区| 五月丁香色色网| 自拍偷拍亚洲熟女妇人精品| 日本精品五区| 无马一区二区| 夜夜国自区| 中国的操老妇女| 蜜桃精品一区二区三区ww| A久久| 亚洲精品成人激情在线| 日本免费中文字幕在线| 综合伊人激情| 亲子敌伦对白在线播放| 国产精品福利视频| 亚洲综合草草| 国产亚洲精品美女| 亚洲欧美一区二区不卡视频播放| 搡老人老9丨女老熟人| 四虎国产精品永久在线囯在线| 精品天堂| 欧美色图20p| 9久久精品| 一本色道人妻久久| 无马一区二区| 99操逼| 久久是精品| 国产亚洲精品美女| 成人区人妻精品一| 亚洲日韩天堂| 熟妇色99| 91综合色噜噜| 成在线人在线观看视频| 秋霞操逼片| 日韩欧美亚洲自拍偷拍| 久久久久久亚洲中文| 久久中文字幕一区不卡| 亚洲国产一级精品毛一级精品看免费视频 | 91亚洲最新在线| 九9精品| 亚洲AV色图一区| 精品妇操一区二区三区| Julia Annxxxxx| 夜夜高潮夜夜爽国产伦精品| 91女色| 91综合网站| 色吧 综合| 色色网91| 国产女性无套 免费观看| 一线黄色免费性爱片| 26uuu性物| 国产成人一级av88| 欧美视频边做饭边橾| 日本三级R| 色综合久| 亚洲国产综合久久天堂| 97超碰免费人人性爱| 91黑丝美女| 在线 欧美 亚洲| 精品人妻一区二区三区四区| 99操| 午夜后入| se..亚洲欧美| 国产亚洲精品激情| 欧亚在线视频| 久久熟妇五十路一区| 中文字幕88av在线| 婷婷探花久久精品一区| 亚洲 欧美 第一页| 久久久亚洲高清不打码| 欧美 亚洲 综合 制服| 夜夜操91744565| 97在线无精品 | 夜夜嗨绯色| 超碰9 7女人| 九九操久久国产免费视频| 大香蕉久久| 亚洲一区二区三区中文字幕| 中文字幕jul-617人妻熟女| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 欧美一级黄片免费播放| 日韩在线视频1234| 婷婷精品国产一区二区三区日韩| 久久大香蕉97| 久久首页| 成人丁香五月| 青久操| 熟妇人妻一二三区免费| 蜜乳AV免费观看| 国产av美女被艹的乱叫| 男人的天堂VA在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 三及片网站| 欧美A片中文字幕| 九久9精品| 久久超碰、| 亚洲成人在线乱码色午夜| 色在线综合| 亚洲高清国产理伦片| 成人资源中文字幕在线观看天天| 制服丝袜第二页| 日韩免费a级毛片无码a∨| 秋霞曰韩R级| 日韩ab网| 女人天堂av在线播放| 91在线视频观看国产| 97人肏| 骚熟女AV网| 乱伦av.com| 嗯嗯嗯,草死我| 精品玖九九久| 久久99网站| 色天堂在线观看| 亚洲精品久久久久毛片A片拉屎| 欧美日本一区二区a人| 一二三啪啪专区| 加勒比色99999| 中文字幕交换人妻| 97精品97| 不卡av在线中文字幕| 97超碰国产精品| 久久这里只精品| 欧美日韩国产高清在线一二三区 | 亚洲性爱高潮影院| 国产sv美女内射| 免费A V在线播放| 国产肏屁眼视频| 懂色Av| 男人兔费天堂| 超碰人妻久久| 啊啊啊啊一区| 大香久久| 一区二区三区精品黑丝白丝酒店对鸡| 97久久综合网| www.狠狠| 久久久久久久久久9| 久久女人| 欧美熟妇人体| 99re免费视频精品全部| 日本A级视频| 51国产午夜精品视频| 久久精品亚洲婷婷| 屁股久久久久久久久久| 台欧久久精品视频| av毛片aaaaa免费看| 台欧久久精品视频| 亚洲一区在线观看欧洲| 亚洲免费日韩在线一区二区| 午夜精品久久久久久久久久蜜桃 | 在线电影亚洲色图| 久久久国产成人一区二区三区在线| 97超碰这里只有精品| 妺妺跟我一起洗澡没忍住| 亚洲欧美日韩国产丝袜自拍中文| 人妻少妇视频在线播放| 特级丰满少妇一级AAAA爱毛片| 午夜操一视频一区| 国产成自自拍在线观看| 九色97| 国产精品内射婷婷一级二| 香蕉综合网| 操B久久| 玖玖综合网| 精品一久久久| 色五月天AV| 国产视频第2页| 丝袜剧情| 亚洲综合嫩| 日韩AV电影网站| 欧美性天天| 手机不卡视频不卡在线一二三区| 男人天堂网站| 大香蕉在线SuP| 99久视频| www.91理论| 噜噜噜亚洲精| 激情五月婷婷综合| 亚洲高潮影院| 99re9这里只有精品| 性色av蜜臀av色欲aV| 国产在线激情| 五月天激情小说| 亚欧无码线免费观看视频| 99热免费精品| 99ri在线视频| 精品久久久久久无码| 极品色电影院| 97精品国产97久久久久久| 翔田千里无码中出中文字幕| 91欧美丝袜| 蜜色网色哟哟| 成年人一级黄色毛片大全在线观看| 精品无码一区二区三区| 日本不卡码黄色| 国产一级做a爰大片免费久久| 精品午夜福利| 天堂av最新电影网| 97干色天堂| 强奸乱伦αv片| 亚洲人妻五月丁香婷婷| 男人精品天堂一区| 久久久久亚洲熟妇熟女| 欧美伦乱| 国产精品视频在线播放 | 97久久久久久久精| 亚洲成人一区二区精品| 91丨国产丨白浆秘 洗澡动漫| 欧美色图在线视频少妇| 神马久久网| 色婷婷综合久久久久中文国产精品一区中文字幕,国产福利电影一区二区三区 | 乱伦熟女专区| 久久精品黄色| 日韩精品资源| 最新9久久久9免费视频| 美女高潮视频91| 91超级碰碰| 99re免费视频精品全部| 大鸡巴久久| 久久久精品一区二区| 亚洲男人的天堂V| 丁香六月婷婷综合| 另类小色呦| 被男人吃奶很爽的毛片| 日本影视久久免费| 天堂中文日本在线观看| 欧美日韩国产成人高清| 欧亚韩国999| 99热免费精品| www.97在线| 强奸乱伦大香蕉网| 天天操天天射天天日| 躁躁躁日日躁2020| 色偷偷综合91久久噜噜| 久操av在线| 美欧老女人97| 欧美视频激情久久久久久| 亚洲精品久| 丁香六月啪啪| 91九色首页| 免费观看国产小粉嫩喷水精品午| 色妇综合网| 美女丝袜激情小说| 骚乳在线| 大香蕉十区| 国产女上位好爽在线| 色情五月婷婷| 婷婷99狠狠| 激情小说五月天| 国产高清26uuu| 色黄色美女大长腿午夜视频| 日本久久综合| 国产精品91ai| 91久精品| 自拍欧美| 极品AV网站在线观看| 天天干天天日天天射黄色片| 色女网日韩| 青草青青久久久久久国产| 久久男人的天堂国产| 婷婷五月天福利| 先锋精品av色鲁| 超碰性爱97| 久插不卡| 午夜精品人妻二区三区| 天天综合网亚洲综合网| 男同专区一区二区三区在线| 欧美+日产+中文| 亚洲激情视频| A一区片| 欧美一级久久久久久久大片动画| 亚洲啪啪视频一区二区| 国产AV超爽| 日本三级韩三级99久久| 蜜臀久久99精品久久综合| 天天91~综合入口| 爱干爱射网啊啊啊| 精彩国产视频播放1区2区| 亚洲综合888| 中国黑人三级片网站上区| 96久久久精品| 久久久一二三四区| 91丝袜在线观看| 亚洲开心网| 九九九网站| 日韩中文字幕国产| 天天视频黄网站| 日本午夜久久电影| 精品国产污一区二区三区| 熟女AV一区| 亚洲欧洲综合| 岛国激情视频在线观看| 日本黄 R色 成 人网站| 九九热九九热| 婷婷8月天青娱乐| 国产强奸乱伦无码视频| 免费看久久久性性| 精品91摸| 久久精品国产亚洲av水密被窝| 午夜啪| 91丨熟女丨丰满熟女| 好吊色在线观看| 伊人少妇久久久| 日韩猛交| av在线免费一区二区| 激情五月天网站| 五月天加勒比啪| 1240青青草一区二区三区视频天爱| 精品国产91内射久久| 色婷婷五月综合激情中文字幕| 青青色综合| 亚洲AV永久无码精品成人调教| 99久久久无码国产精品性啊聊| 黄在线| 91美乳| 日韩精品午夜操呦呦不卡影院 | 九久久精| 色色香蕉| 黑人狂躁日本妞一区二区三区| 91色艳| 天天情欲宗合网| 国产精品亚洲色婷婷久久久| 亚洲无码色| 日韩av电影网站| 亚洲国产一级黄色视频| 天天干,天天日| 中出后入| 国产免a费看黄片在线| 淮穴色AV| 亚洲综合伊人无码久久| 亚州AV无码国产精品| 亚洲国产精品久久久男人的天堂| 国产99热| 欧美日韩99| 天天α片| h4610国产人妻| 日日日啊啊啊| 啊啊啊啊操死我| 日日夜夜狠狠| 九九五月天| 黄色AAAAAAAAAAA大片| 婷婷色香| 性色av大全| 亚洲、日韩、综合、另类| 欧美综合综合| 日韩欧美综合激情| 伊人96在线| 老熟妇一区二区三区…| 青青草手机在线免费观看| 国产资源中文字幕在线| 97超碰色五月| 男女一进一出视频久久| 黄色乱论网站| 五月丁香六月综合缴清无码| 精品人妻夜夜草| 四虎精品永久在线播放| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久久九九网站| 久久成人午夜狠狠| 综合久久欧美| 高潮9999外国| 大香蕉伊人久久| 人人操人人肉久久精品| 亚洲男人天堂2019| 国产h小视频在线观看免费| 欧美九九爱| 久久草草亚洲蜜桃臀| 久久蜜桃综合网| 伊人操你| 午夜综合在线| 美女自卫慰黄网站免费| 99热婷婷一区二区三| 亚洲精品中文字幕一区在线视频 | 久操网址| 天操天操夜操夜月月年年操操| 亚洲成?V人片在线观看福利| 超碰 国产熟女精品一区| 婷婷五月天激情网| 清纯唯美亚洲| 亚洲自拍欧美国产首页网曝| 91三级理论片播放器| 草B在线| 校园春色制服丝袜中文字亚洲| 国产白丝av| 亚州综合AⅤ| 国产乱码精品一区二区三区四川| 九九九只有精品| 97中文天堂| 人人操人人舒服| 97一区二压| 久久国内| 麻豆天美91| 超碰97最新人妻| 欧美大香蕉专区网| 999久久久| 久久久久七视频| 免费中文在线| 肉动漫无遮挡h在线观看| 久久內射| 五月丁香婷婷综合| 秋霞一集毛片观看| 中文字幕福利视频一区二区三区在线观看| 殴美,日韩国产伦精品| 性暴力欧美猛交在线直播| 一区二区无码视频| AV天堂电影网| 天天做日日爱夜夜爽| 69视频入口| 啊啊啊啊啊好舒服视频| 日韩精品99999| av天堂精品久久| 亚洲国产97| 天天插夜夜爽| 大香蕉色十月| 国产亚洲禁久一区二区 | 国产精品久久久久综合| 伊人网免费视频| 亚洲天在线| 免费人人搞97| 另类综合另类| 婷婷五月天激情网| 人人操人人爽人人操人人| 久久久久久无码人妻中文字幕| 日日夜夜骚| 五月天婷婷基地| 国产极品精品美女视频| 免费AV中文网在线观看| 中文字幕免费在线观看| 欧美中字二区| 五月天色图| 巨爆乳肉感一区二区三区竹菊影视 | 97在线视频观看免费| 九九精品美女高溯喷水| 综合色啪| 日韩丰满熟妇| 老司机深夜18禁污污网站| 综合欧美色图| 精品国产乱码久久久影院| 国产综合久久久鬼色| 亚洲色图大香| 99热综合| 中文字幕在线高清男人的天堂 | 男人的天堂va| 精品人妻丰满熟妇一区二区三| 欧美日韩人妻婷婷一区| 啊啊啊啊啊啊好湿好爽视频| 九久久九精品视频| 色播丁香| 乱色视频中文字幕| 色噜噜精品一区二区三| 中文字幕一区二区免费在线| 人妻天天爽天天爽三区| 搡老女人老91二区| 欧美色视| 夜夜爽夜夜操| 农村妇女精品一二区| 97资源站日韩| 东京男人天堂| 后入精品| 欧美色乱| 久久超碰97| 欧美78P| 国产99999| 91制服丝袜| 97国产|免费| 美女91AV| 久久少妇| 超碰欧美| 激情小说日韩无码| 国产福利电影| 最新av网站在线观看| 台湾一区国产高清在线| 老妇女91| 亚洲乱码精品一区二区| 国产成人亚洲精品无码最新在线| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | av无码av无码专区| 日韩激情啪啪| 色99视频| 色嘟嘟人妻天堂网| 天天爽夜夜欢视| 成人A片男人的天堂| 丝袜综合| 丰满少妇精品一区二区| 正宗无毛一线天嫩逼| 久久久涩| 亚洲天堂男人天堂网| 亚洲综合欧美| 日本人妻中文字幕精品| 午夜福利视频在线一区| 色婷婷五月综合激情中文字幕| 超碰人人色| 伊人久久亚洲中文字幕| 老汉网| 97久久精品不卡| 丰满少妇一区二区三区免费看| 国产精品97超碰| 欧美天天综合网版| 久久久99免费| 女人高潮抽搐喷水视频网站| 超碰97起碰| 中文字幕55555| 999九九九九国产动| 欧美性性性| 韩国免费播放一级毛片| 一本一道vs波多野结衣| 天天做天天爽| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 日本久久综合| 久久久性少妇| 国产精品久久久久久久久久梁医生| 国产精品久久99日日| 亚洲最大无码中文字幕网站| 欧美色九九九| 99最新日韩偷拍视频| 99热在线播放| 26uuu国产日韩综合在线观看| 精品中文字幕一区二区l - 百度| 操操AV电影| 欧美综合在线91| 亚洲猛交| 日韩人妻播放| 天天影视网综合少妇| 欧美亚洲宗合色性图| 男人天堂新在线| a一区二区三区乱码在线| 中文字幕五区| yy少妇精品久久| 人妻精品一区二区| 在线强奷到舒服的无码视频| 人妻碰碰碰碰碰碰| 欧美小说区视频区| 日韩无码黄色片| 懂色综合久久久| 中国熟女91| 国产精品爱欲| 91狠| 欧美精品欧美精品系列| 91午夜无码| 红杏大香蕉| 今日头条成人一区二区三区四虎精品| 久久久蜜桃臀无码视频| 黑人狂躁日本妞一区二区三区| 欧美精品第3页| 韩日自拍| 超碰色男人操熟女| 91Chinese在线| 亚洲熟女乱综合一区二区三区| 天天92av| 欧美日本不卡| 成人av影院在线观看| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 欧美久久婷| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 色九久| 3p国产欧美99热| 亚洲 欧美 另类 日韩 人妻一区| 丁香九月婷婷| 黑丝少妇在线观看| 超碰 欧美| 久久五十路熟女人妻| 九九九久千久久激情蜜桃在线看| 国产精品久久久久久久久久久久久久| 亚洲第一在线视频| 超碰碰小说97| 自拍偷拍 高清无码| 亚洲网污污污污| 麻豆国产97在线| 久久天天摸| 亚洲天堂男人天堂网| 99色热| 蜜桃午夜视频一区二区 | 自怕偷自怕亚洲精品| 大香蕉免| 久久AV无码AV| 欧美最婬乱婬爆婬性视频 | 黄呦呦在线| 日本孕妇一区二区视频操逼免费看 | 人人性爱视频免费| 国产精品久久久久久夜夜夜| 婷婷五月天激情四射| 国产最新AV| 亚洲加勒比| 激激五月| 人人操人人干xxx| 日韩久久超碰色| 欧美自拍偷拍综合图片| 青青草精品| 国产黄色在线播放观看| 亚洲无限观看| 性久久| 啊啊啊啊啊好舒服视频| 人人操人人狠狠操| 夜夜操天| 老司机福利青青草| 色欧美天天| 操碰97| 婷婷五月天久久精品视频一区二区三区| 91大神精品长腿在线观看网站| 亚洲精品天天影视综合网 | 亚洲熟女一区| 91精品无码人妻系列| 少妇色欲综合网2| 91久久久久久久久久久| AV乱伦专区| 97免费视频在线观看视频| 久久久久国产精品喷潮免费观看臀| 北野未奈加勒比av| 污啪啪啪视频| 日韩免费在线观看不卡| 欧美aⅴ99久久黑人专区| 久草免费在线一区二区| 91情色在线| AV一二区| 嫩草影院在线观看精品| 亚洲图片视频小说| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 丁香六月综合激情| 日本黄大片在线观看视频| 欧美97视频| 欧美性爱在线无码| 强奸乱伦 亚洲一区| 秋霞鲁丝午夜无码一区二区三| 一起草欧美| 97视频一区| 中文字幕日韩综合| 国产精品久久99日日| 青草伊人网| 亚洲s在线观看| 中文字幕av片| 久久久久久久一级黄色打同平台| 超碰在线观看av不卡| 日1区2区3区2020| 91丝袜美女| 国产精品自产拍在线观看社区| 国产极品馒头逼| 97免费免费视频网| 久久激情视频| 日日操免费视频| 亚洲 欧美 第一页| 97超碰久久色| 日韩精品一二三四| 久久久免费一级黄片| 男人的天堂 在线一区| 9ⅰ久久久天天| 色婷婷aV一区二区三区麻豆综合| 日韩一级成人毛片免费观看 | 青娱乐福利99| 欧美日韩久久精品爱爱| 激情视频一二三| 日韩内射视频| 巨爆乳肉感一区二区三区竹菊影视| 麻豆国产97在线| 日本媚薬中文字幕在线| 欧美综合网1| 色婷婷五月天| 九九无码视频| 国产精品区在线12p| 一区二区三| 亚洲蜜臀精品视频久久| 人妻天天夜夜爽一区二区| 深田咏美亚洲精品福利社| 手机午夜电影神马久久| 91这里只有精品| 欧日韩一二三f区| 91天天c| 久久综合乱子伦国产免费| 日韩无码专区| 91狼人| 嗯~啊~快点 死我视频免费看网站| 333kkkk·亚洲com久久| 国产又黄又粗的视频| 免费视频一二三区| 日日摸日日弄日日拍| 久九9精品| 国产传媒一区日韩| 欧中日成人免费影视| 91黑丝露脚| 怡红院一区二区熟女人妻| 欧美黄片免费在线观看视频| 日韩免费在线观看不卡| 国产在线播放成人免费| 91熟女丨老女人| 日日嗷| 欧美亚洲韩国视频十五区| 91天美传媒在线观看| 色爱欲亚洲| 亚洲天堂另类美腿| 国产精品久久久视频| 久久精品国产精品亚洲艾通辽熟妇 | 亚洲综合在线高清| 亚洲一二三精品久久网| 大香蕉AV丝袜| 99国产天美| 大鸡吧尹人在线| 亚洲18禁| 亚洲图片欧美91N| 综合色图亚洲欧美| 99r九九| 久视频在线观看| 中日韩久久人妻一区二区| 日韩精品高清资源在线| 色九九九九久| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 久久久久久久六六| 97欧美久久久久久久| 国产后入清纯| 黄站在线免费观看| 激情在线青青操| 日本久久超碰| 99精品国产户外露出| 18禁看网站一区| 精品成人亚洲午夜电影| 亚洲国产一区二区入口| 国产不卡免费在线视频| 综合一区中亚洲国产成人综合精品 | 亚洲啪啪性视频| 中文字幕在线观看视频www| 欧美亚洲玖玖玖| 久热久一区二区三区| 国产婷婷一区| 九九av| 黑丝制服中文字幕| 亚州性色| 四虎午夜影院| 五码视频在线观看| 国产不卡免费在线视频| 亚洲日韩国产欧美综合v| 岛国艾薇凹凸视频天堂| 狠狠干婷婷| 欧美天天拍| 91九九九小逼| 综合网亚洲1| 国产精品不卡少妇白| 一级乱伦网站| 国产av波波国产精品| 午夜福利成人免费视频| 日韩国产品视频中文字| 中文字幕天天操| 国产精品农村妇女精品| 婷婷综合伊人一区| 久草国产在线视频| 日韩午夜啪啪视频| 伊人青青一区成人视频在线观看区| 亚洲色图 图片| 男人的天堂视频精品乱在线| 一本色道久久天天射天天干| 亚洲 欧美日韩 另类| 久久久久久亚洲精品中文字幕人妻| 中文字幕日韩人妻视频一区二区三区 | 天堂日本亚洲欧美| www网站黄| 亚洲色综合| 激情五月婷| 欧插网站| 久久久久久九九九九-美女久久久久久久-成人AV| 亚洲国产精品乱码在线观看| 美女超碰978| 色超碰综合| 欧美熟妇精品黑人巨大一二三区| 欧美男女午夜啪啪| 小草精彩毛片| 国产久久一区二区三区野外在线| 蜜桃在线观看一区二区三区 | 久久久久骚| 大香蕉 222| 久久人妻无码毛片A片麻豆| 青青草日韩免费观看高清在线| 国产精品丝袜久久亚洲不卡| 日韩二区三四区五区六区在线看| 春色综合免费| 精品欧美乱码久| 欧美日韩高潮喷水91| 欧美亚洲国内自拍| 中日韩久久久免费看| 乱伦1色页| 9超碰免费| 伊人影院日本| 日韩人妻无码专区| 国产一区二区精品在线视频| www.av家庭乱伦| 婷婷久热| 97操B| 日本午夜福利影院| 激情视频图片| 国产高清精品福利| 亚洲美女黄色| 日本色色色视频| 91路www| 欧美日韩性爱无码| 精品二区三四区五电影 | 上特色A在线| 激情五月综合网| 亚洲高清欧美总合| 国产精品色色| 国产精品香蕉| 久久久久久久久久久97| 极品销魂美女一区二区 | 91影库| 999综合色| 亚洲1区2区三区高清中文字幕| 99精品伊人| 免费看久久久性性| 1024精品在线| 亚洲国产剧情少妇激情| 久操频道免费在线呗看| 7月婷婷综合| 天堂а√在线最新版在线| 丝袜色综合| 丁香五月偷拍| 欧美一级美片在线观看免费| 大香蕉在线免| 亚洲操操| 色翁荡息又大又硬又粗又爽| 少妇99| 欧美日韩高潮喷水91| 久久久精品电影| 学生妹天天看| 中文字幕一区 二 区 三 四 五 区日 日 骚 | 人人搞人人插人人操| 成人片视频| 人妻天堂综合网| 丰满少妇一区二区三区免费看| 色呦呦、国产精品| 欧美日韩国产三级黄色| 伊人欧美大香蕉视频| 97看操| 亚洲一区深夜| 亚洲熟女精品| 天天综合网91| 97超碰人操| 欧美综合97www| 日韩性爱再线视频| 精品国产Av无码久久久亚洲| 午夜视频久久久| 亚洲欧洲无码一区夜| 日本免费不卡二区| 天天色播| 成人性爱美曰韩| 久久久精品91八戒| 精品999999| 欧美宗合网| 亚洲偷拍欧美激情| 成人老鸭窝人人在线视频| 操碰97| 婷婷中文字幕| 色999五月色| 国模无码一区二区三区在线| 白丝被操91| 成人性爱免费播放| 青草精品视频日本久久久久网站在线| 国产乱码久久久久久| 欧美在线l亚洲| 神马午夜久久久| 1二区9| 中文字幕人妻色偷偷久久皮| yazhousetuoumei| 天天操女人| 校园春色亚洲欧洲| 日本三级小说中文字幕| www.99热在线只有精品| 麻豆久久久久久久久丝袜| 加勒比海成人视频网| 国产AV天美传媒一区二区三区| 91色欧美| 宅男影院久久久,99| 国产粉嫩出水在线播放| 69人妻人人揉人人躁人人精品| 色娱乐色呦呦夜夜夜夜av| 亚洲综合有码| 一级岛国大片| 亚洲国产日韩欧美熟妇在线| AV天天综合| 丝袜视频网国产90| 无码丰满熟妇一区二区浪潮AV| 免费看一级a性色生活片久久无| 麻豆蜜桃视频在线观看| 久久夜精品一区二区三区| 韩日欧亚a级| 亚洲中文字幕精品一区| www.91人妻.com| 国产激情片在线观看| 蜜色网色哟哟| 天天摸天天舔天天操| 风间由美日韩欧美久久| 中文字幕精品探花视频| 午夜福利精品| 射丝袜高跟鞋99| 熟女熟妇一区二区三区视频| 亚洲色狠| 影音先锋中文字幕日本好一区二区| 99爱在线视频| 欧美日韩亚洲国产中文永久天天看| 久久大黄片| 狠狠爱综合| 婷婷另类小说| 亚洲国产精品无码AV久久| 国产精品色片一区二区| 欧美18禁91| 亚洲欧洲激情卡通另类文学四射小说网站 | 亚洲第2页| 中文字幕一区电影在线观看| 看日韩美女二区三区免费操逼视频| 麻豆性爱视频在线播放| 97久久久久| av国产无码| 午夜福利在线合集| 天天躁日日躁狠狠躁| 一本一道vs波多野结衣| 色性荡荡荡荡视频| 欧美熟妇色| 日韩一级成人毛片免费观看| 色眯眯射| 91色图| 婷婷五月花| 久热99999| 亚欧无码在线| 亚洲精品欧洲精品| 碰碰97| 日日夜夜骚| 思思久热在线精品66| 国产原创自拍| 日韩97超碰| 国产在线精品偷| 日本幼女18+| 中文久久爆乳| 日韩青久久| 97人人模人人爽人人| 久久久精品九| AV无码久久久精品| 久操免费电影| 久久曰曰| 97欧美日韩| 天天肏美女| 成人26uuu| 亚洲综合大片| 国产在线精品偷| 97国产精品一区| 91久久精品蜜臀| 国产无码三级视频在线观看| 日韩超碰精品综合| 久久精品中文字幕观看| 欲色啪| 99re69| 园内精品自拍视频在线播放| 欧美午夜视频| 无遮挡男女激烈动态图| 久久五月视频| 97在线播放| 大香网站| 99在线啪| 五月天婷精品激情| 乱色老一区二区三区的观看方式| PMv在线观看| 国产精品小视频一区二区三区| 97精品97久久| 亚洲av淫乱| 综合97| 五十路熟女人妻一区二区三区四区五| 啊嗯嗯啊好大好爽| 东北女人的毛片| 九久9热| 红桃视频高潮| 国模限制级电影| 青青草中文-久久青草精品一区二区三| 国产三级资源在线观看| 日韩三级伊人| 欧美日韩另类激情图片| 噜噜瑟| 性色avv| 激情文学亚洲| 久久久久女教师免费一区| 夜夜嗨TV| 熟女自慰久久久| wwwxxx日本爽| 97在线青| 九月婷婷| 九九视品黄色| 91精品国产综合久久久蜜臀| 69人妻精品一区二区绯色| 日韩一级二级| 青青草日本无码| 嗯嗯啊在线视频| 熟女日韩| 天天射夜夜| 玖玖超碰熟| 91白虎| 富女玩鸭子一级毛片| 免费A片三p视频| 色操逼网| 无码免费精品高清| 丝袜美腿诱惑亚洲欧美视频在线观看| 色五月婷婷麻豆在| 欧美综合97www| 色情婷婷久久五月天| 天天搞欧美| 好吊色综合| 久久二| 国产一级不卡在线观看| 懂色AV蜜臀无码精品APP | 欧美呦呦性爱| 亚洲国产成人精品无码专区| 无码高清操逼网址| 啊视频在线| 国产不卡精品91| 中文欧丝袜诱惑| 国产白丝精品在线观看| 中日亚韩免费视频| 五月激情小说| 国产精品国产| 超碰在线人人射| 日本精品高清一二区一本到| 日本三级人妻a人妻一在线| 少妇丝袜在线观看AV| 色香欲影| 日欧操屄视频| 熟妇精品juliaannAV| 亚洲天天天| 成人26uuu| 淫荡网址| 九月伊人中文字幕| 天天综合网AV91| 99热导航| 日韩成人小视频| 97久操| 操一操摸一摸| 亚洲欧洲av影音| yw尤物av无码点击进入麻豆| 91久久久老司机| 91人妻爽爽人人做人人澡| 一起草欧美| 国产在线能看的你懂的| 大香蕉乱级| 色色色欧美| 久久东京国产精品视频| 久久亚州精品成人Av无| PMv在线观看| 被男人吃奶很爽的毛片| 一级一性爱免费视频| 亚洲av无码国产精品字幕| 超碰精品日韩欧美国产| 天堂а√在线最新版在线| 国产精品国产亚洲区艳妇糸列| 欧美黄色手机在线观看| 欧美日韩*字幕一区| 日韩激情小说一区二区| 午夜超爽| 99精品在线| 亚洲s在线观看| 天堂伊人久久| 久久久久久少妇| 97视频免费| 国产最火爆久久国产网站网站| 免费一级a毛片久久久久久鸭绿欲| 亚洲aV无码成人在线观看| 在线另类| 97欧美色综合| 亚洲无线码欧洲精品区别| 欧美 亚洲 制服 精品| 天天网综合| 曰韩无码777|