精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

使用Python從零實現多分類SVM

開發 前端
本文將首先簡要概述支持向量機及其訓練和推理方程,然后將其轉換為代碼以開發支持向量機模型。之后然后將其擴展成多分類的場景,并通過使用Sci-kit Learn測試我們的模型來結束。

本文將首先簡要概述支持向量機及其訓練和推理方程,然后將其轉換為代碼以開發支持向量機模型。之后然后將其擴展成多分類的場景,并通過使用Sci-kit Learn測試我們的模型來結束。

SVM概述

支持向量機的目標是擬合獲得最大邊緣的超平面(兩個類中最近點的距離)??梢灾庇^地表明,這樣的超平面(A)比沒有最大化邊際的超平面(B)具有更好的泛化特性和對噪聲的魯棒性。

為了實現這一點,SVM通過求解以下優化問題找到超平面的W和b:

它試圖找到W,b,使最近點的距離最大化,并正確分類所有內容(如y取±1的約束)。這可以被證明相當于以下優化問題:

可以寫出等價的對偶優化問題

這個問題的解決方案產生了一個拉格朗日乘數,我們假設數據集中的每個點的大小為m:(α 1, α 2,…,α _n)。目標函數在α中明顯是二次的,約束是線性的,這意味著它可以很容易地用二次規劃求解。一旦找到解,由對偶的推導可知:

注意,只有具有α>0的點才定義超平面(對和有貢獻)。這些被稱為支持向量。因此當給定一個新例子x時,返回其預測y=±1的預測方程為:

這種支持向量機的基本形式被稱為硬邊界支持向量機(hard margin SVM),因為它解決的優化問題(如上所述)強制要求訓練中的所有點必須被正確分類。但在實際場景中,可能存在一些噪聲,阻止或限制了完美分離數據的超平面,在這種情況下,優化問題將不返回或返回一個糟糕的解決方案。

軟邊界支持向量機(soft margin SVM)通過引入C常數(用戶給定的超參數)來適應優化問題,該常數控制它應該有多“硬”。特別地,它將原優化問題修改為:

