3atv精品不卡视频,97人人超碰国产精品最新,中文字幕av一区二区三区人妻少妇,久久久精品波多野结衣,日韩一区二区三区精品

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

机器学习算法与Python实践之(二)支持向量机

發布時間:2025/4/5 python 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 机器学习算法与Python实践之(二)支持向量机 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

http://blog.csdn.net/zouxy09/article/details/17291543

機器學習算法與Python實踐這個系列主要是參考《機器學習實戰》這本書。因為自己想學習Python,然后也想對一些機器學習算法加深下了解,所以就想通過Python來實現幾個比較常用的機器學習算法。恰好遇見這本同樣定位的書籍,所以就參考這本書的過程來學習了。

? ? ? ?在這一節我們主要是對支持向量機進行系統的回顧,以及通過Python來實現。由于內容很多,所以這里分成三篇博文。第一篇講SVM初級,第二篇講進階,主要是把SVM整條知識鏈理直,第三篇介紹Python的實現。SVM有很多介紹的非常好的博文,具體可以參考本文列出的參考文獻和推薦閱讀資料。在本文中,定位在于把集大成于一身的SVM的整體知識鏈理直,所以不會涉及細節的推導。網上的解說的很好的推導和書籍很多,大家可以進一步參考。

?

目錄

一、引入

二、線性可分SVM與硬間隔最大化

三、Dual優化問題

? ? ? ?3.1、對偶問題

? ? ? ?3.2、SVM優化的對偶問題

四、松弛向量與軟間隔最大化

五、核函數

六、多類分類之SVM

? ? ? ?6.1、“一對多”的方法

? ? ? ?6.2、“一對一”的方法

七、KKT條件分析

八、SVM的實現之SMO算法

? ? ? ?8.1、坐標下降算法

? ? ? ?8.2、SMO算法原理

? ? ? ?8.3、SMO算法的Python實現

九、參考文獻與推薦閱讀

?

一、引入

? ? ? ?支持向量機(SupportVector Machines),這個名字可是響當當的,在機器學習或者模式識別領域可是無人不知,無人不曉啊。八九十年代的時候,和神經網絡一決雌雄,獨領風騷,并吸引了大批為之狂熱和追隨的粉絲。雖然幾十年過去了,但風采不減當年,在模式識別領域依然占據著大遍江山。王位穩固了幾十年。當然了,它也繁衍了很多子子孫孫,出現了很多基因改良的版本,也發展了不少裙帶關系。但其中的睿智依然被世人稱道,并將千秋萬代!

? ? ? ? 好了,買了那么久廣告,不知道是不是高估了。我們還是腳踏實地,來看看傳說的SVM是個什么東西吧。我們知道,分類的目的是學會一個分類函數或分類模型(或者叫做分類器),該模型能把數據庫中的數據項映射到給定類別中的某一個,從而可以用于預測未知類別。對于用于分類的支持向量機,它是個二分類的分類模型。也就是說,給定一個包含正例和反例(正樣本點和負樣本點)的樣本集合,支持向量機的目的是尋找一個超平面來對樣本進行分割,把樣本中的正例和反例用超平面分開,但是不是簡單地分看,其原則是使正例和反例之間的間隔最大。學習的目標是在特征空間中找到一個分類超平面wx+b=0,分類面由法向量w和截距b決定。分類超平面將特征空間劃分兩部分,一部分是正類,一部分是負類。法向量指向的一側是正類,另一側為負類。

? ? ? ? 用一個二維空間里僅有兩類樣本的分類問題來舉個小例子。假設我們給定了下圖左圖所示的兩類點Class1和Class2(也就是正樣本集和負樣本集)。我們的任務是要找到一個線,把他們劃分開。你會告訴我,那簡單,揮筆一畫,洋洋灑灑五顏六色的線就出來了,然后很得意的和我說,看看吧,下面右圖,都是你要的答案,如果你還想要,我還可以給你畫出無數條。對,沒錯,的確可以畫出無數條。那哪條最好呢?你會問我,怎么樣衡量“好”?假設Class1和Class2分別是兩條村子的人,他們因為兩條村子之間的地盤分割的事鬧僵了,叫你去說個理,到底怎么劃分才是最公平的。這里的“好”,可以理解為對Class1和Class2都是公平的。然后你二話不說,指著黑色那條線,說“就它了!正常人都知道!在兩條村子最中間畫條線很明顯對他們就是公平的,誰也別想多,誰也沒拿少”。這個例子可能不太恰當,但道理還是一樣的。對于分類來說,我們需要確定一個分類的線,如果新的一個樣本到來,如果落在線的左邊,那么這個樣本就歸為class1類,如果落在線的右邊,就歸為class2這一類。那哪條線才是最好的呢?我們仍然認為是中間的那條,因為這樣,對新的樣本的劃分結果我們才認為最可信,那這里的“好”就是可信了。另外,在二維空間,分類的就是線,如果是三維的,分類的就是面了,更高維,也有個霸氣的名字叫超平面。因為它霸氣,所以一般將任何維的分類邊界都統稱為超平面。

? ? ? ?好了。對于人來說,我們可以輕易的找到這條線或者超平面(當然了,那是因為你可以看到樣本具體的分布是怎樣的,如果樣本的維度大于三維的話,我們就沒辦法把這些樣本像上面的圖一樣畫出來了,這時候就看不到了,這時候靠人的雙眼也無能為力了。“如果我能看得見,生命也許完全不同,可能我想要的,我喜歡的我愛的,都不一樣……”),但計算機怎么知道怎么找到這條線呢?我們怎么把我們的找這條線的方法告訴他,讓他按照我們的方法來找到這條線呢?呃,我們要建模!!!把我們的意識“強加”給計算機的某個數學模型,讓他去求解這個模型,得到某個解,這個解就是我們的這條線,那這樣目的就達到了。那下面就得開始建模之旅了。

?

二、線性可分SVM與硬間隔最大化

? ? ? 其實上面這種分類思想就是SVM的思想。可以表達為:SVM試圖尋找一個超平面來對樣本進行分割,把樣本中的正例和反例用超平面分開,但是不是很敷衍地簡單的分開,而是盡最大的努力使正例和反例之間的間隔margin最大。這樣它的分類結果才更加可信,而且對于未知的新樣本才有很好的分類預測能力(機器學習美其名曰泛化能力)。

? ? ? 我們的目標是尋找一個超平面,使得離超平面比較近的點能有更大的間距。也就是我們不考慮所有的點都必須遠離超平面,我們關心求得的超平面能夠讓所有點中離它最近的點具有最大間距。

? ? ? ?我們先用數學公式來描述下。假設我們有N個訓練樣本{(x1, y1),(x2, y2), …, (xN, yN)},x是d維向量,而yi?{+1, -1}是樣本的標簽,分別代表兩個不同的類。這里我們需要用這些樣本去訓練學習一個線性分類器(超平面):f(x)=sgn(wTx?+ b),也就是wTx?+ b大于0的時候,輸出+1,小于0的時候,輸出-1。sgn()表示取符號。而g(x) =wTx?+ b=0就是我們要尋找的分類超平面,如上圖所示。剛才說我們要怎么做了?我們需要這個超平面最大的分隔這兩類。也就是這個分類面到這兩個類的最近的那個樣本的距離相同,而且最大。為了更好的說明,我們在上圖中找到兩個和這個超平面平行和距離相等的超平面:H1: y =?wTx?+ b=+1 和 H2: y =?wTx?+ b=-1。

? ? ? ?好了,這時候我們就需要兩個條件:(1)沒有任何樣本在這兩個平面之間;(2)這兩個平面的距離需要最大。(對任何的H1和H2,我們都可以歸一化系數向量w,這樣就可以得到H1和H2表達式的右邊分別是+1和-1了)。先來看條件(2)。我們需要最大化這個距離,所以就存在一些樣本處于這兩條線上,他們叫支持向量(后面會說到他們的重要性)。那么它的距離是什么呢?我們初中就學過,兩條平行線的距離的求法,例如ax+by=c1和ax+by=c2,那他們的距離是|c2-c1|/sqrt(x2+y2)(sqrt()表示開根號)。注意的是,這里的x和y都表示二維坐標。而用w來表示就是H1:w1x1+w2x2=+1和H2:w1x1+w2x2=-1,那H1和H2的距離就是|1+1|/ sqrt(w12+w12)=2/||w||。也就是w的模的倒數的兩倍。也就是說,我們需要最大化margin=2/||w||,為了最大化這個距離,我們應該最小化||w||,看起來好簡單哦。同時我們還需要滿足條件(2),也就是同時要滿足沒有數據點分布在H1和H2之間:

? ? ? 也就是,對于任何一個正樣本yi=+1,它都要處于H1的右邊,也就是要保證:y=?wTx?+ b>=+1。對于任何一個負樣本yi=-1,它都要處于H2的左邊,也就是要保證:y =?wTx?+ b<=-1。這兩個約束,其實可以合并成同一個式子:yi?(wTxi?+ b)>=1。

? ? ? 所以我們的問題就變成:

? ? ? ?這是個凸二次規劃問題。什么叫凸?凸集是指有這么一個點的集合,其中任取兩個點連一條直線,這條線上的點仍然在這個集合內部,因此說“凸”是很形象的。例如下圖,對于凸函數(在數學表示上,滿足約束條件是仿射函數,也就是線性的Ax+b的形式)來說,局部最優就是全局最優,但對非凸函數來說就不是了。二次表示目標函數是自變量的二次函數。

? ? ? 好了,既然是凸二次規劃問題,就可以通過一些現成的 QP (Quadratic Programming) 的優化工具來得到最優解。所以,我們的問題到此為止就算全部解決了。雖然這個問題確實是一個標準的 QP 問題,但是它也有它的特殊結構,通過 Lagrange Duality 變換到對偶變量 (dual variable) 的優化問題之后,可以找到一種更加有效的方法來進行求解,而且通常情況下這種方法比直接使用通用的 QP 優化包進行優化要高效得多。也就說,除了用解決QP問題的常規方法之外,還可以應用拉格朗日對偶性,通過求解對偶問題得到最優解,這就是線性可分條件下支持向量機的對偶算法,這樣做的優點在于:一是對偶問題往往更容易求解;二者可以自然的引入核函數,進而推廣到非線性分類問題。那什么是對偶問題?

?

三、Dual優化問題

3.1、對偶問題

? ? ? ?在約束最優化問題中,常常利用拉格朗日對偶性將原始問題轉換為對偶問題,通過求解對偶問題而得到原始問題的解。至于這其中的原理和推導參考文獻[3]講得非常好。大家可以參考下。這里只將對偶問題是怎么操作的。假設我們的優化問題是:

min f(x)

s.t. hi(x) = 0, i=1, 2, …,n

? ? ? ?這是個帶等式約束的優化問題。我們引入拉格朗日乘子,得到拉格朗日函數為:

L(x,?α)=f(x)+α1h1(x)+ α2h2(x)+…+αnhn(x)

? ? ? ?然后我們將拉格朗日函數對x求極值,也就是對x求導,導數為0,就可以得到α關于x的函數,然后再代入拉格朗日函數就變成:

max W(α) = L(x(α),?α)

? ? ? ?這時候,帶等式約束的優化問題就變成只有一個變量α(多個約束條件就是向量)的優化問題,這時候的求解就很簡單了。同樣是求導另其等于0,解出α即可。需要注意的是,我們把原始的問題叫做primal problem,轉換后的形式叫做dual problem。需要注意的是,原始問題是最小化,轉化為對偶問題后就變成了求最大值了。對于不等式約束,其實是同樣的操作。簡單地來說,通過給每一個約束條件加上一個 Lagrange multiplier(拉格朗日乘子),我們可以將約束條件融和到目標函數里去,這樣求解優化問題就會更加容易。(這里其實涉及到很多蠻有趣的東西的,大家可以參考更多的博文)

?

3.2、SVM優化的對偶問題

? ? ? ?對于SVM,前面提到,其primal problem是以下形式:

? ? ? ?同樣的方法引入拉格朗日乘子,我們就可以得到以下拉格朗日函數:

? ? ? ? 然后對L(w, b,?α)分別求w和b的極值。也就是L(w, b,α)對w和b的梯度為0:?L/?w=0和?L/?b=0,還需要滿足α>=0。求解這里導數為0的式子可以得到:

? ? ? ?然后再代入拉格朗日函數后,就變成:

? ? ? ? 這個就是dual problem(如果我們知道α,我們就知道了w。反過來,如果我們知道w,也可以知道α)。這時候我們就變成了求對α的極大,即是關于對偶變量α的優化問題(沒有了變量w,b,只有α)。當求解得到最優的α*后,就可以同樣代入到上面的公式,導出w*和b*了,最終得出分離超平面和分類決策函數。也就是訓練好了SVM。那來一個新的樣本x后,就可以這樣分類了:

? ? ? ?在這里,其實很多的αi都是0,也就是說w只是一些少量樣本的線性加權值。這種“稀疏”的表示實際上看成是KNN的數據壓縮的版本。也就是說,以后新來的要分類的樣本首先根據w和b做一次線性運算,然后看求的結果是大于0還是小于0來判斷正例還是負例。現在有了αi,我們不需要求出w,只需將新來的樣本和訓練數據中的所有樣本做內積和即可。那有人會說,與前面所有的樣本都做運算是不是太耗時了?其實不然,我們從KKT條件中得到,只有支持向量的αi不為0,其他情況αi都是0。因此,我們只需求新來的樣本和支持向量的內積,然后運算即可。這種寫法為下面要提到的核函數(kernel)做了很好的鋪墊。如下圖所示:

?

四、松弛向量與軟間隔最大化

? ? ? ?我們之前討論的情況都是建立在樣本的分布比較優雅和線性可分的假設上,在這種情況下可以找到近乎完美的超平面對兩類樣本進行分離。但如果遇到下面這兩種情況呢?左圖,負類的一個樣本點A不太合群,跑到正類這邊了,這時候如果按上面的確定分類面的方法,那么就會得到左圖中紅色這條分類邊界,嗯,看起來不太爽,好像全世界都在將就A一樣。還有就是遇到右圖的這種情況。正類的一個點和負類的一個點都跑到了別人家門口,這時候就找不到一條直線來將他們分開了,那這時候怎么辦呢?我們真的要對這些零丁的不太聽話的離群點屈服和將就嗎?就因為他們的不完美改變我們原來完美的分界面會不會得不償失呢?但又不得不考慮他們,那怎樣才能折中呢?

? ? ? ?對于上面說的這種偏離正常位置很遠的數據點,我們稱之為 outlier,它有可能是采集訓練樣本的時候的噪聲,也有可能是某個標數據的大叔打瞌睡標錯了,把正樣本標成負樣本了。那一般來說,如果我們直接忽略它,原來的分隔超平面還是挺好的,但是由于這個 outlier 的出現,導致分隔超平面不得不被擠歪了,同時 margin 也相應變小了。當然,更嚴重的情況是,如果出現右圖的這種outlier,我們將無法構造出能將數據線性分開的超平面來。

? ? ? 為了處理這種情況,我們允許數據點在一定程度上偏離超平面。也就是允許一些點跑到H1和H2之間,也就是他們到分類面的間隔會小于1。如下圖:

? ? ? ?具體來說,原來的約束條件就變為:

? ? ? ? 這時候,我們在目標函數里面增加一個懲罰項,新的模型就變成(也稱軟間隔):

? ? ? ?引入非負參數ξi后(稱為松弛變量),就允許某些樣本點的函數間隔小于1,即在最大間隔區間里面,或者函數間隔是負數,即樣本點在對方的區域中。而放松限制條件后,我們需要重新調整目標函數,以對離群點進行處罰,目標函數后面加上的第二項就表示離群點越多,目標函數值越大,而我們要求的是盡可能小的目標函數值。這里的C是離群點的權重,C越大表明離群點對目標函數影響越大,也就是越不希望看到離群點。這時候,間隔也會很小。我們看到,目標函數控制了離群點的數目和程度,使大部分樣本點仍然遵守限制條件。

? ? ? ? 這時候,經過同樣的推導過程,我們的對偶優化問題變成:

? ? ? ?此時,我們發現沒有了參數ξi,與之前模型唯一不同在于αi又多了αi<=C的限制條件。需要提醒的是,b的求值公式也發生了改變,改變結果在SMO算法里面介紹。

五、核函數

? ? ? ?如果我們的正常的樣本分布如下圖左邊所示,之所以說是正常的指的是,不是上面說的那樣由于某些頑固的離群點導致的線性不可分。它是真的線性不可分。樣本本身的分布就是這樣的,如果也像樣本那樣,通過松弛變量硬拉一條線性分類邊界出來,很明顯這條分類面會非常糟糕。那怎么辦呢?SVM對線性可分數據有效,對不可分的有何應對良策呢?是核方法(kernel trick)大展身手的時候了。?

? ? ? ?如上圖右,如果我們可以把我們的原始樣本點通過一個變換,變換到另一個特征空間,在這個特征空間上是線性可分的,那么上面的SVM就可以輕易工作了。也就是說,對于不可分的數據,現在我們要做兩個工作:

1)首先使用一個非線性映射Φ(x)將全部原始數據x變換到另一個特征空間,在這個空間中,樣本變得線性可分了;

2)然后在特征空間中使用SVM進行學習分類。

? ? ? ?好了,第二個工作沒什么好說的,和前面的一樣。那第一個粗重活由誰來做呢?我們怎么知道哪個變換才可以將我們的數據映射為線性可分呢?數據維度那么大,我們又看不到。另外,這個變換會不會使第二步的優化變得復雜,計算量更大呢?對于第一個問題,有個著名的cover定理:將復雜的模式分類問題非線性地投射到高維空間將比投射到低維空間更可能是線性可分的。OK,那容易了,我們就要找到一個所有樣本映射到更高維的空間的映射。對不起,其實要找到這個映射函數很難。但是,支持向量機并沒有直接尋找和計算這種復雜的非線性變換,而是很智慧的通過了一種巧妙的迂回方法來間接實現這種變換。它就是核函數,不僅具備這種超能力,同時又不會增加太多計算量的兩全其美的方法。我們可以回頭看看上面SVM的優化問題:

? ? ? 可以看到,對樣本x的利用,只是計算第i和第j兩個樣本的內積就可以了。

? ? ? ?對于分類決策函數,也是計算兩個樣本的內積。也就是說,訓練SVM和使用SVM都用到了樣本間的內積,而且只用到內積。那如果我們可以找到一種方法來計算兩個樣本映射到高維空間后的內積的值就可以了。核函數就是完成這偉大的使命的:

K(xi, xj)=Φ(xi)T?Φ(xj)

? ? ? ?也就是兩個樣本xi和xj對應的高維空間的內積Φ(xi)T?Φ(xj)通過一個核函數K(xi, xj)計算得到。而不用知道這個變換Φ(x)是何許人也。而且這個核函數計算很簡單,常用的一般是徑向基RBF函數:

???? 這時候,我們的優化的對偶問題就變成了:

? ? ? 和之前的優化問題唯一的不同只是樣本的內積需要用核函數替代而已。優化過程沒有任何差別。而決策函數變成了:

? ? ? ? 也就是新來的樣本x和我們的所有訓練樣本計算核函數即可。需要注意的是,因為大部分樣本的拉格朗日因子αi都是0,所以其實我們只需要計算少量的訓練樣本和新來的樣本的核函數,然后求和取符號即可完成對新來樣本x的分類了。支持向量機的決策過程也可以看做一種相似性比較的過程。首先,輸入樣本與一系列模板樣本進行相似性比較,模板樣本就是訓練過程決定的支持向量,而采用的相似性度量就是核函數。樣本與各支持向量比較后的得分進行加權后求和,權值就是訓練時得到的各支持向量的系數αi和類別標號的成績。最后根據加權求和值大小來進行決策。而采用不同的核函數,就相當于采用不同的相似度的衡量方法。

? ? ? ?從計算的角度,不管Φ(x)變換的空間維度有多高,甚至是無限維(函數就是無限維的),這個空間的線性支持向量機的求解都可以在原空間通過核函數進行,這樣就可以避免了高維空間里的計算,而計算核函數的復雜度和計算原始樣本內積的復雜度沒有實質性的增加。

? ? ? ?到這里,忍不住要感嘆幾聲。為什么“碰巧”SVM里需要計算的地方數據向量總是以內積的形式出現?為什么“碰巧”存在能簡化映射空間中的內積運算的核函數?為什么“碰巧”大部分的樣本對決策邊界的貢獻為0?…該感謝上帝,還是感謝廣大和偉大的科研工作者啊!讓我等凡夫俗子可以瞥見如此精妙和無與倫比的數學之美!

? ? ? ?到這里,和支持向量機相關的東西就介紹完了。總結一下:支持向量機的基本思想可以概括為,首先通過非線性變換將輸入空間變換到一個高維的空間,然后在這個新的空間求最優分類面即最大間隔分類面,而這種非線性變換是通過定義適當的內積核函數來實現的。SVM實際上是根據統計學習理論依照結構風險最小化的原則提出的,要求實現兩個目的:1)兩類問題能夠分開(經驗風險最小)2)margin最大化(風險上界最小)既是在保證風險最小的子集中選擇經驗風險最小的函數。

?

六、多類分類之SVM

? ? ? ?SVM是一種典型的兩類分類器,即它只回答屬于正類還是負類的問題。而現實中要解決的問題,往往是多類的問題。那如何由兩類分類器得到多類分類器呢?

6.1、“一對多”的方法

? ? ? ?One-Against-All這個方法還是比較容易想到的。就是每次仍然解一個兩類分類的問題。比如我們5個類別,第一次就把類別1的樣本定為正樣本,其余2,3,4,5的樣本合起來定為負樣本,這樣得到一個兩類分類器,它能夠指出一個樣本是還是不是第1類的;第二次我們把類別2 的樣本定為正樣本,把1,3,4,5的樣本合起來定為負樣本,得到一個分類器,如此下去,我們可以得到5個這樣的兩類分類器(總是和類別的數目一致)。到了有樣本需要分類的時候,我們就拿著這個樣本挨個分類器的問:是屬于你的么?是屬于你的么?哪個分類器點頭說是了,文章的類別就確定了。這種方法的好處是每個優化問題的規模比較小,而且分類的時候速度很快(只需要調用5個分類器就知道了結果)。但有時也會出現兩種很尷尬的情況,例如拿這個樣本問了一圈,每一個分類器都說它是屬于它那一類的,或者每一個分類器都說它不是它那一類的,前者叫分類重疊現象,后者叫不可分類現象。分類重疊倒還好辦,隨便選一個結果都不至于太離譜,或者看看這篇文章到各個超平面的距離,哪個遠就判給哪個。不可分類現象就著實難辦了,只能把它分給第6個類別了……更要命的是,本來各個類別的樣本數目是差不多的,但“其余”的那一類樣本數總是要數倍于正類(因為它是除正類以外其他類別的樣本之和嘛),這就人為的造成了上一節所說的“數據集偏斜”問題。

? ? ? ?如下圖左。紅色分類面將紅色與其他兩種顏色分開,綠色分類面將綠色與其他兩種顏色分開,藍色分類面將藍色與其他兩種顏色分開。

? ? ? ?在這里的對某個點的分類實際上是通過衡量這個點到三個決策邊界的距離,因為到分類面的距離越大,分類越可信嘛。當然了,這個距離是有符號的,如下所示:

? ? ? ?例如下圖左,將星星這個點劃分給綠色這一類。右圖將星星這個點劃分給褐色這一類。

?

6.2、“一對一”的方法

? ? ? ?One-Against-One方法是每次選一個類的樣本作正類樣本,而負類樣本則變成只選一個類(稱為“一對一單挑”的方法,哦,不對,沒有單挑,就是“一對一”的方法,呵呵),這就避免了偏斜。因此過程就是算出這樣一些分類器,第一個只回答“是第1類還是第2類”,第二個只回答“是第1類還是第3類”,第三個只回答“是第1類還是第4類”,如此下去,你也可以馬上得出,這樣的分類器應該有5 X 4/2=10個(通式是,如果有k個類別,則總的兩類分類器數目為k(k-1)/2)。雖然分類器的數目多了,但是在訓練階段(也就是算出這些分類器的分類平面時)所用的總時間卻比“一類對其余”方法少很多,在真正用來分類的時候,把一個樣本扔給所有分類器,第一個分類器會投票說它是“1”或者“2”,第二個會說它是“1”或者“3”,讓每一個都投上自己的一票,最后統計票數,如果類別“1”得票最多,就判這篇文章屬于第1類。這種方法顯然也會有分類重疊的現象,但不會有不可分類現象,因為總不可能所有類別的票數都是0。如下圖右,中間紫色的塊,每類的得票數都是1,那就不知道歸類給那個類好了,只能隨便扔給某個類了(或者衡量這個點到三個決策邊界的距離,因為到分類面的距離越大,分類越可信嘛),扔掉了就是你命好,扔錯了就不lucky了。

?

七、KKT條件分析

? ? ? ?對KKT條件,請大家參考文獻[13][14]。假設我們優化得到的最優解是:αi*,βi*, ξi*, w*和b*。我們的最優解需要滿足KKT條件:

? ? ? 同時βi*和ξi*都需要大于等于0,而αi*需要在0和C之間。那可以分三種情況討論:

? ? ? ?總的來說就是, KKT條件就變成了:

? ? ? ?第一個式子表明如果αi=0,那么該樣本落在兩條間隔線外。第二個式子表明如果αi=C,那么該樣本有可能落在兩條間隔線內部,也有可能落在兩條間隔線上面,主要看對應的松弛變量的取值是等于0還是大于0,第三個式子表明如果0<αi<C,那么該樣本一定落在分隔線上(這點很重要,b就是拿這些落在分隔線上的點來求的,因為在分割線上wTx+b=1或者-1嘛,才是等式,在其他地方,都是不等式,求解不了b)。具體形象化的表示如下:

? ? ? ?通過KKT條件可知,αi不等于0的都是支持向量,它有可能落在分隔線上,也有可能落在兩條分隔線內部。KKT條件是非常重要的,在SMO也就是SVM的其中一個實現算法中,我們可以看到它的重要應用。

八、SVM的實現之SMO算法

? ? ? 終于到SVM的實現部分了。那么神奇和有效的東西還得回歸到實現才可以展示其強大的功力。SVM有效而且存在很高效的訓練算法,這也是工業界非常青睞SVM的原因。

? ? ? 前面講到,SVM的學習問題可以轉化為下面的對偶問題:

? ? ? ?需要滿足的KKT條件:

? ? ? ?也就是說找到一組αi可以滿足上面的這些條件的就是該目標的一個最優解。所以我們的優化目標是找到一組最優的αi*。一旦求出這些αi*,就很容易計算出權重向量w*和b,并得到分隔超平面了。

? ? ? ?這是個凸二次規劃問題,它具有全局最優解,一般可以通過現有的工具來優化。但當訓練樣本非常多的時候,這些優化算法往往非常耗時低效,以致無法使用。從SVM提出到現在,也出現了很多優化訓練的方法。其中,非常出名的一個是1982年由Microsoft Research的John C. Platt在論文《Sequential Minimal Optimization: A Fast Algorithm for TrainingSupport Vector Machines》中提出的Sequential Minimal Optimization序列最小化優化算法,簡稱SMO算法。SMO算法的思想很簡單,它將大優化的問題分解成多個小優化的問題。這些小問題往往比較容易求解,并且對他們進行順序求解的結果與將他們作為整體來求解的結果完全一致。在結果完全一致的同時,SMO的求解時間短很多。在深入SMO算法之前,我們先來了解下坐標下降這個算法,SMO其實基于這種簡單的思想的。

?

8.1、坐標下降(上升)法

? ? ? 假設要求解下面的優化問題:

? ? ? 在這里,我們需要求解m個變量αi,一般來說是通過梯度下降(這里是求最大值,所以應該叫上升)等算法每一次迭代對所有m個變量αi也就是α向量進行一次性優化。通過誤差每次迭代調整α向量中每個元素的值。而坐標上升法(坐標上升與坐標下降可以看做是一對,坐標上升是用來求解max最優化問題,坐標下降用于求min最優化問題)的思想是每次迭代只調整一個變量αi的值,其他變量的值在這次迭代中固定不變。

? ? ? ?最里面語句的意思是固定除αi之外的所有αj(i不等于j),這時W可看作只是關于αi的函數,那么直接對αi求導優化即可。這里我們進行最大化求導的順序i是從1到m,可以通過更改優化順序來使W能夠更快地增加并收斂。如果W在內循環中能夠很快地達到最優,那么坐標上升法會是一個很高效的求極值方法。

? ? ? 用個二維的例子來說明下坐標下降法:我們需要尋找f(x,y)=x2+xy+y2的最小值處的(x*, y*),也就是下圖的F*點的地方。

? ? ? ?假設我們初始的點是A(圖是函數投影到xoy平面的等高線圖,顏色越深值越小),我們需要達到F*的地方。那最快的方法就是圖中黃色線的路徑,一次性就到達了,其實這個是牛頓優化法,但如果是高維的話,這個方法就不太高效了(因為需要求解矩陣的逆,這個不在這里討論)。我們也可以按照紅色所指示的路徑來走。從A開始,先固定x,沿著y軸往讓f(x, y)值減小的方向走到B點,然后固定y,沿著x軸往讓f(x, y)值減小的方向走到C點,不斷循環,直到到達F*。反正每次只要我們都往讓f(x, y)值小的地方走就行了,這樣腳踏實地,一步步走,每一步都使f(x, y)慢慢變小,總有一天,皇天不負有心人的。到達F*也是時間問題。到這里你可能會說,這紅色線比黃色線貧富差距也太嚴重了吧。因為這里是二維的簡單的情況嘛。如果是高維的情況,而且目標函數很復雜的話,再加上樣本集很多,那么在梯度下降中,目標函數對所有αi求梯度或者在牛頓法中對矩陣求逆,都是很耗時的。這時候,如果W只對單個αi優化很快的時候,坐標下降法可能會更加高效。

?

8.2、SMO算法

? ? ? ?SMO算法的思想和坐標下降法的思想差不多。唯一不同的是,SMO是一次迭代優化兩個α而不是一個。為什么要優化兩個呢?

? ? ? ?我們回到這個優化問題。我們可以看到這個優化問題存在著一個約束,也就是

? ? ? ?假設我們首先固定除α1以外的所有參數,然后在α1上求極值。但需要注意的是,因為如果固定α1以外的所有參數,由上面這個約束條件可以知道,α1將不再是變量(可以由其他值推出),因為問題中規定了:

? ? ? 因此,我們需要一次選取兩個參數做優化,比如αi和αj,此時αi可以由αj和其他參數表示出來。這樣回代入W中,W就只是關于αj的函數了,這時候就可以只對αj進行優化了。在這里就是對αj進行求導,令導數為0就可以解出這個時候最優的αj了。然后也可以得到αi。這就是一次的迭代過程,一次迭代只調整兩個拉格朗日乘子αi和αj。SMO之所以高效就是因為在固定其他參數后,對一個參數優化過程很高效(對一個參數的優化可以通過解析求解,而不是迭代。雖然對一個參數的一次最小優化不可能保證其結果就是所優化的拉格朗日乘子的最終結果,但會使目標函數向極小值邁進一步,這樣對所有的乘子做最小優化,直到所有滿足KKT條件時,目標函數達到最小)。

? ? ? ?總結下來是:

重復下面過程直到收斂{

(1)選擇兩個拉格朗日乘子αi和αj

(2)固定其他拉格朗日乘子αk(k不等于i和j),只對αi和αj優化w(α);

(3)根據優化后的αi和αj,更新截距b的值;

}

? ? ? ? 那訓練里面這兩三步驟到底是怎么實現的,需要考慮什么呢?下面我們來具體分析下:

(1)選擇αi和αj

? ? ? ? 我們現在是每次迭代都優化目標函數的兩個拉格朗日乘子αi和αj,然后其他的拉格朗日乘子保持固定。如果有N個訓練樣本,我們就有N個拉格朗日乘子需要優化,但每次我們只挑兩個進行優化,我們就有N(N-1)種選擇。那到底我們要選擇哪對αi和αj呢?選擇哪對才好呢?想想我們的目標是什么?我們希望把所有違法KKT條件的樣本都糾正回來,因為如果所有樣本都滿足KKT條件的話,我們的優化就完成了。那就很直觀了,哪個害群之馬最嚴重,我們得先對他進行思想教育,讓他盡早回歸正途。OK,那我們選擇的第一個變量αi就選違法KKT條件最嚴重的那一個。那第二個變量αj怎么選呢?