它允許每個點產生一些錯誤λ(例如,在超平面的錯誤一側),并且通過將它們在目標函數中的總和加權C來減少它們。當C趨于無窮時(一般情況下肯定不會),它就等于硬邊界。與此同時,較小的C將允許更多的“違規行為”(以換取更大的支持;例如,更小的w (w)。

可以證明,等價對偶問題只有在約束每個點的α≤C時才會發生變化。

由于允許違例,支持向量(帶有α>0的點)不再都在邊界的邊緣。任何錯誤的支持向量都具有α=C,而非支持向量(α=0)不能發生錯誤。我們稱潛在錯誤(α=C)的支持向量為“非錯誤編劇支持向量”和其他純粹的支持向量(沒有違規;“邊界支持向量”(0<α<C)。

這樣推理方程不變:

現在(x?,y?)必須是一個沒有違規的支持向量,因為方程假設它在邊界的邊緣。

軟邊界支持向量機擴展了硬邊界支持向量機來處理噪聲,但通常由于噪聲以外的因素,例如自然非線性,數據不能被超平面分離。軟邊界支持向量機可以用于這樣的情況,但是最優解決方案的超平面,它允許的誤差遠遠超過現實中可以容忍的誤差。

例如,在左邊的例子中,無論C的設置如何,軟邊界支持向量機都找不到線性超平面。但是可以通過某種轉換函數z=Φ(x)將數據集中的每個點x映射到更高的維度,從而使數據在新的高維空間中更加線性(或完全線性)。這相當于用z替換x得到:

在現實中,特別是當Φ轉換為非常高維的空間時,計算z可能需要很長時間。所以就出現了核函數。它用一個數學函數(稱為核函數)的等效計算來取代z,并且更快(例如,對z進行代數簡化)。例如,這里有一些流行的核函數(每個都對應于一些轉換Φ到更高維度空間):

這樣,對偶優化問題就變成:

直觀地,推理方程(經過代數處理后)為:

上面所有方程的完整推導,有很多相關的文章了,我們就不詳細介紹了。

Python實現

對于實現,我們將使用下面這些庫:

import numpy as np                 # for basic operations over arrays
 from scipy.spatial import distance # to compute the Gaussian kernel
 import cvxopt                       # to solve the dual opt. problem
 import copy                         # to copy numpy arrays

定義核和SVM超參數,我們將實現常見的三個核函數:

class SVM:
    linear = lambda x, x? , c=0: x @ x?.T
    polynomial = lambda x, x? , Q=5: (1 + x @ x?.T)**Q
    rbf = lambda x, x?, γ=10: np.exp(-γ*distance.cdist(x, x?,'sqeuclidean'))
    kernel_funs = {'linear': linear, 'polynomial': polynomial, 'rbf': rbf}

為了與其他核保持一致,線性核采用了一個額外的無用的超參數。kernel_funs接受核函數名稱的字符串,并返回相應的內核函數。

繼續定義構造函數:

class SVM:
    linear = lambda x, x? , c=0: x @ x?.T
    polynomial = lambda x, x? , Q=5: (1 + x @ x?.T)**Q
    rbf = lambda x, x?, γ=10: np.exp(-γ*distance.cdist(x, x?,'sqeuclidean'))
    kernel_funs = {'linear': linear, 'polynomial': polynomial, 'rbf': rbf}
     
    def __init__(self, kernel='rbf', C=1, k=2):
        # set the hyperparameters
        self.kernel_str = kernel
        self.kernel = SVM.kernel_funs[kernel]
        self.C = C                 # regularization parameter
        self.k = k                 # kernel parameter
         
        # training data and support vectors (set later)
        self.X, y = None, None
        self.αs = None
         
        # for multi-class classification (set later)
        self.multiclass = False
        self.clfs = []

SVM有三個主要的超參數,核(我們存儲給定的字符串和相應的核函數),正則化參數C和核超參數(傳遞給核函數);它表示多項式核的Q和RBF核的γ。

為了兼容sklearn的形式,我們需要使用fit和predict函數來擴展這個類,定義以下函數,并在稍后將其用作裝飾器:

SVMClass = lambda func: setattr(SVM, func.__name__, func) or func

擬合SVM對應于通過求解對偶優化問題找到每個點的支持向量α:

設α為可變列向量(α?α?…α _n);y為標簽(y?α?…y_N)常數列向量;K為常數矩陣,其中K[n,m]計算核在(x, x)處的值。點積、外積和二次型分別基于索引的等價表達式:

可以將對偶優化問題寫成矩陣形式如下:

這是一個二次規劃,CVXOPT的文檔中解釋如下:

可以只使用(P,q)或(P,q,G,h)或(P,q,G,h, A, b)等等來調用它(任何未給出的都將由默認值設置,例如1)。

對于(P, q, G, h, A, b)的值,我們的例子可以做以下比較:

為了便于比較,將第一個重寫如下:

現在很明顯(0≤α等價于-α≤0):

我們就可以寫出如下的fit函數:

@SVMClass
 def fit(self, X, y, eval_train=False):
    # if more than two unique labels, call the multiclass version
    if len(np.unique(y)) > 2:
        self.multiclass = True
        return self.multi_fit(X, y, eval_train)
     
    # if labels given in {0,1} change it to {-1,1}
    if set(np.unique(y)) == {0, 1}: y[y == 0] = -1
 
    # ensure y is a Nx1 column vector (needed by CVXOPT)
    self.y = y.reshape(-1, 1).astype(np.double) # Has to be a column vector
    self.X = X
    N = X.shape[0] # Number of points
     
    # compute the kernel over all possible pairs of (x, x') in the data
    # by Numpy's vectorization this yields the matrix K
    self.K = self.kernel(X, X, self.k)
     
    ### Set up optimization parameters
    # For 1/2 x^T P x + q^T x
    P = cvxopt.matrix(self.y @ self.y.T * self.K)
    q = cvxopt.matrix(-np.ones((N, 1)))
     
    # For Ax = b
    A = cvxopt.matrix(self.y.T)
    b = cvxopt.matrix(np.zeros(1))
 
    # For Gx <= h
    G = cvxopt.matrix(np.vstack((-np.identity(N),
                                  np.identity(N))))
    h = cvxopt.matrix(np.vstack((np.zeros((N,1)),
                                  np.ones((N,1)) * self.C)))
 
    # Solve    
    cvxopt.solvers.options['show_progress'] = False
    sol = cvxopt.solvers.qp(P, q, G, h, A, b)
    self.αs = np.array(sol["x"])           # our solution
         
    # a Boolean array that flags points which are support vectors
    self.is_sv = ((self.αs-1e-3 > 0)&(self.αs <= self.C)).squeeze()
    # an index of some margin support vector
    self.margin_sv = np.argmax((0 < self.αs-1e-3)&(self.αs < self.C-1e-3))
     
    if eval_train:  
      print(f"Finished training with accuracy{self.evaluate(X, y)}")

我們確保這是一個二進制問題,并且二進制標簽按照支持向量機(±1)的假設設置,并且y是一個維數為(N,1)的列向量。然后求解求解(α?α?…α _n) 的優化問題。

使用(α?α?…α _n) _來獲得在與支持向量對應的任何索引處為1的標志數組,然后可以通過僅對支持向量和(x?,y?)的邊界支持向量的索引求和來應用預測方程。我們確實假設非支持向量可能不完全具有α=0,如果它的α≤1e-3,那么這是近似為零(CVXOPT結果可能不是最終精確的)。同樣假設非邊際支持向量可能不完全具有α=C。

下面就是預測的方法,預測方程為:

@SVMClass
 def predict(self, X_t):
    if self.multiclass: return self.multi_predict(X_t)
    # compute (x?, y?)
    x?, y? = self.X[self.margin_sv, np.newaxis], self.y[self.margin_sv]
    # find support vectors
    αs, y, X= self.αs[self.is_sv], self.y[self.is_sv], self.X[self.is_sv]
    # compute the second term
    b = y? - np.sum(αs * y * self.kernel(X, x?, self.k), axis=0)
    # compute the score
    score = np.sum(αs * y * self.kernel(X, X_t, self.k), axis=0) + b
    return np.sign(score).astype(int), score

我們還可以實現一個評估方法來計算精度(在上面的fit中使用)。

@SVMClass
 def evaluate(self, X,y):  
    outputs, _ = self.predict(X)
    accuracy = np.sum(outputs == y) / len(y)
    return round(accuracy, 2)

最后測試我們的完整代碼:

from sklearn.datasets import make_classification
 import numpy as np
 
 # Load the dataset
 np.random.seed(1)
 X, y = make_classification(n_samples=2500, n_features=5, 
                            n_redundant=0, n_informative=5, 
                            n_classes=2, class_sep=0.3)
 
 # Test Implemented SVM
 svm = SVM(kernel='rbf', k=1)
 svm.fit(X, y, eval_train=True)
 
 y_pred, _ = svm.predict(X)
 print(f"Accuracy: {np.sum(y==y_pred)/y.shape[0]}") #0.9108
 
 # Test with Scikit
 from sklearn.svm import SVC
 clf = SVC(kernel='rbf', C=1, gamma=1)
 clf.fit(X, y)
 y_pred = clf.predict(X)
 print(f"Accuracy: {sum(y==y_pred)/y.shape[0]}")   #0.9108

多分類SVM

我們都知道SVM的目標是二元分類,如果要將模型推廣到多類則需要為每個類訓練一個二元SVM分類器,然后對每個類進行循環,并將屬于它的點重新標記為+1,并將所有其他類的點重新標記為-1。

當給定k個類時,訓練的結果是k個分類器,其中第i個分類器在數據上進行訓練,第i個分類器被標記為+1,所有其他分類器被標記為-1。

@SVMClass
 def multi_fit(self, X, y, eval_train=False):
    self.k = len(np.unique(y))     # number of classes
    # for each pair of classes
    for i in range(self.k):
        # get the data for the pair
        Xs, Ys = X, copy.copy(y)
        # change the labels to -1 and 1
        Ys[Ys!=i], Ys[Ys==i] = -1, +1
        # fit the classifier
        clf = SVM(kernel=self.kernel_str, C=self.C, k=self.k)
        clf.fit(Xs, Ys)
        # save the classifier
        self.clfs.append(clf)
    if eval_train:  
        print(f"Finished training with accuracy {self.evaluate(X, y)}")

然后,為了對新示例執行預測,我們選擇相應分類器最自信(得分最高)的類。

@SVMClass
 def multi_predict(self, X):
    # get the predictions from all classifiers
    N = X.shape[0]
    preds = np.zeros((N, self.k))
    for i, clf in enumerate(self.clfs):
        _, preds[:, i] = clf.predict(X)
     
    # get the argmax and the corresponding score
    return np.argmax(preds, axis=1), np.max(preds, axis=1)

完整測試代碼:

from sklearn.datasets import make_classification
 import numpy as np
 
 # Load the dataset
 np.random.seed(1)
 X, y = make_classification(n_samples=500, n_features=2, 
                            n_redundant=0, n_informative=2, 
                            n_classes=4, n_clusters_per_class=1,  
                            class_sep=0.3)
 
 # Test SVM
 svm = SVM(kernel='rbf', k=4)
 svm.fit(X, y, eval_train=True)
 
 y_pred = svm.predict(X)
 print(f"Accuracy: {np.sum(y==y_pred)/y.shape[0]}") # 0.65
 
 # Test with Scikit
 from sklearn.multiclass import OneVsRestClassifier
 from sklearn.svm import SVC
 
 clf = OneVsRestClassifier(SVC(kernel='rbf', C=1, gamma=4)).fit(X, y)
 y_pred = clf.predict(X)
 print(f"Accuracy: {sum(y==y_pred)/y.shape[0]}")   # 0.65

繪制每個決策區域的圖示,得到以下圖:

可以看到,我們的實現與Sci-kit Learn結果相當,說明在算法實現上沒有問題。注意:SVM默認支持OVR(沒有如上所示的顯式調用),它是特定于SVM的進一步優化。

總結

我們使用Python實現了支持向量機(SVM)學習算法,并且包括了軟邊界和常用的三個核函數。我們還將SVM擴展到多分類的場景,并使用Sci-kit Learn驗證了我們的實現。希望通過本文你可以更好的了解SVM。


責任編輯:華軒 來源: DeepHub IMBA
相關推薦

2017-06-22 09:53:01

機器學習Python樸素貝葉斯

2023-04-18 08:27:16

日志級別日志包

2024-12-26 09:41:00

ML.NET圖像分類開發者

2020-09-24 11:46:03

Promise

2009-06-18 11:12:49

IP通信

2024-08-28 08:09:13

contextmetrics類型

2021-05-07 08:20:52

前端開發技術熱點

2023-01-07 08:09:41

零代碼Dooring組件

2021-06-22 14:47:19

electronDooring架構

2021-05-13 17:02:38

MDC腳手架日志

2024-09-25 08:28:45

2023-01-05 16:51:04

機器學習人工智能

2023-05-24 08:00:00

2025-01-03 09:00:00

代碼C++gTest

2025-05-15 01:00:00

2022-06-05 21:16:08

機器學習Python

2019-04-24 15:06:37

Http服務器協議

2024-08-23 08:57:13

PyTorch視覺轉換器ViT

2020-11-30 09:30:00

數據模型架構

2021-06-30 07:19:36

網絡安全
點贊
收藏

51CTO技術棧公眾號

香蕉久久久久久| 中文日本在线观看| 久久亚洲综合| 久久精品亚洲精品| 亚洲一区二区三区四区av| 免费看男女www网站入口在线 | 欧美精品久久久久久久久久丰满| 日韩精品电影在线观看| 欧美激情亚洲国产| 精品人妻一区二区三区四区| 亚洲精品一区在线| 欧美色精品天天在线观看视频| 国产精品自拍合集| 91吃瓜网在线观看| jiyouzz国产精品久久| 国产一区二区香蕉| 午夜精品久久久久久久久久久久久蜜桃| 一本色道久久综合亚洲精品酒店| 91精品国产91久久久久久最新毛片 | 成人三级视频| 亚洲精品成人久久| 999在线精品视频| 制服诱惑亚洲| 五月婷婷色综合| 老司机午夜网站| 阿v免费在线观看| 99国产精品久久| 97人人干人人| 国产精品丝袜黑色高跟鞋| 首页亚洲欧美制服丝腿| 欧美精品久久久久久久| 91高清免费观看| 日韩激情免费| 国产一区二区三区直播精品电影 | 久久嫩草精品久久久久| 国产精品对白刺激久久久| 国产精品亚洲lv粉色| 视频一区二区三区中文字幕| 韩日精品中文字幕| 久久久久久久黄色| 综合一区二区三区| 久久中文字幕在线视频| 精品少妇一区二区三区密爱| 精品国产一区二区三区小蝌蚪 | 大胸美女被爆操| 婷婷精品视频| 日韩精品在线播放| 亚洲色偷偷色噜噜狠狠99网| 永久免费精品视频| 精品毛片乱码1区2区3区| 青娱乐国产精品视频| 国产95亚洲| 日韩一区和二区| 国产一级片中文字幕| 精品国产不卡一区二区| 51精品秘密在线观看| www.51色.com| 久久国产精品美女| 精品三级av在线| 日韩综合第一页| 欧美激情久久久久久久久久久| 亚洲国内精品视频| 国产精品久久久久久亚洲av| 六月丁香久久丫| 亚洲天堂2020| 国产馆在线观看| 99久久精品网站| 欧美成人免费全部观看天天性色| 麻豆亚洲av成人无码久久精品| 欧美日韩精品一本二本三本| 韩国福利视频一区| 亚洲影院在线播放| 七七婷婷婷婷精品国产| 91九色单男在线观看| 午夜精品久久久久久久99| 成人一区二区视频| 欧美性大战久久久久| jizz在线免费观看| 亚洲免费视频中文字幕| 日韩精品一区二区三区电影| 99riav视频在线观看| 色老汉一区二区三区| 国产又黄又猛的视频| 97青娱国产盛宴精品视频| 亚洲精品二三区| 久久久久久成人网| 韩国在线一区| 国产精品免费小视频| 精品人妻无码一区二区 | av永久免费观看| 午夜日韩激情| 国产97在线观看| a网站在线观看| 岛国av在线一区| 3d动漫精品啪啪一区二区下载 | 黄色一级片免费在线观看| 久热精品在线| 91九色偷拍| 国产亚洲依依| 亚洲永久免费视频| 欧美日韩大尺度| 日本成人精品| 亚洲无av在线中文字幕| 欧美成人手机视频| 强制捆绑调教一区二区| 精品国产综合区久久久久久| 米奇精品一区二区三区| 黑人巨大精品欧美一区二区免费| 怡红院亚洲色图| 网友自拍区视频精品| 久热爱精品视频线路一| 精产国品一区二区| 粉嫩aⅴ一区二区三区四区| 亚洲国产一区在线| 怡红院在线播放| 精品视频999| 性高潮久久久久久久| 黑丝一区二区| 91手机视频在线观看| 黄视频在线播放| 亚洲成人av电影| wwwxxxx在线观看| 色天天综合网| 国产精品wwwwww| 亚洲人成色777777老人头| 亚洲另类色综合网站| 加勒比av中文字幕| 精品一区二区三区的国产在线观看| 午夜精品www| 丰满岳乱妇国产精品一区| 日本一区二区三区dvd视频在线| 成人免费观看cn| 日韩综合一区二区三区| 久久精品一偷一偷国产| 97人妻精品一区二区三区动漫| 国产色91在线| 激情内射人妻1区2区3区| 国产一区二区三区不卡av| 欧美另类在线观看| 性一交一乱一伧老太| 亚洲九九爱视频| 日本55丰满熟妇厨房伦| 久久亚洲在线| 成人网在线视频| 二区三区在线观看| 91精品久久久久久蜜臀| 国语对白在线播放| 国产麻豆精品95视频| 青青草免费在线视频观看| 国产一区2区在线观看| 久久久成人精品视频| 国内毛片毛片毛片毛片| 一区二区视频在线| 污污内射在线观看一区二区少妇| 精品电影一区| 久久久综合香蕉尹人综合网| xxx欧美xxx| 在线成人激情黄色| 91久久久久国产一区二区| 亚洲视频一二区| 2025中文字幕| 国产精品日韩精品欧美精品| 欧美激情论坛| 韩国精品视频在线观看| 久久亚洲影音av资源网 | 佐佐木明希av| swag国产精品一区二区| 97成人在线视频| 日韩精品一线二线三线| 国产精品剧情| 精品国产亚洲在线| 亚洲欧美自拍视频| 国产精品国产三级国产aⅴ原创| 亚洲激情在线看| 伊人久久亚洲美女图片| 久久99国产精品| 成人做爰免费视频免费看| 久久精品91久久久久久再现| 亚洲国产www| 欧美性猛交xxxx富婆弯腰| 一级在线观看视频| 国产成人在线观看免费网站| a在线视频观看| 欧美丰满日韩| 国内不卡一区二区三区| 国产精品videossex撒尿| 日韩中文字幕国产| 亚洲AV无码精品国产| 色婷婷综合久色| 东方av正在进入| 91一区二区三区在线观看| 国内自拍视频一区| 欧美成欧美va| 国产大陆精品国产| 国产综合免费视频| 中文字幕亚洲综合久久五月天色无吗''| 国产精品传媒毛片三区| 免费成人黄色网| 午夜精品一区二区三区在线| se在线电影| 日韩成人网免费视频| 国产又大又黄又爽| 色综合久久精品| 国产真实的和子乱拍在线观看| 国产日韩欧美麻豆| 亚洲av成人片无码| 秋霞成人午夜伦在线观看| 国产精品一线二线三线| 日韩精品一卡| 麻豆91蜜桃| 99热这里只有精品首页| 国产在线观看不卡| 范冰冰一级做a爰片久久毛片| 欧美成人午夜免费视在线看片| 国产小视频免费在线网址| 精品国产第一区二区三区观看体验| 国内av在线播放| 欧美日韩美女在线| 国产亚洲精品久久久久久打不开| 国产欧美一区二区在线观看| 最新版天堂资源在线| 国产一区二区三区精品视频| 日韩欧美在线免费观看视频| 99精品国产一区二区青青牛奶 | 日韩视频在线一区二区三区| 好吊色这里只有精品| 日本a口亚洲| 欧美专区一二三| 亚洲精品一级二级三级| 国产亚洲精品自在久久| 97久久综合精品久久久综合| 91九色蝌蚪成人| 久久丁香四色| 亚洲va欧美va国产综合剧情 | 欧美日韩精品欧美日韩精品一综合| 亚洲欧美在线视频免费| 亚洲第一激情av| 久久久久久久久久91| 亚洲特黄一级片| 小泽玛利亚一区| 亚洲免费av在线| 欧美精品一区二区蜜桃| 亚洲激情图片小说视频| 久久免费少妇高潮99精品| 亚洲男人的天堂网| 极品颜值美女露脸啪啪| 夜夜操天天操亚洲| 久青草免费视频| 五月激情丁香一区二区三区| 国产成人愉拍精品久久| 精品久久久一区二区| 欧美精品一二三四区| 色婷婷av一区| 中文在线最新版天堂| 欧美日韩一卡二卡三卡| 国产精品高潮呻吟AV无码| 制服丝袜亚洲色图| 亚洲精品.www| 日韩电影网在线| 国产综合视频一区二区三区免费| 国产亚洲精品久久| 欧美成人视屏| 欧美黑人xxxx| 华人av在线| 国产精品国产三级国产aⅴ9色 | 久久国产精品久久久久久电车| 久久精品免费一区二区| 日一区二区三区| 久久久久久久久久久久久久久国产| 黄页网站大全一区二区| 亚洲av无码专区在线播放中文| 91在线免费播放| 国产18无套直看片| 亚洲精品国产无天堂网2021| 日本一区二区三区四区五区| 色香蕉成人二区免费| 亚洲一区二区影视| 亚洲精品一区二区三区香蕉| 欧美成人片在线| 久久最新资源网| 中文不卡1区2区3区| 国产美女久久精品香蕉69| 欧一区二区三区| 欧美日韩国产三区| 888久久久| 99re在线视频免费观看| 久久国产欧美日韩精品| 无码任你躁久久久久久老妇| 国产欧美日韩在线看| 欧美成人精品欧美一级私黄| 欧美性xxxxxxx| 国产手机精品视频| 亚洲片在线资源| 黄色大片在线| 国产精品一区电影| 国产精品网址| 自拍偷拍亚洲色图欧美| 国产精品毛片一区二区三区| 免费欧美一级片| 国产欧美日产一区| 日本中文字幕在线免费观看| 欧美日韩另类一区| 亚洲av成人精品一区二区三区在线播放 | 凸凹人妻人人澡人人添| yellow中文字幕久久| 激情都市亚洲| 国产欧美一区二区三区另类精品| 欧美日韩久久精品| 国产在线青青草| 国产成人啪免费观看软件| 国产三级在线观看完整版| 懂色av影视一区二区三区| 国产色视频在线| 国产一区二区三区网站| 久草免费在线视频| 91久久精品国产| 欧美一区二区三区高清视频| 日本午夜激情视频| 国产91丝袜在线播放0| 三级黄色录像视频| 欧美吞精做爰啪啪高潮| 牛牛澡牛牛爽一区二区| 国自在线精品视频| 97青娱国产盛宴精品视频| 中文字幕色呦呦| 国产综合色在线视频区| 国产精品1区2区3区4区| 日本精品视频一区二区| 男生女生差差差的视频在线观看| 97视频人免费观看| 国产毛片久久久| 国产一二三区在线播放| 精品一二三四区| 亚洲色图100p| 欧美日韩在线亚洲一区蜜芽| 国产有码在线| 国产精品久久久久久网站 | 国产人妻互换一区二区| 久久国产精品72免费观看| 亚欧精品视频一区二区三区| 色婷婷综合久久久中文一区二区| 亚洲色大成网站www| 欧美精品久久一区二区| 成人在线视频你懂的| 国产中文字幕乱人伦在线观看| 成人一级黄色片| 久久久综合久久久| 欧美成人在线直播| 四虎av在线| 超碰国产精品久久国产精品99| 欧美日韩国产精品一区二区亚洲| 日本55丰满熟妇厨房伦| 亚洲成人高清在线| 日韩大胆视频| 日韩美女视频中文字幕| 欧美少妇xxxx| 午夜剧场高清版免费观看| 亚洲女同ⅹxx女同tv| 亚洲成人黄色片| 91av福利视频| 神马久久一区二区三区| www.色就是色.com| 亚洲无人区一区| 九色在线视频蝌蚪| 国产在线不卡精品| 欧美午夜在线| 国产美女喷水视频| 日本特黄特色aaa大片免费| 日韩电影中文字幕在线| 99精品国自产在线| 色中文字幕在线观看| 成人av电影在线网| 久久久精品毛片| 久久精品国亚洲| 欧美精品国产白浆久久久久| 人妻无码视频一区二区三区| 中文字幕视频一区二区三区久| 亚洲高清视频网站| 国产精品白嫩初高中害羞小美女 | 国产欧美三级电影| 一本久道综合色婷婷五月| 综合婷婷亚洲小说| 视频一区二区免费| 国产精品网站入口| 激情视频一区二区三区| 亚洲精品国产精品国自| 日韩精品专区在线影院重磅| 亚洲精品mv| 国产内射老熟女aaaa| 久久久久久久综合狠狠综合| 国产高潮流白浆喷水视频| 欧美诱惑福利视频| 天天天综合网| 国产全是老熟女太爽了| 欧美一级日韩不卡播放免费| 成人免费无遮挡| 男人天堂网站在线| 欧美国产精品中文字幕| 黄色a在线观看| 国产日韩中文字幕在线|