? ? ? ?我們是希望快點找到最優的N個拉格朗日乘子,使得代價函數最大,換句話說,要最快的找到代價函數最大值的地方對應的N個拉格朗日乘子。這樣我們的訓練時間才會短。就像你從廣州去北京,有飛機和綠皮車給你選,你選啥?(就算你不考慮速度,也得考慮下空姐的感受嘛,別辜負了她們渴望看到你的期盼,哈哈)。有點離題了,anyway,每次迭代中,哪對αi和αj可以讓我更快的達到代價函數值最大的地方,我們就選他們。或者說,走完這一步,選這對αi和αj代價函數值增加的值最多,比選擇其他所有αi和αj的結合中都多。這樣我們才可以更快的接近代價函數的最大值,也就是達到優化的目標了。再例如,下圖,我們要從A點走到B點,按藍色的路線走c2方向的時候,一跨一大步,按紅色的路線走c1方向的時候,只能是人類的一小步。所以,藍色路線走兩步就邁進了成功之門,而紅色的路線,人生曲折,好像成功遙遙無期一樣,故曰,選擇比努力更重要!

? ? ? ?真啰嗦!說了半天,其實就一句話:為什么每次迭代都要選擇最好的αi和αj,就是為了更快的收斂!那實踐中每次迭代到底要怎樣選αi和αj呢?這有個很好聽的名字叫啟發式選擇,主要思想是先選擇最有可能需要優化(也就是違反KKT條件最嚴重)的αi,再針對這樣的αi選擇最有可能取得較大修正步長的αj。具體是以下兩個過程:

1)第一個變量αi的選擇:

? ? ? ?SMO稱選擇第一個變量的過程為外層循環。外層訓練在訓練樣本中選取違法KKT條件最嚴重的樣本點。并將其對應的變量作為第一個變量。具體的,檢驗訓練樣本(xi, yi)是否滿足KKT條件,也就是:

? ? ? ?該檢驗是在ε范圍內進行的。在檢驗過程中,外層循環首先遍歷所有滿足條件0<αj<C的樣本點,即在間隔邊界上的支持向量點,檢驗他們是否滿足KKT條件,然后選擇違反KKT條件最嚴重的αi。如果這些樣本點都滿足KKT條件,那么遍歷整個訓練集,檢驗他們是否滿足KKT條件,然后選擇違反KKT條件最嚴重的αi

? ? ? ?優先選擇遍歷非邊界數據樣本,因為非邊界數據樣本更有可能需要調整,邊界數據樣本常常不能得到進一步調整而留在邊界上。由于大部分數據樣本都很明顯不可能是支持向量,因此對應的α乘子一旦取得零值就無需再調整。遍歷非邊界數據樣本并選出他們當中違反KKT 條件為止。當某一次遍歷發現沒有非邊界數據樣本得到調整時,遍歷所有數據樣本,以檢驗是否整個集合都滿足KKT條件。如果整個集合的檢驗中又有數據樣本被進一步進化,則有必要再遍歷非邊界數據樣本。這樣,不停地在遍歷所有數據樣本和遍歷非邊界數據樣本之間切換,直到整個樣本集合都滿足KKT條件為止。以上用KKT條件對數據樣本所做的檢驗都以達到一定精度ε就可以停止為條件。如果要求十分精確的輸出算法,則往往不能很快收斂。

? ? ? ?對整個數據集的遍歷掃描相當容易,而實現對非邊界αi的掃描時,首先需要將所有非邊界樣本的αi值(也就是滿足0<αi<C)保存到新的一個列表中,然后再對其進行遍歷。同時,該步驟跳過那些已知的不會改變的αi值。

2)第二個變量αj的選擇:

? ? ? ?在選擇第一個αi后,算法會通過一個內循環來選擇第二個αj值。因為第二個乘子的迭代步長大致正比于|Ei-Ej|,所以我們需要選擇能夠最大化|Ei-Ej|的第二個乘子(選擇最大化迭代步長的第二個乘子)。在這里,為了節省計算時間,我們建立一個全局的緩存用于保存所有樣本的誤差值,而不用每次選擇的時候就重新計算。我們從中選擇使得步長最大或者|Ei-Ej|最大的αj

(2)優化αi和αj

? ? ? ?選擇這兩個拉格朗日乘子后,我們需要先計算這些參數的約束值。然后再求解這個約束最大化問題。

? ? ? ?首先,我們需要給αj找到邊界L<=αj<=H,以保證αj滿足0<=αj<=C的約束。這意味著αj必須落入這個盒子中。由于只有兩個變量(αi, αj),約束可以用二維空間中的圖形來表示,如下圖:

? ? ? ?不等式約束使得(αij)在盒子[0, C]x[0, C]內,等式約束使得(αi, αj)在平行于盒子[0, C]x[0, C]的對角線的直線上。因此要求的是目標函數在一條平行于對角線的線段上的最優值。這使得兩個變量的最優化問題成為實質的單變量的最優化問題。由圖可以得到,αj的上下界可以通過下面的方法得到:

? ? ? ?我們優化的時候,αj必須要滿足上面這個約束。也就是說上面是αj的可行域。然后我們開始尋找αj,使得目標函數最大化。通過推導得到αj的更新公式如下:

? ? ? ?這里Ek可以看做對第k個樣本,SVM的輸出與期待輸出,也就是樣本標簽的誤差。

? ? ? ?而η實際上是度量兩個樣本i和j的相似性的。在計算η的時候,我們需要使用核函數,那么就可以用核函數來取代上面的內積。

? ? ? ?得到新的αj后,我們需要保證它處于邊界內。換句話說,如果這個優化后的值跑出了邊界L和H,我們就需要簡單的裁剪,將αj收回這個范圍:

? ? ? ?最后,得到優化的αj后,我們需要用它來計算αi

? ? ? ?到這里,αi和αj的優化就完成了。

(3)計算閾值b:

? ? ? ?優化αi和αj后,我們就可以更新閾值b,使得對兩個樣本i和j都滿足KKT條件。如果優化后αi不在邊界上(也就是滿足0<αi<C,這時候根據KKT條件,可以得到yigi(xi)=1,這樣我們才可以計算b),那下面的閾值b1是有效的,因為當輸入xi時它迫使SVM輸出yi

? ? ? ?同樣,如果0<αj<C,那么下面的b2也是有效的:

? ? ? 如果0<αi<C和0<αj<C都滿足,那么b1和b2都有效,而且他們是相等的。如果他們兩個都處于邊界上(也就是αi=0或者αi=C,同時αj=0或者αj=C),那么在b1和b2之間的閾值都滿足KKT條件,一般我們取他們的平均值b=(b1+b2)/2。所以,總的來說對b的更新如下:

? ? ? ?每做完一次最小優化,必須更新每個數據樣本的誤差,以便用修正過的分類面對其他數據樣本再做檢驗,在選擇第二個配對優化數據樣本時用來估計步長。

(4)凸優化問題終止條件:

? ? ? ?SMO算法的基本思路是:如果說有變量的解都滿足此最優化問題的KKT條件,那么這個最優化問題的解就得到了。因為KKT條件是該最優化問題的充分必要條件(證明請參考文獻)。所以我們可以監視原問題的KKT條件,所以所有的樣本都滿足KKT條件,那么就表示迭代結束了。但是由于KKT條件本身是比較苛刻的,所以也需要設定一個容忍值,即所有樣本在容忍值范圍內滿足KKT條件則認為訓練可以結束;當然了,對于對偶問題的凸優化還有其他終止條件,可以參考文獻。

?

8.3、SMO算法的Python實現

8.3.1、Python的準備工作

? ? ? 我使用的Python是2.7.5版本的。附加的庫有Numpy和Matplotlib。而Matplotlib又依賴dateutil和pyparsing兩個庫,所以我們需要安裝以上三個庫。前面兩個庫還好安裝,直接在官網下對應版本就行。但我找后兩個庫的時候,就沒那么容易了。后來發現,其實對Python的庫的下載和安裝可以借助pip工具的。這個是安裝和管理Python包的工具。感覺它有點像ubuntu的apt-get,需要安裝什么庫,直接下載和安裝一條龍服務。

? ? ? ?首先,我們需要到pip的官網:https://pypi.python.org/pypi/pip下載對應我們python版本的pip,例如我的是pip-1.4.1.tar.gz。但安裝pip需要另一個工具,也就是setuptools,我們到https://pypi.python.org/pypi/setuptools/#windows下載ez_setup.py這個文件回來。然后在CMD命令行中執行:(注意他們的路徑)

#python ez_setup.py

這時候,就會自動下載.egg等等文件然后安裝完成。

? ? ? 然后我們解壓pip-1.4.1.tar.gz。進入到該目錄中,執行:

#python setup.py install

這時候就會自動安裝pip到你python目錄下的Scripts文件夾中。我的是C:\Python27\Scripts。

? ? ? ?在里面我們可以看到pip.exe,然后我們進入到該文件夾中:

#cd C:\Python27\Scripts

#pip install dateutil

#pip install pyparsing

這樣就可以把這些額外的庫給下載回來了。非常高端大氣上檔次!

8.3.2、SMO算法的Python實現

? ? ? ?在代碼中已經有了比較詳細的注釋了。不知道有沒有錯誤的地方,如果有,還望大家指正(每次的運行結果都有可能不同,另外,感覺有些結果似乎不太正確,但我還沒發現哪里出錯了,如果大家找到有錯誤的地方,還望大家指點下,衷心感謝)。里面我寫了個可視化結果的函數,但只能在二維的數據上面使用。直接貼代碼:

SVM.py

?

[python]?view plaincopy
  • #################################################??
  • #?SVM:?support?vector?machine??
  • #?Author?:?zouxy??
  • #?Date???:?2013-12-12??
  • #?HomePage?:?http://blog.csdn.net/zouxy09??
  • #?Email??:?zouxy09@qq.com??
  • #################################################??
  • ??
  • from?numpy?import?*??
  • import?time??
  • import?matplotlib.pyplot?as?plt???
  • ??
  • ??
  • #?calulate?kernel?value??
  • def?calcKernelValue(matrix_x,?sample_x,?kernelOption):??
  • ????kernelType?=?kernelOption[0]??
  • ????numSamples?=?matrix_x.shape[0]??
  • ????kernelValue?=?mat(zeros((numSamples,?1)))??
  • ??????
  • ????if?kernelType?==?'linear':??
  • ????????kernelValue?=?matrix_x?*?sample_x.T??
  • ????elif?kernelType?==?'rbf':??
  • ????????sigma?=?kernelOption[1]??
  • ????????if?sigma?==?0:??
  • ????????????sigma?=?1.0??
  • ????????for?i?in?xrange(numSamples):??
  • ????????????diff?=?matrix_x[i,?:]?-?sample_x??
  • ????????????kernelValue[i]?=?exp(diff?*?diff.T?/?(-2.0?*?sigma**2))??
  • ????else:??
  • ????????raise?NameError('Not?support?kernel?type!?You?can?use?linear?or?rbf!')??
  • ????return?kernelValue??
  • ??
  • ??
  • #?calculate?kernel?matrix?given?train?set?and?kernel?type??
  • def?calcKernelMatrix(train_x,?kernelOption):??
  • ????numSamples?=?train_x.shape[0]??
  • ????kernelMatrix?=?mat(zeros((numSamples,?numSamples)))??
  • ????for?i?in?xrange(numSamples):??
  • ????????kernelMatrix[:,?i]?=?calcKernelValue(train_x,?train_x[i,?:],?kernelOption)??
  • ????return?kernelMatrix??
  • ??
  • ??
  • #?define?a?struct?just?for?storing?variables?and?data??
  • class?SVMStruct:??
  • ????def?__init__(self,?dataSet,?labels,?C,?toler,?kernelOption):??
  • ????????self.train_x?=?dataSet?#?each?row?stands?for?a?sample??
  • ????????self.train_y?=?labels??#?corresponding?label??
  • ????????self.C?=?C?????????????#?slack?variable??
  • ????????self.toler?=?toler?????#?termination?condition?for?iteration??
  • ????????self.numSamples?=?dataSet.shape[0]?#?number?of?samples??
  • ????????self.alphas?=?mat(zeros((self.numSamples,?1)))?#?Lagrange?factors?for?all?samples??
  • ????????self.b?=?0??
  • ????????self.errorCache?=?mat(zeros((self.numSamples,?2)))??
  • ????????self.kernelOpt?=?kernelOption??
  • ????????self.kernelMat?=?calcKernelMatrix(self.train_x,?self.kernelOpt)??
  • ??
  • ??????????
  • #?calculate?the?error?for?alpha?k??
  • def?calcError(svm,?alpha_k):??
  • ????output_k?=?float(multiply(svm.alphas,?svm.train_y).T?*?svm.kernelMat[:,?alpha_k]?+?svm.b)??
  • ????error_k?=?output_k?-?float(svm.train_y[alpha_k])??
  • ????return?error_k??
  • ??
  • ??
  • #?update?the?error?cache?for?alpha?k?after?optimize?alpha?k??
  • def?updateError(svm,?alpha_k):??
  • ????error?=?calcError(svm,?alpha_k)??
  • ????svm.errorCache[alpha_k]?=?[1,?error]??
  • ??
  • ??
  • #?select?alpha?j?which?has?the?biggest?step??
  • def?selectAlpha_j(svm,?alpha_i,?error_i):??
  • ????svm.errorCache[alpha_i]?=?[1,?error_i]?#?mark?as?valid(has?been?optimized)??
  • ????candidateAlphaList?=?nonzero(svm.errorCache[:,?0].A)[0]?#?mat.A?return?array??
  • ????maxStep?=?0;?alpha_j?=?0;?error_j?=?0??
  • ??
  • ????#?find?the?alpha?with?max?iterative?step??
  • ????if?len(candidateAlphaList)?>?1:??
  • ????????for?alpha_k?in?candidateAlphaList:??
  • ????????????if?alpha_k?==?alpha_i:???
  • ????????????????continue??
  • ????????????error_k?=?calcError(svm,?alpha_k)??
  • ????????????if?abs(error_k?-?error_i)?>?maxStep:??
  • ????????????????maxStep?=?abs(error_k?-?error_i)??
  • ????????????????alpha_j?=?alpha_k??
  • ????????????????error_j?=?error_k??
  • ????#?if?came?in?this?loop?first?time,?we?select?alpha?j?randomly??
  • ????else:?????????????
  • ????????alpha_j?=?alpha_i??
  • ????????while?alpha_j?==?alpha_i:??
  • ????????????alpha_j?=?int(random.uniform(0,?svm.numSamples))??
  • ????????error_j?=?calcError(svm,?alpha_j)??
  • ??????
  • ????return?alpha_j,?error_j??
  • ??
  • ??
  • #?the?inner?loop?for?optimizing?alpha?i?and?alpha?j??
  • def?innerLoop(svm,?alpha_i):??
  • ????error_i?=?calcError(svm,?alpha_i)??
  • ??
  • ????###?check?and?pick?up?the?alpha?who?violates?the?KKT?condition??
  • ????##?satisfy?KKT?condition??
  • ????#?1)?yi*f(i)?>=?1?and?alpha?==?0?(outside?the?boundary)??
  • ????#?2)?yi*f(i)?==?1?and?0<alpha<?C?(on?the?boundary)??
  • ????#?3)?yi*f(i)?<=?1?and?alpha?==?C?(between?the?boundary)??
  • ????##?violate?KKT?condition??
  • ????#?because?y[i]*E_i?=?y[i]*f(i)?-?y[i]^2?=?y[i]*f(i)?-?1,?so??
  • ????#?1)?if?y[i]*E_i?<?0,?so?yi*f(i)?<?1,?if?alpha?<?C,?violate!(alpha?=?C?will?be?correct)???
  • ????#?2)?if?y[i]*E_i?>?0,?so?yi*f(i)?>?1,?if?alpha?>?0,?violate!(alpha?=?0?will?be?correct)??
  • ????#?3)?if?y[i]*E_i?=?0,?so?yi*f(i)?=?1,?it?is?on?the?boundary,?needless?optimized??
  • ????if?(svm.train_y[alpha_i]?*?error_i?<?-svm.toler)?and?(svm.alphas[alpha_i]?<?svm.C)?or\??
  • ????????(svm.train_y[alpha_i]?*?error_i?>?svm.toler)?and?(svm.alphas[alpha_i]?>?0):??
  • ??
  • ????????#?step?1:?select?alpha?j??
  • ????????alpha_j,?error_j?=?selectAlpha_j(svm,?alpha_i,?error_i)??
  • ????????alpha_i_old?=?svm.alphas[alpha_i].copy()??
  • ????????alpha_j_old?=?svm.alphas[alpha_j].copy()??
  • ??
  • ????????#?step?2:?calculate?the?boundary?L?and?H?for?alpha?j??
  • ????????if?svm.train_y[alpha_i]?!=?svm.train_y[alpha_j]:??
  • ????????????L?=?max(0,?svm.alphas[alpha_j]?-?svm.alphas[alpha_i])??
  • ????????????H?=?min(svm.C,?svm.C?+?svm.alphas[alpha_j]?-?svm.alphas[alpha_i])??
  • ????????else:??
  • ????????????L?=?max(0,?svm.alphas[alpha_j]?+?svm.alphas[alpha_i]?-?svm.C)??
  • ????????????H?=?min(svm.C,?svm.alphas[alpha_j]?+?svm.alphas[alpha_i])??
  • ????????if?L?==?H:??
  • ????????????return?0??
  • ??
  • ????????#?step?3:?calculate?eta?(the?similarity?of?sample?i?and?j)??
  • ????????eta?=?2.0?*?svm.kernelMat[alpha_i,?alpha_j]?-?svm.kernelMat[alpha_i,?alpha_i]?\??
  • ??????????????????-?svm.kernelMat[alpha_j,?alpha_j]??
  • ????????if?eta?>=?0:??
  • ????????????return?0??
  • ??
  • ????????#?step?4:?update?alpha?j??
  • ????????svm.alphas[alpha_j]?-=?svm.train_y[alpha_j]?*?(error_i?-?error_j)?/?eta??
  • ??
  • ????????#?step?5:?clip?alpha?j??
  • ????????if?svm.alphas[alpha_j]?>?H:??
  • ????????????svm.alphas[alpha_j]?=?H??
  • ????????if?svm.alphas[alpha_j]?<?L:??
  • ????????????svm.alphas[alpha_j]?=?L??
  • ??
  • ????????#?step?6:?if?alpha?j?not?moving?enough,?just?return???????
  • ????????if?abs(alpha_j_old?-?svm.alphas[alpha_j])?<?0.00001:??
  • ????????????updateError(svm,?alpha_j)??
  • ????????????return?0??
  • ??
  • ????????#?step?7:?update?alpha?i?after?optimizing?aipha?j??
  • ????????svm.alphas[alpha_i]?+=?svm.train_y[alpha_i]?*?svm.train_y[alpha_j]?\??
  • ????????????????????????????????*?(alpha_j_old?-?svm.alphas[alpha_j])??
  • ??
  • ????????#?step?8:?update?threshold?b??
  • ????????b1?=?svm.b?-?error_i?-?svm.train_y[alpha_i]?*?(svm.alphas[alpha_i]?-?alpha_i_old)?\??
  • ????????????????????????????????????????????????????*?svm.kernelMat[alpha_i,?alpha_i]?\??
  • ?????????????????????????????-?svm.train_y[alpha_j]?*?(svm.alphas[alpha_j]?-?alpha_j_old)?\??
  • ????????????????????????????????????????????????????*?svm.kernelMat[alpha_i,?alpha_j]??
  • ????????b2?=?svm.b?-?error_j?-?svm.train_y[alpha_i]?*?(svm.alphas[alpha_i]?-?alpha_i_old)?\??
  • ????????????????????????????????????????????????????*?svm.kernelMat[alpha_i,?alpha_j]?\??
  • ?????????????????????????????-?svm.train_y[alpha_j]?*?(svm.alphas[alpha_j]?-?alpha_j_old)?\??
  • ????????????????????????????????????????????????????*?svm.kernelMat[alpha_j,?alpha_j]??
  • ????????if?(0?<?svm.alphas[alpha_i])?and?(svm.alphas[alpha_i]?<?svm.C):??
  • ????????????svm.b?=?b1??
  • ????????elif?(0?<?svm.alphas[alpha_j])?and?(svm.alphas[alpha_j]?<?svm.C):??
  • ????????????svm.b?=?b2??
  • ????????else:??
  • ????????????svm.b?=?(b1?+?b2)?/?2.0??
  • ??
  • ????????#?step?9:?update?error?cache?for?alpha?i,?j?after?optimize?alpha?i,?j?and?b??
  • ????????updateError(svm,?alpha_j)??
  • ????????updateError(svm,?alpha_i)??
  • ??
  • ????????return?1??
  • ????else:??
  • ????????return?0??
  • ??
  • ??
  • #?the?main?training?procedure??
  • def?trainSVM(train_x,?train_y,?C,?toler,?maxIter,?kernelOption?=?('rbf',?1.0)):??
  • ????#?calculate?training?time??
  • ????startTime?=?time.time()??
  • ??
  • ????#?init?data?struct?for?svm??
  • ????svm?=?SVMStruct(mat(train_x),?mat(train_y),?C,?toler,?kernelOption)??
  • ??????
  • ????#?start?training??
  • ????entireSet?=?True??
  • ????alphaPairsChanged?=?0??
  • ????iterCount?=?0??
  • ????#?Iteration?termination?condition:??
  • ????#???Condition?1:?reach?max?iteration??
  • ????#???Condition?2:?no?alpha?changed?after?going?through?all?samples,??
  • ????#????????????????in?other?words,?all?alpha?(samples)?fit?KKT?condition??
  • ????while?(iterCount?<?maxIter)?and?((alphaPairsChanged?>?0)?or?entireSet):??
  • ????????alphaPairsChanged?=?0??
  • ??
  • ????????#?update?alphas?over?all?training?examples??
  • ????????if?entireSet:??
  • ????????????for?i?in?xrange(svm.numSamples):??
  • ????????????????alphaPairsChanged?+=?innerLoop(svm,?i)??
  • ????????????print?'---iter:%d?entire?set,?alpha?pairs?changed:%d'?%?(iterCount,?alphaPairsChanged)??
  • ????????????iterCount?+=?1??
  • ????????#?update?alphas?over?examples?where?alpha?is?not?0?&?not?C?(not?on?boundary)??
  • ????????else:??
  • ????????????nonBoundAlphasList?=?nonzero((svm.alphas.A?>?0)?*?(svm.alphas.A?<?svm.C))[0]??
  • ????????????for?i?in?nonBoundAlphasList:??
  • ????????????????alphaPairsChanged?+=?innerLoop(svm,?i)??
  • ????????????print?'---iter:%d?non?boundary,?alpha?pairs?changed:%d'?%?(iterCount,?alphaPairsChanged)??
  • ????????????iterCount?+=?1??
  • ??
  • ????????#?alternate?loop?over?all?examples?and?non-boundary?examples??
  • ????????if?entireSet:??
  • ????????????entireSet?=?False??
  • ????????elif?alphaPairsChanged?==?0:??
  • ????????????entireSet?=?True??
  • ??
  • ????print?'Congratulations,?training?complete!?Took?%fs!'?%?(time.time()?-?startTime)??
  • ????return?svm??
  • ??
  • ??
  • #?testing?your?trained?svm?model?given?test?set??
  • def?testSVM(svm,?test_x,?test_y):??
  • ????test_x?=?mat(test_x)??
  • ????test_y?=?mat(test_y)??
  • ????numTestSamples?=?test_x.shape[0]??
  • ????supportVectorsIndex?=?nonzero(svm.alphas.A?>?0)[0]??
  • ????supportVectors??????=?svm.train_x[supportVectorsIndex]??
  • ????supportVectorLabels?=?svm.train_y[supportVectorsIndex]??
  • ????supportVectorAlphas?=?svm.alphas[supportVectorsIndex]??
  • ????matchCount?=?0??
  • ????for?i?in?xrange(numTestSamples):??
  • ????????kernelValue?=?calcKernelValue(supportVectors,?test_x[i,?:],?svm.kernelOpt)??
  • ????????predict?=?kernelValue.T?*?multiply(supportVectorLabels,?supportVectorAlphas)?+?svm.b??
  • ????????if?sign(predict)?==?sign(test_y[i]):??
  • ????????????matchCount?+=?1??
  • ????accuracy?=?float(matchCount)?/?numTestSamples??
  • ????return?accuracy??
  • ??
  • ??
  • #?show?your?trained?svm?model?only?available?with?2-D?data??
  • def?showSVM(svm):??
  • ????if?svm.train_x.shape[1]?!=?2:??
  • ????????print?"Sorry!?I?can?not?draw?because?the?dimension?of?your?data?is?not?2!"??
  • ????????return?1??
  • ??
  • ????#?draw?all?samples??
  • ????for?i?in?xrange(svm.numSamples):??
  • ????????if?svm.train_y[i]?==?-1:??
  • ????????????plt.plot(svm.train_x[i,?0],?svm.train_x[i,?1],?'or')??
  • ????????elif?svm.train_y[i]?==?1:??
  • ????????????plt.plot(svm.train_x[i,?0],?svm.train_x[i,?1],?'ob')??
  • ??
  • ????#?mark?support?vectors??
  • ????supportVectorsIndex?=?nonzero(svm.alphas.A?>?0)[0]??
  • ????for?i?in?supportVectorsIndex:??
  • ????????plt.plot(svm.train_x[i,?0],?svm.train_x[i,?1],?'oy')??
  • ??????
  • ????#?draw?the?classify?line??
  • ????w?=?zeros((2,?1))??
  • ????for?i?in?supportVectorsIndex:??
  • ????????w?+=?multiply(svm.alphas[i]?*?svm.train_y[i],?svm.train_x[i,?:].T)???
  • ????min_x?=?min(svm.train_x[:,?0])[0,?0]??
  • ????max_x?=?max(svm.train_x[:,?0])[0,?0]??
  • ????y_min_x?=?float(-svm.b?-?w[0]?*?min_x)?/?w[1]??
  • ????y_max_x?=?float(-svm.b?-?w[0]?*?max_x)?/?w[1]??
  • ????plt.plot([min_x,?max_x],?[y_min_x,?y_max_x],?'-g')??
  • ????plt.show()??
  • ?

    ?

    ?

    ? ? ? ?測試的數據來自這里。有100個樣本,每個樣本兩維,最后是對應的標簽,例如:

    3.542485 1.977398 ???????? -1

    3.018896 2.556416 ???????? -1

    7.551510 -1.580030???????? 1

    2.114999 -0.004466???????? -1

    ……

    ? ? ? ?測試代碼中首先加載這個數據庫,然后用前面80個樣本來訓練,再用剩下的20個樣本的測試,并顯示訓練后的模型和分類結果。測試代碼如下:

    test_SVM.py

    ?

    [python]?view plaincopy
  • #################################################??
  • #?SVM:?support?vector?machine??
  • #?Author?:?zouxy??
  • #?Date???:?2013-12-12??
  • #?HomePage?:?http://blog.csdn.net/zouxy09??
  • #?Email??:?zouxy09@qq.com??
  • #################################################??
  • ??
  • from?numpy?import?*??
  • import?SVM??
  • ??
  • ##################?test?svm?#####################??
  • ##?step?1:?load?data??
  • print?"step?1:?load?data..."??
  • dataSet?=?[]??
  • labels?=?[]??
  • fileIn?=?open('E:/Python/Machine?Learning?in?Action/testSet.txt')??
  • for?line?in?fileIn.readlines():??
  • ????lineArr?=?line.strip().split('\t')??
  • ????dataSet.append([float(lineArr[0]),?float(lineArr[1])])??
  • ????labels.append(float(lineArr[2]))??
  • ??
  • dataSet?=?mat(dataSet)??
  • labels?=?mat(labels).T??
  • train_x?=?dataSet[0:81,?:]??
  • train_y?=?labels[0:81,?:]??
  • test_x?=?dataSet[80:101,?:]??
  • test_y?=?labels[80:101,?:]??
  • ??
  • ##?step?2:?training...??
  • print?"step?2:?training..."??
  • C?=?0.6??
  • toler?=?0.001??
  • maxIter?=?50??
  • svmClassifier?=?SVM.trainSVM(train_x,?train_y,?C,?toler,?maxIter,?kernelOption?=?('linear',?0))??
  • ??
  • ##?step?3:?testing??
  • print?"step?3:?testing..."??
  • accuracy?=?SVM.testSVM(svmClassifier,?test_x,?test_y)??
  • ??
  • ##?step?4:?show?the?result??
  • print?"step?4:?show?the?result..."????
  • print?'The?classify?accuracy?is:?%.3f%%'?%?(accuracy?*?100)??
  • SVM.showSVM(svmClassifier)??
  • ?

    ?

    ?

    運行結果如下:

    ?

    [python]?view plaincopy
  • step?1:?load?data...??
  • step?2:?training...??
  • ---iter:0?entire?set,?alpha?pairs?changed:8??
  • ---iter:1?non?boundary,?alpha?pairs?changed:7??
  • ---iter:2?non?boundary,?alpha?pairs?changed:1??
  • ---iter:3?non?boundary,?alpha?pairs?changed:0??
  • ---iter:4?entire?set,?alpha?pairs?changed:0??
  • Congratulations,?training?complete!?Took?0.058000s!??
  • step?3:?testing...??
  • step?4:?show?the?result...??
  • The?classify?accuracy?is:?100.000%??
  • ?

    ?

    ?

    訓練好的模型圖:

    ?

    ?

    九、參考文獻與推薦閱讀

    [1] JerryLead的博客,作者根據斯坦福的講義給出了流暢和通俗的推導:SVM系列。

    [2]嘉士伯的SVM入門系列,講得很好。

    [3] pluskid的支持向量機系列,非常好。其中關于dual問題推導非常贊。

    [4] Leo Zhang的SVM學習系列,博客中還包含了很多其他的機器學習算法。

    [5] v_july_v的支持向量機通俗導論(理解SVM的三層境界)。結構之法算法之道blog。

    [6] 李航的《統計學習方法》,清華大學出版社

    [7]?SVM學習——Sequential Minimal Optimization

    [8]?SVM算法實現(一)

    [9] Sequential Minimal Optimization: A FastAlgorithm for Training Support Vector Machines

    [10]?SVM --從“原理”到實現

    [11]?支持向量機入門系列

    [12]SVM的各個版本及其多種語言實現代碼合集

    [13]?Karush-Kuhn-Tucker(KKT) conditions

    [14]?深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件

    轉載于:https://www.cnblogs.com/davidwang456/articles/8612310.html

    總結

    以上是生活随笔為你收集整理的机器学习算法与Python实践之(二)支持向量机的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

    久久99热只有频精品8 | 青青青爽视频在线观看 | 任你躁在线精品免费 | 亚洲精品欧美二区三区中文字幕 | 日本欧美一区二区三区乱码 | 日韩 欧美 动漫 国产 制服 | 日本丰满熟妇videos | 国产美女精品一区二区三区 | 永久免费精品精品永久-夜色 | 免费人成在线观看网站 | 88国产精品欧美一区二区三区 | 亚洲性无码av中文字幕 | 亚洲国产av美女网站 | av在线亚洲欧洲日产一区二区 | 亚洲日韩av一区二区三区四区 | 国产亚洲欧美日韩亚洲中文色 | 成 人 网 站国产免费观看 | 无码人妻精品一区二区三区不卡 | 精品一区二区不卡无码av | 欧洲熟妇精品视频 | 激情五月综合色婷婷一区二区 | 性啪啪chinese东北女人 | 女人色极品影院 | 国产精品亚洲а∨无码播放麻豆 | 无码播放一区二区三区 | 水蜜桃亚洲一二三四在线 | 精品欧美一区二区三区久久久 | 精品欧洲av无码一区二区三区 | 97夜夜澡人人爽人人喊中国片 | 日韩精品无码一区二区中文字幕 | 日韩人妻无码中文字幕视频 | 丁香花在线影院观看在线播放 | 亚洲欧美色中文字幕在线 | 亚洲色欲色欲欲www在线 | 理论片87福利理论电影 | 亚洲国产精华液网站w | 亚洲中文字幕乱码av波多ji | 日日干夜夜干 | 国产精品无码mv在线观看 | 欧美国产日韩亚洲中文 | 精品人人妻人人澡人人爽人人 | 中文精品无码中文字幕无码专区 | 亚洲 a v无 码免 费 成 人 a v | 日本一区二区三区免费播放 | 久久成人a毛片免费观看网站 | 色爱情人网站 | 亚洲国产高清在线观看视频 | 国产亚洲人成在线播放 | 国产精品福利视频导航 | 中文字幕人成乱码熟女app | 国产精品美女久久久久av爽李琼 | 2019午夜福利不卡片在线 | 亚洲の无码国产の无码步美 | 精品成在人线av无码免费看 | 亚洲娇小与黑人巨大交 | 激情综合激情五月俺也去 | 久久99精品国产.久久久久 | 99精品国产综合久久久久五月天 | 欧美自拍另类欧美综合图片区 | 77777熟女视频在线观看 а天堂中文在线官网 | 国产激情艳情在线看视频 | 九一九色国产 | 中国女人内谢69xxxx | 131美女爱做视频 | 久久99精品国产.久久久久 | 最近的中文字幕在线看视频 | 久久精品人人做人人综合试看 | 欧美日韩综合一区二区三区 | 无码av最新清无码专区吞精 | 欧美兽交xxxx×视频 | 5858s亚洲色大成网站www | 久久久久久av无码免费看大片 | 无码一区二区三区在线观看 | 婷婷五月综合缴情在线视频 | 无码午夜成人1000部免费视频 | 人妻天天爽夜夜爽一区二区 | 无码免费一区二区三区 | 欧美自拍另类欧美综合图片区 | 在线观看免费人成视频 | 国产香蕉尹人视频在线 | 性做久久久久久久久 | 国产精品手机免费 | 午夜福利电影 | 亚洲精品国偷拍自产在线观看蜜桃 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 精品国产一区二区三区四区在线看 | 国产精品美女久久久网av | 国产亚洲精品久久久ai换 | 久久综合网欧美色妞网 | 国产精品手机免费 | 红桃av一区二区三区在线无码av | 国产美女精品一区二区三区 | 午夜丰满少妇性开放视频 | 亚洲七七久久桃花影院 | 99久久精品日本一区二区免费 | 国产97色在线 | 免 | 全黄性性激高免费视频 | 亚洲精品综合五月久久小说 | 人妻互换免费中文字幕 | 亚洲成在人网站无码天堂 | 亚洲色偷偷偷综合网 | 美女黄网站人色视频免费国产 | 久久97精品久久久久久久不卡 | 性生交片免费无码看人 | 乱人伦人妻中文字幕无码久久网 | 日本精品久久久久中文字幕 | 97无码免费人妻超级碰碰夜夜 | 美女毛片一区二区三区四区 | 久久久久亚洲精品男人的天堂 | 亚洲精品中文字幕久久久久 | 国产精品久久久久久亚洲影视内衣 | 免费网站看v片在线18禁无码 | 亚洲乱码国产乱码精品精 | 野外少妇愉情中文字幕 | 鲁鲁鲁爽爽爽在线视频观看 | 暴力强奷在线播放无码 | 捆绑白丝粉色jk震动捧喷白浆 | 亚洲欧美综合区丁香五月小说 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 又湿又紧又大又爽a视频国产 | 亚洲欧洲日本综合aⅴ在线 | 一区二区传媒有限公司 | 午夜丰满少妇性开放视频 | 国产精品高潮呻吟av久久 | 中文字幕人成乱码熟女app | 亚洲欧美日韩成人高清在线一区 | 欧美精品国产综合久久 | 久久精品99久久香蕉国产色戒 | 久久精品中文字幕一区 | 18禁黄网站男男禁片免费观看 | 精品少妇爆乳无码av无码专区 | 久久综合色之久久综合 | 丝袜足控一区二区三区 | 色一情一乱一伦一视频免费看 | 日本饥渴人妻欲求不满 | 精品国偷自产在线视频 | 99国产欧美久久久精品 | 成人精品视频一区二区 | 中文字幕无码日韩欧毛 | 日本丰满护士爆乳xxxx | 人妻与老人中文字幕 | 日韩av激情在线观看 | 精品欧洲av无码一区二区三区 | 在线亚洲高清揄拍自拍一品区 | 黑人玩弄人妻中文在线 | 天天做天天爱天天爽综合网 | 日本成熟视频免费视频 | 久久综合给合久久狠狠狠97色 | 一本色道婷婷久久欧美 | 人人妻人人藻人人爽欧美一区 | 亚洲国产精品久久久天堂 | 丰满少妇熟乱xxxxx视频 | 无码人妻丰满熟妇区五十路百度 | 国产精品久久久久7777 | 亚洲中文字幕va福利 | 亚洲国产av精品一区二区蜜芽 | 欧美xxxxx精品 | 国产成人精品久久亚洲高清不卡 | 精品日本一区二区三区在线观看 | 国产激情无码一区二区 | 亚洲男人av天堂午夜在 | 精品久久久无码中文字幕 | 亚洲小说图区综合在线 | 国产无遮挡又黄又爽又色 | 国产成人精品优优av | 大乳丰满人妻中文字幕日本 | 精品一区二区三区波多野结衣 | 少妇性l交大片 | 婷婷五月综合激情中文字幕 | 国产精品无码成人午夜电影 | 少妇无码av无码专区在线观看 | 99re在线播放 | 99久久99久久免费精品蜜桃 | 成人三级无码视频在线观看 | 国产午夜无码精品免费看 | 成人欧美一区二区三区黑人免费 | 国产后入清纯学生妹 | 妺妺窝人体色www婷婷 | 国产高潮视频在线观看 | 免费无码的av片在线观看 | 亚洲精品久久久久久一区二区 | 国语自产偷拍精品视频偷 | 99久久人妻精品免费一区 | 激情内射亚州一区二区三区爱妻 | 日韩精品无码免费一区二区三区 | 久久久精品欧美一区二区免费 | 日本成熟视频免费视频 | 免费乱码人妻系列无码专区 | 一本无码人妻在中文字幕免费 | 男女性色大片免费网站 | 国产极品美女高潮无套在线观看 | 色五月五月丁香亚洲综合网 | 97久久国产亚洲精品超碰热 | 大地资源中文第3页 | 女人高潮内射99精品 | 久久亚洲a片com人成 | 国产麻豆精品精东影业av网站 | 日本护士xxxxhd少妇 | 伊人久久大香线蕉亚洲 | 撕开奶罩揉吮奶头视频 | 日本熟妇大屁股人妻 | 国产欧美精品一区二区三区 | 99在线 | 亚洲 | 久久亚洲日韩精品一区二区三区 | 国产成人午夜福利在线播放 | 精品国产福利一区二区 | 无码帝国www无码专区色综合 | 色婷婷久久一区二区三区麻豆 | a在线观看免费网站大全 | 国产精品丝袜黑色高跟鞋 | 又色又爽又黄的美女裸体网站 | 无码av免费一区二区三区试看 | 亚洲成熟女人毛毛耸耸多 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品久久久久久亚洲精品 | 久热国产vs视频在线观看 | 欧美精品免费观看二区 | 最新国产麻豆aⅴ精品无码 | 亚洲乱码日产精品bd | 狠狠色噜噜狠狠狠7777奇米 | 久激情内射婷内射蜜桃人妖 | 欧美大屁股xxxxhd黑色 | 欧美乱妇无乱码大黄a片 | 激情亚洲一区国产精品 | 人妻体内射精一区二区三四 | 一本一道久久综合久久 | 丰满岳乱妇在线观看中字无码 | 国产无套粉嫩白浆在线 | 久久天天躁狠狠躁夜夜免费观看 | 青青青手机频在线观看 | 国产激情综合五月久久 | 超碰97人人射妻 | 牲欲强的熟妇农村老妇女 | 少妇厨房愉情理9仑片视频 | a在线观看免费网站大全 | 亚拍精品一区二区三区探花 | 999久久久国产精品消防器材 | 欧洲欧美人成视频在线 | 樱花草在线播放免费中文 | 精品久久久中文字幕人妻 | 日韩亚洲欧美精品综合 | 亚洲成在人网站无码天堂 | 国产高潮视频在线观看 | 国产精品视频免费播放 | 狠狠cao日日穞夜夜穞av | 亚洲综合在线一区二区三区 | 久久国产36精品色熟妇 | 久久久成人毛片无码 | 国产精品毛片一区二区 | 波多野结衣av在线观看 | 欧美熟妇另类久久久久久不卡 | 国产乱人无码伦av在线a | 牲欲强的熟妇农村老妇女 | 精品久久久无码中文字幕 | 丝袜美腿亚洲一区二区 | 中文字幕av无码一区二区三区电影 | 九九在线中文字幕无码 | 国产人妖乱国产精品人妖 | 成 人 免费观看网站 | 免费视频欧美无人区码 | 一区二区三区高清视频一 | 精品无码一区二区三区爱欲 | 久久精品视频在线看15 | 日韩精品无码免费一区二区三区 | 国产绳艺sm调教室论坛 | 亚洲一区二区三区香蕉 | 久久精品国产99久久6动漫 | 精品久久久中文字幕人妻 | 亚洲中文字幕在线观看 | 日韩欧美中文字幕公布 | 亚洲精品国产品国语在线观看 | 国产精品久免费的黄网站 | 荫蒂添的好舒服视频囗交 | 亚洲午夜福利在线观看 | 国产精品.xx视频.xxtv | 我要看www免费看插插视频 | 最新国产乱人伦偷精品免费网站 | 麻豆国产丝袜白领秘书在线观看 | 久久久成人毛片无码 | 欧美 亚洲 国产 另类 | 全球成人中文在线 | 日韩精品无码一区二区中文字幕 | 亚洲熟悉妇女xxx妇女av | 男女超爽视频免费播放 | 亚洲精品久久久久久一区二区 | 乱码午夜-极国产极内射 | 99久久人妻精品免费二区 | 国产真人无遮挡作爱免费视频 | 3d动漫精品啪啪一区二区中 | 大色综合色综合网站 | 无码毛片视频一区二区本码 | 日产国产精品亚洲系列 | 人人妻人人澡人人爽欧美一区九九 | 国产午夜亚洲精品不卡下载 | 男人的天堂av网站 | 激情爆乳一区二区三区 | 精品水蜜桃久久久久久久 | 在线播放亚洲第一字幕 | 国产激情无码一区二区 | 亚洲熟悉妇女xxx妇女av | 丰满少妇弄高潮了www | 欧美精品国产综合久久 | 精品亚洲成av人在线观看 | 亚洲欧美精品aaaaaa片 | 国产人妻久久精品二区三区老狼 | 人人澡人人妻人人爽人人蜜桃 | 日韩精品一区二区av在线 | 国产高清av在线播放 | 十八禁真人啪啪免费网站 | 一本加勒比波多野结衣 | 国产后入清纯学生妹 | 伊人色综合久久天天小片 | 一区二区三区乱码在线 | 欧洲 | 狠狠亚洲超碰狼人久久 | 午夜不卡av免费 一本久久a久久精品vr综合 | 女人被男人躁得好爽免费视频 | 精品国产福利一区二区 | 国内丰满熟女出轨videos | 国产 浪潮av性色四虎 | 日韩av无码一区二区三区不卡 | 国产精品.xx视频.xxtv | 欧美老熟妇乱xxxxx | 精品无码国产一区二区三区av | 漂亮人妻洗澡被公强 日日躁 | 一本久道久久综合狠狠爱 | 国产无遮挡又黄又爽免费视频 | 草草网站影院白丝内射 | 国产精品无码一区二区三区不卡 | 天天躁夜夜躁狠狠是什么心态 | 亚洲中文字幕无码中文字在线 | 国产av久久久久精东av | 国产成人无码av片在线观看不卡 | 国产福利视频一区二区 | 国产乱码精品一品二品 | 性生交片免费无码看人 | 亚洲码国产精品高潮在线 | 久久成人a毛片免费观看网站 | 精品欧美一区二区三区久久久 | 午夜精品久久久久久久 | 97夜夜澡人人双人人人喊 | 亚洲午夜久久久影院 | 国产精品永久免费视频 | 亚洲综合色区中文字幕 | 国内精品人妻无码久久久影院 | 一本大道久久东京热无码av | 少妇一晚三次一区二区三区 | 欧美成人高清在线播放 | 国产成人一区二区三区别 | 亚洲综合无码一区二区三区 | 无遮挡国产高潮视频免费观看 | 久久精品中文字幕一区 | 99久久久无码国产精品免费 | 国产后入清纯学生妹 | 欧美大屁股xxxxhd黑色 | 国产sm调教视频在线观看 | 日韩在线不卡免费视频一区 | 亚洲男人av天堂午夜在 | 久久久亚洲欧洲日产国码αv | 久久无码中文字幕免费影院蜜桃 | 狠狠色丁香久久婷婷综合五月 | 日韩欧美成人免费观看 | 日韩人妻无码中文字幕视频 | 国产超级va在线观看视频 | 国产精品多人p群无码 | 亚洲一区二区三区在线观看网站 | 1000部啪啪未满十八勿入下载 | 久久午夜无码鲁丝片午夜精品 | 天天爽夜夜爽夜夜爽 | 久久国产精品二国产精品 | 国产69精品久久久久app下载 | 内射老妇bbwx0c0ck | 精品亚洲韩国一区二区三区 | 久久www免费人成人片 | 亚洲 欧美 激情 小说 另类 | 国产香蕉尹人综合在线观看 | 亚洲欧美中文字幕5发布 | 中文字幕色婷婷在线视频 | 久久成人a毛片免费观看网站 | 国产婷婷色一区二区三区在线 | 久久熟妇人妻午夜寂寞影院 | 四虎4hu永久免费 | 人妻互换免费中文字幕 | 福利一区二区三区视频在线观看 | 欧洲vodafone精品性 | 日韩精品无码免费一区二区三区 | 久在线观看福利视频 | 午夜精品久久久内射近拍高清 | 老熟妇乱子伦牲交视频 | 97夜夜澡人人双人人人喊 | 久久久久国色av免费观看性色 | 国产人成高清在线视频99最全资源 | 帮老师解开蕾丝奶罩吸乳网站 | 久久精品女人天堂av免费观看 | 99久久婷婷国产综合精品青草免费 | 欧美日韩一区二区免费视频 | 2019nv天堂香蕉在线观看 | 性做久久久久久久久 | 亚洲欧美国产精品久久 | 国产成人无码区免费内射一片色欲 | 亚洲大尺度无码无码专区 | 黑人大群体交免费视频 | 精品欧洲av无码一区二区三区 | 亚洲自偷自偷在线制服 | 丰满妇女强制高潮18xxxx | 六十路熟妇乱子伦 | 又大又硬又爽免费视频 | 色欲久久久天天天综合网精品 | 亚洲国产综合无码一区 | 色一情一乱一伦一视频免费看 | 亚洲精品国产精品乱码不卡 | 97久久精品无码一区二区 | 亚洲の无码国产の无码影院 | 给我免费的视频在线观看 | 国产亚洲精品久久久闺蜜 | 日本一区二区三区免费高清 | 人妻少妇被猛烈进入中文字幕 | 国产乱人偷精品人妻a片 | 国产超级va在线观看视频 | 国产亚av手机在线观看 | 思思久久99热只有频精品66 | 黑人巨大精品欧美黑寡妇 | 青青草原综合久久大伊人精品 | 成人精品一区二区三区中文字幕 | 夜先锋av资源网站 | 欧美阿v高清资源不卡在线播放 | 欧美一区二区三区视频在线观看 | 日本一卡2卡3卡四卡精品网站 | 国产精品久久久一区二区三区 | 熟妇人妻无码xxx视频 | 中文字幕乱码亚洲无线三区 | 精品 日韩 国产 欧美 视频 | 精品少妇爆乳无码av无码专区 | 亚拍精品一区二区三区探花 | 国产精品久久国产三级国 | 国产猛烈高潮尖叫视频免费 | 精品无人国产偷自产在线 | 2020最新国产自产精品 | 性史性农村dvd毛片 | 国产小呦泬泬99精品 | 色五月丁香五月综合五月 | 亚洲 欧美 激情 小说 另类 | 给我免费的视频在线观看 | 国产精品嫩草久久久久 | 99久久99久久免费精品蜜桃 | 无遮挡啪啪摇乳动态图 | 中文字幕无码人妻少妇免费 | 国产精品自产拍在线观看 | 国产一精品一av一免费 | 动漫av一区二区在线观看 | 丰满少妇人妻久久久久久 | 青草视频在线播放 | 久久精品中文字幕一区 | 秋霞特色aa大片 | 国产手机在线αⅴ片无码观看 | 东京热无码av男人的天堂 | 蜜桃av抽搐高潮一区二区 | 牲欲强的熟妇农村老妇女 | 欧美野外疯狂做受xxxx高潮 | 免费国产成人高清在线观看网站 | 亚洲呦女专区 | 国产成人精品三级麻豆 | 日韩精品无码一区二区中文字幕 | 性色av无码免费一区二区三区 | 日本欧美一区二区三区乱码 | 亚洲欧洲日本综合aⅴ在线 | 5858s亚洲色大成网站www | 国产精品久久久一区二区三区 | 日韩少妇白浆无码系列 | 老子影院午夜伦不卡 | 熟妇人妻无码xxx视频 | 精品无码成人片一区二区98 | 亚洲天堂2017无码 | 久久国内精品自在自线 | 国产成人综合色在线观看网站 | 久久国产劲爆∧v内射 | 日韩欧美中文字幕在线三区 | 国产偷抇久久精品a片69 | 国产免费观看黄av片 | 久久精品国产精品国产精品污 | 思思久久99热只有频精品66 | 国产精品美女久久久网av | 日本又色又爽又黄的a片18禁 | 国产在线无码精品电影网 | 在教室伦流澡到高潮hnp视频 | 中文无码精品a∨在线观看不卡 | 亚洲国产精品久久人人爱 | 欧美亚洲国产一区二区三区 | 亚洲精品成人av在线 | 免费观看激色视频网站 | 美女毛片一区二区三区四区 | 免费播放一区二区三区 | 国产成人无码a区在线观看视频app | 国产成人综合色在线观看网站 | 麻豆成人精品国产免费 | 亚洲啪av永久无码精品放毛片 | 国产精品国产自线拍免费软件 | 色婷婷av一区二区三区之红樱桃 | 老熟女乱子伦 | 国产av无码专区亚洲awww | 丝袜人妻一区二区三区 | 国产在线精品一区二区三区直播 | 欧美精品国产综合久久 | 性开放的女人aaa片 | 欧美日韩色另类综合 | 国产无av码在线观看 | 国产亚洲人成在线播放 | 亚洲另类伦春色综合小说 | 国产亚洲精品精品国产亚洲综合 | 久久久久久久久蜜桃 | 日本一本二本三区免费 | 精品人妻人人做人人爽 | 国内老熟妇对白xxxxhd | 2020久久香蕉国产线看观看 | 国产九九九九九九九a片 | 亚洲 欧美 激情 小说 另类 | 国产精品人人妻人人爽 | 日本熟妇浓毛 | 午夜无码人妻av大片色欲 | 亚洲国产av美女网站 | 国产成人精品三级麻豆 | 久久精品一区二区三区四区 | 久9re热视频这里只有精品 | 激情五月综合色婷婷一区二区 | 亚洲国产日韩a在线播放 | 99精品无人区乱码1区2区3区 | 少妇高潮喷潮久久久影院 | 国产成人久久精品流白浆 | av在线亚洲欧洲日产一区二区 | 日本熟妇大屁股人妻 | 久久精品人人做人人综合 | 亚洲熟悉妇女xxx妇女av | 国产激情一区二区三区 | 国产人妻精品一区二区三区不卡 | 国产做国产爱免费视频 | 色综合久久久久综合一本到桃花网 | 中文字幕色婷婷在线视频 | 国产成人无码a区在线观看视频app | 成人女人看片免费视频放人 | 2019nv天堂香蕉在线观看 | 97夜夜澡人人爽人人喊中国片 | 免费观看激色视频网站 | 国产精品久久久久久亚洲影视内衣 | 精品水蜜桃久久久久久久 | 亚洲国产精品一区二区第一页 | 99久久久无码国产aaa精品 | 人妻少妇精品无码专区二区 | 精品无人国产偷自产在线 | 久久国产精品二国产精品 | 一本久久a久久精品vr综合 | 国产av无码专区亚洲awww | 波多野42部无码喷潮在线 | 亚洲aⅴ无码成人网站国产app | 国产真实夫妇视频 | 亚洲七七久久桃花影院 | 帮老师解开蕾丝奶罩吸乳网站 | 在线观看欧美一区二区三区 | 国产成人av免费观看 | 亚洲精品国产精品乱码不卡 | 婷婷色婷婷开心五月四房播播 | 日日天日日夜日日摸 | 精品 日韩 国产 欧美 视频 | 中文字幕无码视频专区 | 中文字幕无码热在线视频 | 亚洲国产精品一区二区第一页 | 免费无码一区二区三区蜜桃大 | 一个人看的视频www在线 | 综合网日日天干夜夜久久 | 国产极品视觉盛宴 | 亚洲自偷精品视频自拍 | 少妇被粗大的猛进出69影院 | 中文字幕无码免费久久9一区9 | 久久国产36精品色熟妇 | 精品无码一区二区三区的天堂 | 无码国模国产在线观看 | 亚洲欧美色中文字幕在线 | 日韩无套无码精品 | a在线亚洲男人的天堂 | 中文字幕无码日韩专区 | 精品乱子伦一区二区三区 | 少妇被黑人到高潮喷出白浆 | 99久久久无码国产aaa精品 | 国产人妻精品一区二区三区 | 人妻少妇精品久久 | 国产suv精品一区二区五 | 免费无码午夜福利片69 | 日本免费一区二区三区最新 | 少妇被粗大的猛进出69影院 | 日韩精品无码免费一区二区三区 | 蜜桃av蜜臀av色欲av麻 999久久久国产精品消防器材 | 国内揄拍国内精品人妻 | 亚洲国产精品毛片av不卡在线 | 亚洲呦女专区 | 久久伊人色av天堂九九小黄鸭 | 日本一区二区更新不卡 | 伊在人天堂亚洲香蕉精品区 | 亚洲色无码一区二区三区 | 激情五月综合色婷婷一区二区 | 成人亚洲精品久久久久 | 欧美日韩一区二区免费视频 | 东京无码熟妇人妻av在线网址 | 国产精品美女久久久网av | 高潮毛片无遮挡高清免费 | 无码av最新清无码专区吞精 | 强开小婷嫩苞又嫩又紧视频 | 波多野结衣av在线观看 | 国产精品a成v人在线播放 | 亚洲欧美国产精品专区久久 | 东京热无码av男人的天堂 | 国产人妖乱国产精品人妖 | 亚洲无人区午夜福利码高清完整版 | a国产一区二区免费入口 | 鲁一鲁av2019在线 | 欧美激情综合亚洲一二区 | 无码国内精品人妻少妇 | 国产精品毛多多水多 | av无码不卡在线观看免费 | 久久亚洲国产成人精品性色 | 少妇无码一区二区二三区 | 人人妻人人澡人人爽欧美一区九九 | 国产乱人伦app精品久久 国产在线无码精品电影网 国产国产精品人在线视 | 久久精品人妻少妇一区二区三区 | 大色综合色综合网站 | 无码播放一区二区三区 | 亚洲色大成网站www | 亚洲精品综合一区二区三区在线 | 欧美精品无码一区二区三区 | 99riav国产精品视频 | 国产精品a成v人在线播放 | 日韩精品一区二区av在线 | 国产情侣作爱视频免费观看 | 国内揄拍国内精品少妇国语 | 午夜不卡av免费 一本久久a久久精品vr综合 | 88国产精品欧美一区二区三区 | 人妻无码久久精品人妻 | 精品人妻中文字幕有码在线 | 亚洲精品中文字幕 | 亚洲爆乳无码专区 | 久久久久久a亚洲欧洲av冫 | 久久国产36精品色熟妇 | 精品水蜜桃久久久久久久 | 中文字幕中文有码在线 | 精品人妻人人做人人爽夜夜爽 | 国产精品va在线观看无码 | 人妻中文无码久热丝袜 | 综合激情五月综合激情五月激情1 | 亚洲性无码av中文字幕 | 日韩精品一区二区av在线 | 色婷婷香蕉在线一区二区 | 国产在热线精品视频 | 在线播放亚洲第一字幕 | 亚洲一区二区三区播放 | 荫蒂被男人添的好舒服爽免费视频 | 色综合天天综合狠狠爱 | 婷婷色婷婷开心五月四房播播 | 久久国产精品_国产精品 | 国产又爽又黄又刺激的视频 | 成人片黄网站色大片免费观看 | 久激情内射婷内射蜜桃人妖 | 色综合久久久无码中文字幕 | 乱人伦中文视频在线观看 | 国产免费观看黄av片 | 亚洲熟妇色xxxxx亚洲 | 国产国语老龄妇女a片 | 亚洲七七久久桃花影院 | 在线视频网站www色 | 国产无av码在线观看 | 天天爽夜夜爽夜夜爽 | 国产精品无码一区二区三区不卡 | 国产精品久免费的黄网站 | 精品一区二区三区波多野结衣 | 波多野结衣一区二区三区av免费 | 免费国产黄网站在线观看 | 狠狠色噜噜狠狠狠7777奇米 | 乱中年女人伦av三区 | 婷婷色婷婷开心五月四房播播 | 亚洲精品美女久久久久久久 | 日本欧美一区二区三区乱码 | 在线成人www免费观看视频 | 欧美怡红院免费全部视频 | 玩弄少妇高潮ⅹxxxyw | 中文字幕av无码一区二区三区电影 | 日韩少妇内射免费播放 | 丰满人妻被黑人猛烈进入 | 亚洲精品一区二区三区在线观看 | 四虎影视成人永久免费观看视频 | 欧美性生交活xxxxxdddd | 欧洲欧美人成视频在线 | 人妻互换免费中文字幕 | 精品成人av一区二区三区 | 午夜福利不卡在线视频 | 亚洲国产精华液网站w | 久久午夜无码鲁丝片午夜精品 | 亚洲日韩一区二区 | 午夜肉伦伦影院 | 久久久久人妻一区精品色欧美 | 日韩人妻无码一区二区三区久久99 | 国产香蕉97碰碰久久人人 | 精品无码一区二区三区爱欲 | 东京热无码av男人的天堂 | 国产卡一卡二卡三 | 日本成熟视频免费视频 | 内射爽无广熟女亚洲 | 爆乳一区二区三区无码 | 免费男性肉肉影院 | 狂野欧美性猛交免费视频 | 影音先锋中文字幕无码 | 亚洲中文字幕无码中字 | 一本久久伊人热热精品中文字幕 | 国产猛烈高潮尖叫视频免费 | 又紧又大又爽精品一区二区 | 水蜜桃色314在线观看 | 国产成人综合美国十次 | 亚洲欧美日韩综合久久久 | 久久综合久久自在自线精品自 | 国产97在线 | 亚洲 | 狠狠综合久久久久综合网 | 成人精品视频一区二区三区尤物 | 熟女少妇人妻中文字幕 | 亚洲色偷偷偷综合网 | 日本熟妇人妻xxxxx人hd | 日本xxxx色视频在线观看免费 | 日韩欧美中文字幕在线三区 | 对白脏话肉麻粗话av | 成人性做爰aaa片免费看 | 性生交片免费无码看人 | 无码人妻av免费一区二区三区 | 无码播放一区二区三区 | 无码纯肉视频在线观看 | 风流少妇按摩来高潮 | 久久久精品欧美一区二区免费 | 国内少妇偷人精品视频 | 嫩b人妻精品一区二区三区 | 人妻体内射精一区二区三四 | 亚洲精品一区二区三区大桥未久 | 亚洲理论电影在线观看 | 久久婷婷五月综合色国产香蕉 | 性色av无码免费一区二区三区 | 激情五月综合色婷婷一区二区 | 久久人人爽人人人人片 | 思思久久99热只有频精品66 | 亚洲一区二区三区四区 | 亚洲欧美色中文字幕在线 | 国产莉萝无码av在线播放 | 天堂亚洲免费视频 | 国产午夜无码精品免费看 | 日韩精品乱码av一区二区 | 国产精品人妻一区二区三区四 | 精品国产一区二区三区av 性色 | 国产精品福利视频导航 | 欧洲美熟女乱又伦 | 亚洲欧美精品伊人久久 | 国产精品无码永久免费888 | 日本又色又爽又黄的a片18禁 | 天天躁日日躁狠狠躁免费麻豆 | 国产精品久久久久久亚洲毛片 | 无码人妻丰满熟妇区五十路百度 | 丰满肥臀大屁股熟妇激情视频 | 国产日产欧产精品精品app | 好屌草这里只有精品 | 婷婷综合久久中文字幕蜜桃三电影 | 亚洲午夜无码久久 | 狠狠cao日日穞夜夜穞av | 日日碰狠狠丁香久燥 | 免费乱码人妻系列无码专区 | 国产一区二区三区精品视频 | 久久国产精品偷任你爽任你 | 伊人久久大香线蕉午夜 | 国产综合色产在线精品 | 亚洲小说春色综合另类 | 国产午夜精品一区二区三区嫩草 | 国产亚洲精品久久久久久 | 人人爽人人爽人人片av亚洲 | 国产一区二区不卡老阿姨 | 丰满妇女强制高潮18xxxx | 国产精品久久精品三级 | 国产一区二区三区日韩精品 | 在线观看免费人成视频 | 综合网日日天干夜夜久久 | 国产无遮挡吃胸膜奶免费看 | 中文字幕无码av波多野吉衣 | 在线播放亚洲第一字幕 | ass日本丰满熟妇pics | 无码精品人妻一区二区三区av | 国产精品无码永久免费888 | 日本一卡2卡3卡四卡精品网站 | 国产精品人妻一区二区三区四 | 国产成人精品三级麻豆 | 色一情一乱一伦 | 在线观看国产午夜福利片 | 狠狠亚洲超碰狼人久久 | 久久久久99精品国产片 | 成人欧美一区二区三区黑人免费 | 国产精品18久久久久久麻辣 | 欧美老熟妇乱xxxxx | 欧美日韩综合一区二区三区 | 精品无码国产一区二区三区av | 国产成人无码a区在线观看视频app | 久久亚洲日韩精品一区二区三区 | 夜精品a片一区二区三区无码白浆 | 欧洲精品码一区二区三区免费看 | 亚洲精品一区二区三区在线观看 | 无码国产色欲xxxxx视频 | 老熟女乱子伦 | 黑人大群体交免费视频 | 久久久精品456亚洲影院 | 搡女人真爽免费视频大全 | 77777熟女视频在线观看 а天堂中文在线官网 | 久激情内射婷内射蜜桃人妖 | 欧美国产日产一区二区 | 色婷婷久久一区二区三区麻豆 | 女人高潮内射99精品 | 中文字幕无码av波多野吉衣 | 国产极品视觉盛宴 | 久久人妻内射无码一区三区 | 欧美黑人巨大xxxxx | 国产午夜精品一区二区三区嫩草 | 超碰97人人做人人爱少妇 | 少妇性l交大片欧洲热妇乱xxx | 欧美35页视频在线观看 | 日韩在线不卡免费视频一区 | 精品国产一区二区三区四区在线看 | 亚洲精品一区二区三区大桥未久 | 一二三四社区在线中文视频 | 久久久久亚洲精品中文字幕 | 亚洲中文字幕成人无码 | 一二三四在线观看免费视频 | 中文字幕无码视频专区 | 99久久精品日本一区二区免费 | 午夜无码人妻av大片色欲 | 无码人妻精品一区二区三区下载 | 亚洲精品无码人妻无码 | 久久无码专区国产精品s | 荫蒂被男人添的好舒服爽免费视频 | 国产成人av免费观看 | 亚洲人成影院在线无码按摩店 | 久久久中文久久久无码 | 在线天堂新版最新版在线8 | 欧美freesex黑人又粗又大 | 久久人妻内射无码一区三区 | 免费人成网站视频在线观看 | 国产精品久久久av久久久 | 在线a亚洲视频播放在线观看 | 欧洲精品码一区二区三区免费看 | 国产av一区二区精品久久凹凸 | 国产成人综合在线女婷五月99播放 | 久久精品人人做人人综合 | 亚洲va欧美va天堂v国产综合 | 亚洲国产精品一区二区第一页 | 国产亚洲日韩欧美另类第八页 | 麻豆精产国品 | 国产成人一区二区三区在线观看 | 亚洲熟妇色xxxxx欧美老妇y | 国产人成高清在线视频99最全资源 | 夜夜影院未满十八勿进 | 大乳丰满人妻中文字幕日本 | 久久精品丝袜高跟鞋 | 国产av一区二区精品久久凹凸 | 少妇太爽了在线观看 | 国产凸凹视频一区二区 | 一本久道久久综合狠狠爱 | 老司机亚洲精品影院无码 | 麻豆国产人妻欲求不满 | 麻豆国产人妻欲求不满谁演的 | 日产国产精品亚洲系列 | 国产av一区二区精品久久凹凸 | 久久99久久99精品中文字幕 | 帮老师解开蕾丝奶罩吸乳网站 | 国色天香社区在线视频 | 日韩 欧美 动漫 国产 制服 | 夜夜躁日日躁狠狠久久av | 男女超爽视频免费播放 | 色窝窝无码一区二区三区色欲 | 欧美国产日韩久久mv | 日本一区二区更新不卡 | 精品久久久久香蕉网 | 国产成人精品久久亚洲高清不卡 | 亚洲色无码一区二区三区 | 精品国产aⅴ无码一区二区 | 99精品国产综合久久久久五月天 | 欧美真人作爱免费视频 | 国产精品亚洲五月天高清 | 国产区女主播在线观看 | 中文无码成人免费视频在线观看 | www成人国产高清内射 | 狂野欧美性猛xxxx乱大交 | 十八禁真人啪啪免费网站 | 亚洲日韩av一区二区三区中文 | 亚洲七七久久桃花影院 | 丰满人妻一区二区三区免费视频 | 一个人免费观看的www视频 | 亚洲欧美日韩成人高清在线一区 | 99久久精品国产一区二区蜜芽 | 色五月丁香五月综合五月 | 久久久精品人妻久久影视 | 久久99精品久久久久婷婷 | 人妻夜夜爽天天爽三区 | 伊人久久大香线蕉av一区二区 | 天天躁日日躁狠狠躁免费麻豆 | ass日本丰满熟妇pics | 免费视频欧美无人区码 | 男女超爽视频免费播放 | 婷婷色婷婷开心五月四房播播 | 国产精品久久国产精品99 | 亚洲成色www久久网站 | 亚洲自偷精品视频自拍 | 76少妇精品导航 | 国产亚洲美女精品久久久2020 | 又大又硬又黄的免费视频 | 国产亲子乱弄免费视频 | 青青青爽视频在线观看 | 国产精品久久久久久久影院 | 爱做久久久久久 | av人摸人人人澡人人超碰下载 | 国内精品人妻无码久久久影院蜜桃 | 99久久精品国产一区二区蜜芽 | 荡女精品导航 | 性生交大片免费看女人按摩摩 | 97资源共享在线视频 | 国产午夜手机精彩视频 | 少妇被粗大的猛进出69影院 | 东京无码熟妇人妻av在线网址 | 欧美 日韩 人妻 高清 中文 | 亚洲精品欧美二区三区中文字幕 | 久久精品99久久香蕉国产色戒 | 桃花色综合影院 | av无码久久久久不卡免费网站 | v一区无码内射国产 | 亚洲欧洲中文日韩av乱码 | 国产手机在线αⅴ片无码观看 | 精品无人区无码乱码毛片国产 | 国产乱人无码伦av在线a | 丰满诱人的人妻3 | 永久黄网站色视频免费直播 | 色诱久久久久综合网ywww | 妺妺窝人体色www在线小说 | 少妇太爽了在线观看 | 国产黄在线观看免费观看不卡 | 亚洲中文字幕无码中文字在线 | 国产成人精品视频ⅴa片软件竹菊 | 亚洲精品中文字幕久久久久 | 在线欧美精品一区二区三区 | 国产精品久久久av久久久 | 国产精品鲁鲁鲁 | 亚洲国产精品无码一区二区三区 | 精品成在人线av无码免费看 | 5858s亚洲色大成网站www | 国产精品永久免费视频 | 少妇性l交大片 | 国产网红无码精品视频 | 亚洲高清偷拍一区二区三区 | 性做久久久久久久久 | 妺妺窝人体色www在线小说 | 精品无码一区二区三区的天堂 | 夜夜高潮次次欢爽av女 | 国产精品.xx视频.xxtv | 精品国产麻豆免费人成网站 | 国产一区二区三区四区五区加勒比 | 亚洲理论电影在线观看 | 国产亚洲精品久久久久久国模美 | 亚洲成a人片在线观看无码3d | 日本免费一区二区三区最新 | 日本精品人妻无码免费大全 | 亚洲小说春色综合另类 | 国产舌乚八伦偷品w中 | 大地资源网第二页免费观看 | 亚洲精品成人福利网站 | 国产成人无码区免费内射一片色欲 | 欧美乱妇无乱码大黄a片 | 最近中文2019字幕第二页 | 午夜丰满少妇性开放视频 | av香港经典三级级 在线 | 亚洲综合伊人久久大杳蕉 | 国产亚洲人成a在线v网站 | 久久午夜无码鲁丝片 | 亚洲爆乳精品无码一区二区三区 | av小次郎收藏 | 国精品人妻无码一区二区三区蜜柚 | 亚洲日本一区二区三区在线 | 一本色道久久综合狠狠躁 | 亚洲欧美国产精品久久 | 大乳丰满人妻中文字幕日本 | 亚洲人成影院在线无码按摩店 | 亚洲日韩乱码中文无码蜜桃臀网站 | 国产精品手机免费 | 日日麻批免费40分钟无码 | 日韩精品一区二区av在线 | 无码播放一区二区三区 | 国产亚洲欧美日韩亚洲中文色 | 亚洲人成人无码网www国产 | 中文无码伦av中文字幕 | 男人扒开女人内裤强吻桶进去 | 国产美女精品一区二区三区 | 国产在热线精品视频 | 国产麻豆精品一区二区三区v视界 | 国产深夜福利视频在线 | 国产精品亚洲专区无码不卡 | 精品欧美一区二区三区久久久 | 国産精品久久久久久久 | 少女韩国电视剧在线观看完整 | 欧美freesex黑人又粗又大 | 亚洲国产精品一区二区美利坚 | 免费国产成人高清在线观看网站 | 国产69精品久久久久app下载 | 国产亚洲欧美日韩亚洲中文色 | 麻豆md0077饥渴少妇 | 日韩av无码一区二区三区 | 精品久久久无码中文字幕 | 国产精品无码久久av | 夜夜夜高潮夜夜爽夜夜爰爰 | av无码不卡在线观看免费 | 免费无码的av片在线观看 | 亚洲狠狠色丁香婷婷综合 | 亚洲精品一区二区三区四区五区 | 一本精品99久久精品77 | 亚洲精品一区二区三区四区五区 | www国产亚洲精品久久网站 | 午夜精品一区二区三区在线观看 | 亚洲 另类 在线 欧美 制服 | 日欧一片内射va在线影院 | 亚洲欧洲日本综合aⅴ在线 | 丰满妇女强制高潮18xxxx | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 亚洲欧美精品伊人久久 | √天堂资源地址中文在线 | 精品人人妻人人澡人人爽人人 | 亚洲国产欧美日韩精品一区二区三区 | 国产精品第一区揄拍无码 | 免费网站看v片在线18禁无码 | 久久这里只有精品视频9 | 亚洲区欧美区综合区自拍区 | 欧美日韩久久久精品a片 | 国产人妻人伦精品1国产丝袜 | 国产xxx69麻豆国语对白 | 偷窥村妇洗澡毛毛多 | 中国女人内谢69xxxxxa片 | 久久久精品人妻久久影视 | 捆绑白丝粉色jk震动捧喷白浆 | 精品亚洲韩国一区二区三区 | 亚洲欧洲无卡二区视頻 | 国产午夜无码精品免费看 | 在教室伦流澡到高潮hnp视频 | 中文字幕无码人妻少妇免费 | 内射白嫩少妇超碰 | 亚洲中文字幕久久无码 | 午夜理论片yy44880影院 | 国产精品怡红院永久免费 | 国产艳妇av在线观看果冻传媒 | 女人被男人爽到呻吟的视频 | 中文字幕无码视频专区 | 成在人线av无码免观看麻豆 | 成人av无码一区二区三区 | 国产人妻精品午夜福利免费 | 欧美放荡的少妇 | 欧美 日韩 亚洲 在线 | 麻豆国产人妻欲求不满 | 综合网日日天干夜夜久久 | 少妇人妻偷人精品无码视频 | 国产真实伦对白全集 | 特大黑人娇小亚洲女 | 18无码粉嫩小泬无套在线观看 | 免费无码的av片在线观看 | 国产亚洲精品久久久久久久久动漫 | aa片在线观看视频在线播放 | 老熟女重囗味hdxx69 | 欧美乱妇无乱码大黄a片 | 国产无遮挡又黄又爽免费视频 | 欧美国产日产一区二区 | 国产av久久久久精东av | 国产极品美女高潮无套在线观看 | 人妻中文无码久热丝袜 | 久久精品中文字幕大胸 | 麻豆人妻少妇精品无码专区 | 东京无码熟妇人妻av在线网址 | 1000部啪啪未满十八勿入下载 | 大乳丰满人妻中文字幕日本 | 国产精品第一区揄拍无码 | 丰满少妇人妻久久久久久 | 免费网站看v片在线18禁无码 | 成人女人看片免费视频放人 | 精品无码一区二区三区爱欲 | 少妇性l交大片欧洲热妇乱xxx | 欧美熟妇另类久久久久久多毛 | 亚洲日韩中文字幕在线播放 | 日本一区二区三区免费播放 | 美女张开腿让人桶 | 中文字幕日产无线码一区 | 在线播放亚洲第一字幕 | 人人爽人人澡人人人妻 | 色婷婷av一区二区三区之红樱桃 | 中文字幕精品av一区二区五区 | 国产精品无码永久免费888 | 久久久久成人精品免费播放动漫 | 18精品久久久无码午夜福利 | 大屁股大乳丰满人妻 | 在线精品国产一区二区三区 | 欧美 丝袜 自拍 制服 另类 | 成人片黄网站色大片免费观看 | 久久久久久久久蜜桃 | 国产香蕉尹人综合在线观看 | 久久精品无码一区二区三区 | 欧美35页视频在线观看 | 小鲜肉自慰网站xnxx | 久久国产精品精品国产色婷婷 | 又粗又大又硬又长又爽 | 人妻体内射精一区二区三四 | 兔费看少妇性l交大片免费 | 无码福利日韩神码福利片 | 青青草原综合久久大伊人精品 | 日日躁夜夜躁狠狠躁 | 天天燥日日燥 | 国产午夜精品一区二区三区嫩草 | 伊人久久大香线焦av综合影院 | 久久精品国产大片免费观看 | 亚洲成色www久久网站 | 国产精品无码永久免费888 | 国内少妇偷人精品视频 | 好屌草这里只有精品 | 国产精品美女久久久久av爽李琼 | 无码国产激情在线观看 | 中文字幕乱码人妻二区三区 | 国产午夜精品一区二区三区嫩草 | av无码不卡在线观看免费 | 日日麻批免费40分钟无码 | 久久人妻内射无码一区三区 | 日本一卡二卡不卡视频查询 | 国产精品久久久久影院嫩草 | 欧美日韩精品 | 国产另类ts人妖一区二区 | 国精品人妻无码一区二区三区蜜柚 | 人妻少妇精品久久 | 天干天干啦夜天干天2017 | 一本久道久久综合婷婷五月 | 无人区乱码一区二区三区 | 久久99久久99精品中文字幕 | 久久久久久国产精品无码下载 | 精品偷拍一区二区三区在线看 | 久久久久国色av免费观看性色 | 亚洲精品一区二区三区在线观看 | 东京一本一道一二三区 | 国产精品二区一区二区aⅴ污介绍 | 色综合久久久久综合一本到桃花网 | 午夜精品一区二区三区的区别 | 亚洲天堂2017无码中文 | 大色综合色综合网站 | 国产9 9在线 | 中文 | 人妻插b视频一区二区三区 | 亚洲欧美中文字幕5发布 | 日本精品人妻无码免费大全 | 欧美兽交xxxx×视频 | 成人精品一区二区三区中文字幕 | 老子影院午夜精品无码 | 男女猛烈xx00免费视频试看 | 亚洲精品久久久久中文第一幕 | 欧美丰满熟妇xxxx性ppx人交 | 老头边吃奶边弄进去呻吟 | 亚洲 激情 小说 另类 欧美 | 人妻无码久久精品人妻 | 亚洲精品欧美二区三区中文字幕 | 精品国偷自产在线视频 | 欧美日韩久久久精品a片 | 水蜜桃色314在线观看 | 东京无码熟妇人妻av在线网址 | 秋霞成人午夜鲁丝一区二区三区 | 婷婷丁香六月激情综合啪 | 蜜桃无码一区二区三区 | 国产97色在线 | 免 | 无码帝国www无码专区色综合 | 中文字幕无码视频专区 | 国产精品嫩草久久久久 | 国产免费久久精品国产传媒 | 高潮毛片无遮挡高清免费 | 精品成人av一区二区三区 | 国产一区二区三区日韩精品 | 国产无套内射久久久国产 | 亚洲伊人久久精品影院 | 国产99久久精品一区二区 | 免费乱码人妻系列无码专区 | 亚洲综合久久一区二区 | 精品国精品国产自在久国产87 | 白嫩日本少妇做爰 | 亚洲成在人网站无码天堂 | 在教室伦流澡到高潮hnp视频 | 人人爽人人爽人人片av亚洲 | 国产激情无码一区二区app | 国产精品无码永久免费888 | 人人妻人人澡人人爽欧美一区 | 国产做国产爱免费视频 | 国产9 9在线 | 中文 | 亚洲欧美日韩成人高清在线一区 | av无码不卡在线观看免费 | 精品一区二区不卡无码av | 国产两女互慰高潮视频在线观看 | 中文精品无码中文字幕无码专区 | 永久黄网站色视频免费直播 | 女人和拘做爰正片视频 | 性欧美牲交在线视频 | 国产精品久久久 | 国产美女极度色诱视频www | 丰满少妇熟乱xxxxx视频 | 久久午夜无码鲁丝片 | 亚洲色无码一区二区三区 | 天天拍夜夜添久久精品 | 国产精品永久免费视频 | 国产成人综合色在线观看网站 | 国产无套内射久久久国产 | 国产亚洲视频中文字幕97精品 | 国产精品久久久久久久9999 | 国产精品二区一区二区aⅴ污介绍 | 99久久精品国产一区二区蜜芽 | 国产精品美女久久久网av | 国产精品99久久精品爆乳 | 亚洲精品国偷拍自产在线麻豆 | 中文字幕久久久久人妻 | 国产精品丝袜黑色高跟鞋 | 亚洲欧美精品aaaaaa片 | 国产精品久久久久9999小说 | 久久久精品456亚洲影院 | 欧美高清在线精品一区 | 精品久久久久久亚洲精品 | 色狠狠av一区二区三区 | 四虎国产精品免费久久 | 中文字幕日韩精品一区二区三区 | 图片小说视频一区二区 | 欧美亚洲国产一区二区三区 | 国产农村妇女aaaaa视频 撕开奶罩揉吮奶头视频 | 色窝窝无码一区二区三区色欲 | 国产精品久久久av久久久 | 纯爱无遮挡h肉动漫在线播放 | 中文字幕av日韩精品一区二区 | 国产精品99久久精品爆乳 | 亚洲色偷偷男人的天堂 | 中文无码成人免费视频在线观看 | 国产精品久久久一区二区三区 | 成人欧美一区二区三区 | 俺去俺来也在线www色官网 | 纯爱无遮挡h肉动漫在线播放 | 99久久亚洲精品无码毛片 | 精品无码国产一区二区三区av | 亚洲日韩精品欧美一区二区 | 日本精品少妇一区二区三区 | 99久久久无码国产aaa精品 | 国产色视频一区二区三区 | 国产无遮挡又黄又爽免费视频 | 强辱丰满人妻hd中文字幕 | 97人妻精品一区二区三区 | 5858s亚洲色大成网站www | 88国产精品欧美一区二区三区 | 色婷婷久久一区二区三区麻豆 | 老子影院午夜精品无码 | 最新版天堂资源中文官网 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 国产在线无码精品电影网 | 久久久精品国产sm最大网站 | 无码播放一区二区三区 | 丰满肥臀大屁股熟妇激情视频 | 99久久人妻精品免费一区 | 377p欧洲日本亚洲大胆 | 成熟妇人a片免费看网站 | 鲁一鲁av2019在线 | 亚洲国产精品毛片av不卡在线 | 中文字幕无码日韩欧毛 | 国产亚洲精品精品国产亚洲综合 | 最近中文2019字幕第二页 | 亚洲中文字幕在线无码一区二区 | 色诱久久久久综合网ywww | 久久久精品成人免费观看 | 国产一区二区三区精品视频 | 成 人 网 站国产免费观看 | 久久久av男人的天堂 | 最新国产麻豆aⅴ精品无码 | 自拍偷自拍亚洲精品被多人伦好爽 | 一区二区三区乱码在线 | 欧洲 | 久久精品99久久香蕉国产色戒 | 国产激情综合五月久久 | 扒开双腿疯狂进出爽爽爽视频 | 亚欧洲精品在线视频免费观看 | 黑人巨大精品欧美黑寡妇 | 国产在线一区二区三区四区五区 | 亚洲人亚洲人成电影网站色 | 久久aⅴ免费观看 | 人妻有码中文字幕在线 | 人妻少妇精品无码专区动漫 | 九九久久精品国产免费看小说 | 激情亚洲一区国产精品 | 精品一二三区久久aaa片 | 亚洲欧洲无卡二区视頻 | 99久久婷婷国产综合精品青草免费 | 精品偷拍一区二区三区在线看 | 精品国偷自产在线 | 日本免费一区二区三区最新 | 中文无码精品a∨在线观看不卡 | 亚洲综合无码久久精品综合 | 日日噜噜噜噜夜夜爽亚洲精品 | 精品久久久无码中文字幕 | 亚洲熟妇色xxxxx欧美老妇y | 欧美亚洲日韩国产人成在线播放 | 99久久婷婷国产综合精品青草免费 | 亚洲中文无码av永久不收费 | 久久精品人人做人人综合 | 亚洲一区二区三区四区 | 色婷婷av一区二区三区之红樱桃 | 国内少妇偷人精品视频免费 | 内射巨臀欧美在线视频 | 亚洲综合无码久久精品综合 | 两性色午夜视频免费播放 | 久久久久亚洲精品男人的天堂 | 亚洲无人区午夜福利码高清完整版 | 亚洲国产欧美国产综合一区 | 国内老熟妇对白xxxxhd | 久久99热只有频精品8 | 亚洲成色在线综合网站 | 永久黄网站色视频免费直播 | 午夜理论片yy44880影院 | 黑森林福利视频导航 | 亚洲精品无码人妻无码 | 成人试看120秒体验区 | 波多野结衣高清一区二区三区 | 国产成人精品三级麻豆 | 九九久久精品国产免费看小说 | 偷窥日本少妇撒尿chinese | 亚洲中文字幕无码一久久区 | 精品国产乱码久久久久乱码 | 欧美性色19p | 内射欧美老妇wbb | 国产精品久久久一区二区三区 | 四虎国产精品一区二区 | 精品国产一区二区三区四区 | 天堂无码人妻精品一区二区三区 | 国产精品久久国产精品99 | 国产精品毛片一区二区 | 精品国产一区二区三区四区在线看 | 国产人妻久久精品二区三区老狼 | 国产午夜亚洲精品不卡下载 | 人妻中文无码久热丝袜 | 中文字幕久久久久人妻 | 国产麻豆精品精东影业av网站 | 一本加勒比波多野结衣 | 国产一区二区三区日韩精品 | 人妻插b视频一区二区三区 | 久激情内射婷内射蜜桃人妖 | 国内少妇偷人精品视频 | 成人亚洲精品久久久久 | 午夜精品一区二区三区的区别 | 亚洲精品无码人妻无码 | 亚洲国产高清在线观看视频 | 亚洲精品国产第一综合99久久 | 97色伦图片97综合影院 | 18精品久久久无码午夜福利 | 久久精品中文闷骚内射 | 中文字幕无码视频专区 | 麻豆人妻少妇精品无码专区 | 九九在线中文字幕无码 | 无码国产色欲xxxxx视频 | 强伦人妻一区二区三区视频18 | 无码精品人妻一区二区三区av | 久久国产自偷自偷免费一区调 | 天堂а√在线地址中文在线 | 亚洲一区二区三区国产精华液 | 亚洲欧美色中文字幕在线 | 日韩av激情在线观看 | 人人妻人人澡人人爽精品欧美 | 人妻aⅴ无码一区二区三区 | 精品国产一区二区三区四区在线看 | 4hu四虎永久在线观看 | 乱码av麻豆丝袜熟女系列 | 亚洲国产精品久久久久久 | 精品久久久久久亚洲精品 | 中文精品无码中文字幕无码专区 | 精品无人区无码乱码毛片国产 | 国产激情精品一区二区三区 | 熟妇女人妻丰满少妇中文字幕 | 国产午夜精品一区二区三区嫩草 | 中文字幕乱码亚洲无线三区 | 日本熟妇大屁股人妻 | 无码人妻av免费一区二区三区 | 99re在线播放 | 国产精品99爱免费视频 | 日本精品久久久久中文字幕 | 国产99久久精品一区二区 | 色一情一乱一伦一视频免费看 | 在线播放无码字幕亚洲 | 中文字幕精品av一区二区五区 | 亚洲中文字幕无码中字 | 精品欧美一区二区三区久久久 | 中文久久乱码一区二区 | 久久精品99久久香蕉国产色戒 | 99re在线播放 | 亚洲日韩av一区二区三区四区 | 欧洲精品码一区二区三区免费看 | 一二三四社区在线中文视频 | 性欧美疯狂xxxxbbbb | 国产亚洲精品久久久久久久久动漫 | 99久久久国产精品无码免费 | 东北女人啪啪对白 | 小泽玛莉亚一区二区视频在线 | 国产黑色丝袜在线播放 | 国产精品国产三级国产专播 | 国产亚洲美女精品久久久2020 | 无套内谢的新婚少妇国语播放 | 377p欧洲日本亚洲大胆 | 大地资源中文第3页 | 成人欧美一区二区三区黑人 | 国产亚洲精品久久久久久久久动漫 | 水蜜桃亚洲一二三四在线 | 狠狠躁日日躁夜夜躁2020 | a在线观看免费网站大全 | 日本护士毛茸茸高潮 | 国产一区二区三区日韩精品 | 人人妻人人澡人人爽欧美一区 | 日日天干夜夜狠狠爱 | 少妇性l交大片 | 丰满人妻被黑人猛烈进入 | 两性色午夜免费视频 | 色欲久久久天天天综合网精品 | 无码人妻精品一区二区三区不卡 | 亚洲人成影院在线观看 | 久久人人爽人人爽人人片av高清 | 精品国产aⅴ无码一区二区 | 久久久久人妻一区精品色欧美 | 国产又爽又黄又刺激的视频 | 亚洲国产精品久久久久久 | 小泽玛莉亚一区二区视频在线 | 久久精品中文闷骚内射 | 亚洲成a人片在线观看无码 | 亚洲欧美国产精品专区久久 | 日韩无码专区 | 日韩少妇白浆无码系列 | 日本精品人妻无码免费大全 | 性欧美熟妇videofreesex | 牛和人交xxxx欧美 | 国产乱码精品一品二品 | 成人影院yy111111在线观看 | 国产人妻人伦精品1国产丝袜 | 欧美日韩色另类综合 | 亚洲欧洲日本无在线码 | 国产亚洲人成在线播放 | 国产午夜亚洲精品不卡 | 亚洲va中文字幕无码久久不卡 | 少妇性荡欲午夜性开放视频剧场 | 无遮无挡爽爽免费视频 | 天堂久久天堂av色综合 | 亚洲精品中文字幕 | 国产精品人人爽人人做我的可爱 | 成人性做爰aaa片免费看不忠 | 天天av天天av天天透 | 国产精品久久久久无码av色戒 | 夜精品a片一区二区三区无码白浆 | 亚洲成a人片在线观看日本 | 日本大香伊一区二区三区 | 精品久久久久久人妻无码中文字幕 | 中文字幕精品av一区二区五区 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 性欧美熟妇videofreesex | 欧美刺激性大交 | 99久久无码一区人妻 | 日本又色又爽又黄的a片18禁 | 国产人成高清在线视频99最全资源 | 兔费看少妇性l交大片免费 | 欧美精品免费观看二区 | 亚洲中文字幕乱码av波多ji | 成人无码精品一区二区三区 | 国产成人久久精品流白浆 | 国产女主播喷水视频在线观看 | 狂野欧美性猛交免费视频 | 精品无码av一区二区三区 | 亚洲区欧美区综合区自拍区 | 国内老熟妇对白xxxxhd | 亚洲综合色区中文字幕 | 国产精品a成v人在线播放 | 久久久精品欧美一区二区免费 | 国产精品香蕉在线观看 | 99久久久无码国产aaa精品 | 免费国产成人高清在线观看网站 | 美女毛片一区二区三区四区 | 日本大乳高潮视频在线观看 | 欧美成人免费全部网站 | 亚洲色偷偷偷综合网 | 亚洲另类伦春色综合小说 | 丰满人妻一区二区三区免费视频 | 人人妻人人藻人人爽欧美一区 | 国产激情艳情在线看视频 | www国产亚洲精品久久网站 | 人人爽人人澡人人人妻 | 国产免费久久精品国产传媒 | 男女下面进入的视频免费午夜 | 欧洲vodafone精品性 | 精品成人av一区二区三区 | 日日夜夜撸啊撸 | 久久99精品国产麻豆蜜芽 | 亚洲成av人在线观看网址 | 亚洲精品国偷拍自产在线观看蜜桃 | 久久国产劲爆∧v内射 | 午夜精品一区二区三区的区别 | 日产精品99久久久久久 | 澳门永久av免费网站 | 在线看片无码永久免费视频 | 久久综合激激的五月天 | 一区二区三区乱码在线 | 欧洲 | 最新国产乱人伦偷精品免费网站 | 国产艳妇av在线观看果冻传媒 | 高潮毛片无遮挡高清免费 | 黑人粗大猛烈进出高潮视频 | 国产精品亚洲lv粉色 | 国产超碰人人爽人人做人人添 | 未满成年国产在线观看 | 好屌草这里只有精品 | 无码午夜成人1000部免费视频 | 国产精品无套呻吟在线 | 亚洲成a人片在线观看日本 | 色窝窝无码一区二区三区色欲 | 青青青手机频在线观看 | 国产手机在线αⅴ片无码观看 | 成人欧美一区二区三区黑人免费 | 免费观看又污又黄的网站 | 欧美一区二区三区 | 领导边摸边吃奶边做爽在线观看 | 亚洲s码欧洲m码国产av | 亚洲国产精品久久久天堂 | 一区二区三区高清视频一 | 精品国产一区二区三区av 性色 | 老熟女乱子伦 | 日韩人妻少妇一区二区三区 | 狠狠躁日日躁夜夜躁2020 | 国产无遮挡又黄又爽又色 | 人人超人人超碰超国产 | 精品国产精品久久一区免费式 | 无码帝国www无码专区色综合 | 精品久久久久久亚洲精品 | 亚洲a无码综合a国产av中文 | 成人亚洲精品久久久久 | 99久久人妻精品免费一区 | 久久国产劲爆∧v内射 | 麻花豆传媒剧国产免费mv在线 | 欧美怡红院免费全部视频 | 久久国产劲爆∧v内射 | 精品人妻av区 | 久久婷婷五月综合色国产香蕉 | 亚洲色成人中文字幕网站 | 少妇激情av一区二区 | 国产人妻精品午夜福利免费 | 精品亚洲成av人在线观看 | 夫妻免费无码v看片 | 久久久国产精品无码免费专区 | 亚洲 激情 小说 另类 欧美 | 兔费看少妇性l交大片免费 | 国产一区二区三区精品视频 | 国产精品爱久久久久久久 | 婷婷丁香六月激情综合啪 | 亚洲一区二区三区在线观看网站 | 久久久久亚洲精品男人的天堂 | √8天堂资源地址中文在线 | 国产精品毛片一区二区 | 人妻有码中文字幕在线 | 女高中生第一次破苞av | 亚洲国产精品毛片av不卡在线 | 国产sm调教视频在线观看 | 色婷婷av一区二区三区之红樱桃 | 日韩人妻少妇一区二区三区 | 77777熟女视频在线观看 а天堂中文在线官网 | 又大又硬又黄的免费视频 | 无码午夜成人1000部免费视频 | 国产真人无遮挡作爱免费视频 | 成人aaa片一区国产精品 | 偷窥日本少妇撒尿chinese | 中文字幕无码热在线视频 | 成人片黄网站色大片免费观看 | 日本一卡2卡3卡4卡无卡免费网站 国产一区二区三区影院 | 日本精品人妻无码免费大全 | 天海翼激烈高潮到腰振不止 | 亚洲码国产精品高潮在线 | 日韩亚洲欧美中文高清在线 | 在线观看欧美一区二区三区 | 日本肉体xxxx裸交 | 久久99精品国产.久久久久 | 亚洲精品久久久久中文第一幕 | 理论片87福利理论电影 | 久久午夜无码鲁丝片午夜精品 | 中文字幕乱码亚洲无线三区 | 色一情一乱一伦一视频免费看 | 初尝人妻少妇中文字幕 | 国产一精品一av一免费 | 免费观看激色视频网站 | 午夜精品久久久久久久久 | 亚洲国产综合无码一区 | 红桃av一区二区三区在线无码av | 久久久久se色偷偷亚洲精品av | 九九久久精品国产免费看小说 | 国产亚洲精品久久久ai换 | 午夜不卡av免费 一本久久a久久精品vr综合 | 中文字幕无码av激情不卡 | 377p欧洲日本亚洲大胆 | 99久久人妻精品免费二区 | 国产精品无套呻吟在线 | 国产激情艳情在线看视频 | 熟妇女人妻丰满少妇中文字幕 | 少妇无码吹潮 | 熟妇人妻无乱码中文字幕 | 国精品人妻无码一区二区三区蜜柚 | 国产97人人超碰caoprom | 久久久www成人免费毛片 | 丰满人妻翻云覆雨呻吟视频 | 国产艳妇av在线观看果冻传媒 | 无码福利日韩神码福利片 | 欧美黑人巨大xxxxx | 亚洲精品国产品国语在线观看 | 亚洲区欧美区综合区自拍区 | 成人精品天堂一区二区三区 | 国产亚洲精品久久久久久久 | 中文字幕乱码中文乱码51精品 | 网友自拍区视频精品 | 性欧美牲交在线视频 | 久久99精品久久久久久动态图 | 国产无遮挡又黄又爽免费视频 | 中文字幕精品av一区二区五区 | 国产精品香蕉在线观看 | 国内精品人妻无码久久久影院蜜桃 | 国产精品亚洲专区无码不卡 | 久激情内射婷内射蜜桃人妖 | 荫蒂被男人添的好舒服爽免费视频 | 亚洲一区二区三区香蕉 | 一区二区三区高清视频一 | 亚洲国产成人a精品不卡在线 | 久久亚洲国产成人精品性色 | 成年美女黄网站色大免费视频 | 色五月丁香五月综合五月 | 国产精品久久久久9999小说 | 给我免费的视频在线观看 | 免费无码的av片在线观看 | 欧美精品一区二区精品久久 | 网友自拍区视频精品 | 色综合天天综合狠狠爱 | 久久久婷婷五月亚洲97号色 | 牲欲强的熟妇农村老妇女 | 国产精品无码mv在线观看 | 无码帝国www无码专区色综合 | 日本欧美一区二区三区乱码 | 无码成人精品区在线观看 | 午夜肉伦伦影院 | 成人无码影片精品久久久 | 欧美国产日产一区二区 | 日本www一道久久久免费榴莲 | 在线a亚洲视频播放在线观看 | 在线 国产 欧美 亚洲 天堂 | 久久亚洲日韩精品一区二区三区 | 奇米影视888欧美在线观看 | 国内综合精品午夜久久资源 | 国产精品国产自线拍免费软件 | 天天av天天av天天透 | 日韩人妻无码中文字幕视频 | 亚洲日本一区二区三区在线 | 女人被爽到呻吟gif动态图视看 | 精品无码国产自产拍在线观看蜜 | 欧美性黑人极品hd | aa片在线观看视频在线播放 | 51国偷自产一区二区三区 | 玩弄中年熟妇正在播放 | 国产精品久久久一区二区三区 | 国产乱子伦视频在线播放 | 中文字幕av伊人av无码av | 桃花色综合影院 | 性生交大片免费看l | 国内少妇偷人精品视频 | 强开小婷嫩苞又嫩又紧视频 | 亚洲综合色区中文字幕 | 女人和拘做爰正片视频 | 99麻豆久久久国产精品免费 | 乌克兰少妇xxxx做受 | 久久婷婷五月综合色国产香蕉 | 亚洲欧洲中文日韩av乱码 | 国产精华av午夜在线观看 | 亚洲综合无码一区二区三区 | 激情综合激情五月俺也去 | 国产精品人人妻人人爽 | 亚洲精品中文字幕久久久久 | 自拍偷自拍亚洲精品被多人伦好爽 | 国产亚洲欧美日韩亚洲中文色 |