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

Python中組合分類和回歸的神經網絡模型

開發 后端 深度學習
在本教程中,您將發現如何開發用于組合回歸和分類預測的神經網絡。

[[406559]]

Python中文社區 (ID:python-china)

 某些預測問題需要為同一輸入預測數字值和類別標簽。一種簡單的方法是在同一數據上開發回歸和分類預測模型,然后依次使用這些模型。另一種通常更有效的方法是開發單個神經網絡模型,該模型可以根據同一輸入預測數字和類別標簽值。這被稱為多輸出模型,使用現代深度學習庫(例如Keras和TensorFlow)可以相對容易地開發和評估。

在本教程中,您將發現如何開發用于組合回歸和分類預測的神經網絡。完成本教程后,您將知道:

  •  一些預測問題需要為每個輸入示例預測數字和類別標簽值。
  •  如何針對需要多個輸出的問題開發單獨的回歸和分類模型。
  •  如何開發和評估能夠同時進行回歸和分類預測的神經網絡模型。

教程概述

本教程分為三個部分:他們是:

  •  回歸和分類的單一模型
  •  單獨的回歸和分類模型

          鮑魚數據集

          回歸模型

          分類模型

  •  組合回歸和分類模型

回歸和分類的單一模型

開發用于回歸或分類問題的深度學習神經網絡模型是很常見的,但是在某些預測建模任務上,我們可能希望開發一個可以進行回歸和分類預測的單一模型。回歸是指涉及預測給定輸入的數值的預測建模問題。分類是指預測建模問題,涉及預測給定輸入的類別標簽或類別標簽的概率。

我們可能要預測數值和分類值時可能會有一些問題。解決此問題的一種方法是為每個所需的預測開發一個單獨的模型。這種方法的問題在于,由單獨的模型做出的預測可能會有所不同。使用神經網絡模型時可以使用的另一種方法是開發單個模型,該模型能夠對相同輸入的數字和類輸出進行單獨的預測。這稱為多輸出神經網絡模型。這種類型的模型的好處在于,我們有一個模型可以開發和維護,而不是兩個模型,并且同時在兩種輸出類型上訓練和更新模型可以在兩種輸出類型之間的預測中提供更大的一致性。我們將開發一個能夠同時進行回歸和分類預測的多輸出神經網絡模型。

首先,讓我們選擇一個滿足此要求的數據集,并從為回歸和分類預測開發單獨的模型開始。

單獨的回歸和分類模型

在本節中,我們將從選擇一個實際數據集開始,在該數據集中我們可能需要同時進行回歸和分類預測,然后針對每種類型的預測開發單獨的模型。

鮑魚數據集

我們將使用“鮑魚”數據集。確定鮑魚的年齡是一項耗時的工作,并且希望僅根據物理細節來確定鮑魚的年齡。這是一個描述鮑魚物理細節的數據集,需要預測鮑魚的環數,這是該生物年齡的代名詞。

“年齡”既可以預測為數值(以年為單位),也可以預測為類別標簽(按年為普通年)。無需下載數據集,因為我們將作為工作示例的一部分自動下載它。數據集提供了一個數據集示例,我們可能需要輸入的數值和分類。

首先,讓我們開發一個示例來下載和匯總數據集。   

  1. # load and summarize the abalone dataset  
  2.    from pandas import read_csv  
  3.    from matplotlib import pyplot  
  4.    # load dataset  
  5.    url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/abalone.csv'  
  6.    dataframe = read_csv(url, header=None 
  7.    # summarize shape  
  8.    print(dataframe.shape)  
  9.    # summarize first few lines  
  10.    print(dataframe.head()) 

首先運行示例,然后下載并匯總數據集的形狀。我們可以看到有4,177個示例(行)可用于訓練和評估模型,還有9個要素(列)包括目標變量。我們可以看到,除了第一個字符串值之外,所有輸入變量都是數字變量。為了簡化數據準備,我們將從模型中刪除第一列,并著重于對數字輸入值進行建模。 

  1. (4177, 9)  
  2.   012345678  
  3.   0  M  0.4550.3650.0950.51400.22450.10100.15015  
  4.   1  M  0.3500.2650.0900.22550.09950.04850.0707  
  5.   2  F  0.5300.4200.1350.67700.25650.14150.2109  
  6.   3  M  0.4400.3650.1250.51600.21550.11400.15510  
  7.   4  I  0.3300.2550.0800.20500.08950.03950.0557 

我們可以將數據用作開發單獨的回歸和分類多層感知器(MLP)神經網絡模型的基礎。

注意:我們并未嘗試為此數據集開發最佳模型;相反,我們正在展示一種特定的技術:開發可以進行回歸和分類預測的模型。

回歸模型

在本節中,我們將為鮑魚數據集開發回歸MLP模型。首先,我們必須將各列分為輸入和輸出元素,并刪除包含字符串值的第一列。我們還將強制所有加載的列都具有浮點類型(由神經網絡模型期望)并記錄輸入特征的數量,稍后模型需要知道這些特征。 

  1. # split into input (X) and output (y) variables  
  2. X, y = dataset[:, 1:-1], dataset[:, -1]  
  3. X, y = X.astype('float'), y.astype('float')  
  4. n_features = X.shape[1] 

接下來,我們可以將數據集拆分為訓練和測試數據集。我們將使用67%的隨機樣本來訓練模型,而剩余的33%則用于評估模型。 

  1. # split data into train and test sets  
  2. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1

然后,我們可以定義一個MLP神經網絡模型。該模型將具有兩個隱藏層,第一個具有20個節點,第二個具有10個節點,都使用ReLU激活和“正常”權重初始化(一種好的做法)。層數和節點數是任意選擇的。輸出層將具有用于預測數值和線性激活函數的單個節點。 

  1. # define the keras model  
  2.  model = Sequential()  
  3.  model.add(Dense(20, input_dim=n_featuresactivation='relu'kernel_initializer='he_normal'))  
  4.  model.add(Dense(10, activation='relu'kernel_initializer='he_normal'))  
  5.  model.add(Dense(1, activation='linear')) 

使用隨機梯度下降的有效Adam版本,將訓練模型以最小化均方誤差(MSE)損失函數。 

  1. # compile the keras model  
  2. model.compile(loss='mse'optimizer='adam'

我們將訓練150個紀元的模型,并以32個樣本的小批量為樣本,再次任意選擇。 

  1. # fit the keras model on the dataset  
  2. model.fit(X_train, y_train, epochs=150batch_size=32verbose=2

最后,在訓練完模型后,我們將在保持測試數據集上對其進行評估,并報告平均絕對誤差(MAE)。 

  1. # evaluate on test set  
  2. yhat = model.predict(X_test)  
  3. error = mean_absolute_error(y_test, yhat) 
  4. print('MAE: %.3f'% error) 

綜上所述,下面列出了以回歸問題為框架的鮑魚數據集的MLP神經網絡的完整示例。 

  1. # regression mlp model for the abalone dataset  
  2. from pandas import read_csv  
  3. from tensorflow.keras.models importSequential  
  4. from tensorflow.keras.layers importDense  
  5. from sklearn.metrics import mean_absolute_error  
  6. from sklearn.model_selection import train_test_split  
  7. # load dataset  
  8. url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/abalone.csv'  
  9. dataframe = read_csv(url, header=None 
  10. dataset = dataframe.values  
  11. # split into input (X) and output (y) variables  
  12. X, y = dataset[:, 1:-1], dataset[:, -1]  
  13. X, y = X.astype('float'), y.astype('float')  
  14. n_features = X.shape[1]  
  15. # split data into train and test sets  
  16. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1 
  17. # define the keras model  
  18. model = Sequential()  
  19. model.add(Dense(20, input_dim=n_featuresactivation='relu'kernel_initializer='he_normal'))  
  20. model.add(Dense(10, activation='relu'kernel_initializer='he_normal'))  
  21. model.add(Dense(1, activation='linear'))  
  22. # compile the keras model 
  23. model.compile(loss='mse'optimizer='adam'
  24. # fit the keras model on the dataset  
  25. model.fit(X_train, y_train, epochs=150batch_size=32verbose=2 
  26. # evaluate on test set  
  27. yhat = model.predict(X_test)  
  28. error = mean_absolute_error(y_test, yhat)  
  29. print('MAE: %.3f'% error) 

運行示例將準備數據集,擬合模型并報告模型誤差的估計值。

注意:由于算法或評估程序的隨機性,或者數值精度的差異,您的結果可能會有所不同。考慮運行該示例幾次并比較平均結果。

在這種情況下,我們可以看到該模型實現了約1.5 的誤差。 

  1. Epoch145/150  
  2.  88/88- 0s- loss: 4.6130  
  3.  Epoch146/150  
  4.  88/88- 0s- loss: 4.6182  
  5.  Epoch147/150  
  6.  88/88- 0s- loss: 4.6277  
  7.  Epoch148/150  
  8.  88/88- 0s- loss: 4.6437  
  9.  Epoch149/150  
  10.  88/88- 0s- loss: 4.6166  
  11.  Epoch150/150 
  12.  88/88- 0s- loss: 4.6132  
  13.  MAE: 1.554 

到目前為止,一切都很好。接下來,讓我們看一下開發類似的分類模型。

分類模型

鮑魚數據集可以歸類為一個分類問題,其中每個“環”整數都被當作一個單獨的類標簽。該示例和模型與上述回歸示例非常相似,但有一些重要的變化。這要求首先為每個“ ring”值分配一個單獨的整數,從0開始,以“ class”總數減1結束。這可以使用LabelEncoder實現。我們還可以將類的總數記錄為唯一編碼的類值的總數,稍后模型會需要。 

  1. # encode strings to integer  
  2. y = LabelEncoder().fit_transform(y)  
  3. n_class = len(unique(y)) 

將數據像以前一樣分為訓練集和測試集后,我們可以定義模型并將模型的輸出數更改為等于類數,并使用對于多類分類通用的softmax激活函數。 

  1. # define the keras model  
  2. model = Sequential()  
  3. model.add(Dense(20, input_dim=n_featuresactivation='relu'kernel_initializer='he_normal'))  
  4. model.add(Dense(10, activation='relu'kernel_initializer='he_normal'))  
  5. model.add(Dense(n_class, activation='softmax')) 

假設我們已將類別標簽編碼為整數值,則可以通過最小化適用于具有整數編碼類別標簽的多類別分類任務的稀疏類別交叉熵損失函數來擬合模型 

  1. # compile the keras model  
  2.   model.compile(loss='sparse_categorical_crossentropy'optimizer='adam'

在像以前一樣將模型擬合到訓練數據集上之后,我們可以通過計算保留測試集上的分類準確性來評估模型的性能。 

  1. # evaluate on test set  
  2. yhat = model.predict(X_test)  
  3. yhat = argmax(yhat, axis=-1).astype('int')  
  4. acc = accuracy_score(y_test, yhat)  
  5. print('Accuracy: %.3f'% acc) 

綜上所述,下面列出了針對鮑魚數據集的MLP神經網絡的完整示例,該示例被歸類為分類問題。 

  1. # classification mlp model for the abalone dataset  
  2.  from numpy import unique  
  3.  from numpy import argmax  
  4.  from pandas import read_csv  
  5.  from tensorflow.keras.models importSequential 
  6.  from tensorflow.keras.layers importDense  
  7.  from sklearn.metrics import accuracy_score  
  8.  from sklearn.model_selection import train_test_split  
  9.  from sklearn.preprocessing importLabelEncoder  
  10.  # load dataset  
  11.  url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/abalone.csv'  
  12.  dataframe = read_csv(url, header=None 
  13.  dataset = dataframe.values  
  14.  # split into input (X) and output (y) variables  
  15.  X, y = dataset[:, 1:-1], dataset[:, -1]  
  16.  X, y = X.astype('float'), y.astype('float')  
  17.  n_features = X.shape[1]  
  18.  # encode strings to integer  
  19.  y = LabelEncoder().fit_transform(y)  
  20.  n_class = len(unique(y))  
  21.  # split data into train and test sets  
  22.  X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=1 
  23.  # define the keras model  
  24.  model = Sequential()  
  25.  model.add(Dense(20, input_dim=n_featuresactivation='relu'kernel_initializer='he_normal'))  
  26.  model.add(Dense(10, activation='relu'kernel_initializer='he_normal'))  
  27.  model.add(Dense(n_class, activation='softmax'))  
  28.  # compile the keras model  
  29.  model.compile(loss='sparse_categorical_crossentropy'optimizer='adam' 
  30.  # fit the keras model on the dataset  
  31.  model.fit(X_train, y_train, epochs=150batch_size=32verbose=2 
  32.  # evaluate on test set  
  33.  yhat = model.predict(X_test)  
  34.  yhat = argmax(yhat, axis=-1).astype('int')  
  35.  acc = accuracy_score(y_test, yhat)  
  36.  print('Accuracy: %.3f'% acc) 

運行示例將準備數據集,擬合模型并報告模型誤差的估計值。

注意:由于算法或評估程序的隨機性,或者數值精度的差異,您的結果可能會有所不同。考慮運行該示例幾次并比較平均結果。

在這種情況下,我們可以看到該模型的準確度約為27%。 

  1. Epoch145/150  
  2.  88/88- 0s- loss: 1.9271  
  3.  Epoch146/150  
  4.  88/88- 0s- loss: 1.9265  
  5.  Epoch147/150  
  6.  88/88- 0s- loss: 1.9265  
  7.  Epoch148/150  
  8.  88/88- 0s- loss: 1.9271 
  9.  Epoch149/150  
  10.  88/88- 0s- loss: 1.9262 
  11.  Epoch150/150  
  12.  88/88- 0s- loss: 1.9260  
  13.  Accuracy: 0.274 

到目前為止,一切都很好。接下來,讓我們看一下開發一種能夠同時進行回歸和分類預測的組合模型。

組合回歸和分類模型

在本節中,我們可以開發一個單一的MLP神經網絡模型,該模型可以對單個輸入進行回歸和分類預測。這稱為多輸出模型,可以使用功能性Keras API進行開發。

首先,必須準備數據集。盡管我們應該使用單獨的名稱保存編碼后的目標變量以將其與原始目標變量值區分開,但是我們可以像以前一樣為分類準備數據集。 

  1. # encode strings to integer  
  2. y_class = LabelEncoder().fit_transform(y)  
  3. n_class = len(unique(y_class)) 

然后,我們可以將輸入,原始輸出和編碼后的輸出變量拆分為訓練集和測試集。 

  1. # split data into train and test sets  
  2. X_train, X_test, y_train, y_test, y_train_class, y_test_class = train_test_split(X, y, y_class, test_size=0.33, random_state=1

接下來,我們可以使用功能性API定義模型。該模型采用與獨立模型相同的輸入數量,并使用以相同方式配置的兩個隱藏層 

  1. # input  
  2.  visible = Input(shape=(n_features,))  
  3.  hidden1 = Dense(20, activation='relu'kernel_initializer='he_normal')(visible)  
  4.  hidden2 = Dense(10, activation='relu'kernel_initializer='he_normal')(hidden1) 

然后,我們可以定義兩個單獨的輸出層,它們連接到模型的第二個隱藏層。

第一個是具有單個節點和線性激活函數的回歸輸出層。 

  1. # regression output  
  2. out_reg = Dense(1, activation='linear')(hidden2) 

第二個是分類輸出層,對于每個要預測的類都有一個節點,并使用softmax激活函數。 

  1. # classification output  
  2. out_clas = Dense(n_class, activation='softmax')(hidden2) 

然后,我們可以使用一個輸入層和兩個輸出層定義模型。 

  1. # define model  
  2. model = Model(inputs=visibleoutputs=[out_reg, out_clas]) 

給定兩個輸出層,我們可以使用兩個損失函數來編譯模型,第一個(回歸)輸出層的均方誤差損失和第二個(分類)輸出層的稀疏分類交叉熵。 

  1. # compile the keras model  
  2. model.compile(loss=['mse','sparse_categorical_crossentropy'], optimizer='adam'

我們還可以創建模型圖以供參考。這需要安裝pydot和pygraphviz。如果存在問題,則可以注釋掉該行以及 plot_model()函數的import語句。 

  1. # plot graph of model  
  2. plot_model(model, to_file='model.png'show_shapes=True

每次模型進行預測時,它將預測兩個值。同樣,訓練模型時,每個輸出每個樣本將需要一個目標變量。這樣,我們可以訓練模型,并仔細地向模型的每個輸出提供回歸目標和分類目標數據。 

  1. # plot graph of model  
  2. plot_model(model, to_file='model.png'show_shapes=True

然后,擬合模型可以對保留測試集中的每個示例進行回歸和分類預測。 

  1. # make predictions on test set  
  2. yhat1, yhat2 = model.predict(X_test) 

第一個數組可用于通過平均絕對誤差評估回歸預測。 

  1. # calculate error for regression model  
  2. error = mean_absolute_error(y_test, yhat1) 
  3.  print('MAE: %.3f'% error) 

第二個數組可用于通過分類準確性評估分類預測。 

  1. # evaluate accuracy for classification model  
  2. yhat2 = argmax(yhat2, axis=-1).astype('int')  
  3. acc = accuracy_score(y_test_class, yhat2) 
  4.  print('Accuracy: %.3f'% acc) 

就是這樣。結合在一起,下面列出了訓練和評估用于鮑魚數據集上的組合器回歸和分類預測的多輸出模型的完整示例。 

  1. # mlp for combined regression and classification predictions on the abalone dataset  
  2.   from numpy import unique  
  3.   from numpy import argmax  
  4.   from pandas import read_csv  
  5.   from sklearn.metrics import mean_absolute_error  
  6.   from sklearn.metrics import accuracy_score  
  7.   from sklearn.model_selection import train_test_split  
  8.   from sklearn.preprocessing importLabelEncoder  
  9.   from tensorflow.keras.models importModel  
  10.   from tensorflow.keras.layers importInput  
  11.   from tensorflow.keras.layers importDense  
  12.   from tensorflow.keras.utils import plot_model  
  13.   # load dataset 
  14.    url = 'https://raw.githubusercontent.com/jbrownlee/Datasets/master/abalone.csv'  
  15.   dataframe = read_csv(url, header=None 
  16.   dataset = dataframe.values  
  17.   # split into input (X) and output (y) variables  
  18.   X, y = dataset[:, 1:-1], dataset[:, -1]  
  19.   X, y = X.astype('float'), y.astype('float')  
  20.   n_features = X.shape[1]  
  21.   # encode strings to integer  
  22.   y_class = LabelEncoder().fit_transform(y)  
  23.   n_class = len(unique(y_class))  
  24.   # split data into train and test sets  
  25.   X_train, X_test, y_train, y_test, y_train_class, y_test_class = train_test_split(X, y, y_class, test_size=0.33, random_state=1
  26.    # input  
  27.   visible = Input(shape=(n_features,))  
  28.   hidden1 = Dense(20, activation='relu'kernel_initializer='he_normal')(visible)  
  29.   hidden2 = Dense(10, activation='relu'kernel_initializer='he_normal')(hidden1)  
  30.   # regression output  
  31.   out_reg = Dense(1, activation='linear')(hidden2)  
  32.   # classification output  
  33.   out_clas = Dense(n_class, activation='softmax')(hidden2)  
  34.   # define model  
  35.   model = Model(inputs=visibleoutputs=[out_reg, out_clas])  
  36.   # compile the keras model  
  37.   model.compile(loss=['mse','sparse_categorical_crossentropy'], optimizer='adam' 
  38.   # plot graph of model  
  39.   plot_model(model, to_file='model.png'show_shapes=True 
  40.   # fit the keras model on the dataset  
  41.   model.fit(X_train, [y_train,y_train_class], epochs=150batch_size=32verbose=2 
  42.   # make predictions on test set  
  43.   yhat1, yhat2 = model.predict(X_test)  
  44.   # calculate error for regression model  
  45.   error = mean_absolute_error(y_test, yhat1)  
  46.   print('MAE: %.3f'% error)  
  47.   # evaluate accuracy for classification model  
  48.   yhat2 = argmax(yhat2, axis=-1).astype('int')  
  49.   acc = accuracy_score(y_test_class, yhat2)  
  50.   print('Accuracy: %.3f'% acc) 

運行示例將準備數據集,擬合模型并報告模型誤差的估計值。

注意:由于算法或評估程序的隨機性,或者數值精度的差異,您的結果可能會有所不同。考慮運行該示例幾次并比較平均結果。

創建了多輸出模型圖,清楚地顯示了連接到模型第二個隱藏層的回歸(左)和分類(右)輸出層。

在這種情況下,我們可以看到該模型既實現了約1.495 的合理誤差,又實現了與之前相似的約25.6%的精度。   

  1. Epoch145/150  
  2.    88/88- 0s- loss: 6.5707- dense_2_loss: 4.5396- dense_3_loss: 2.0311  
  3.    Epoch146/150  
  4.    88/88- 0s- loss: 6.5753- dense_2_loss: 4.5466- dense_3_loss: 2.0287  
  5.    Epoch147/150 
  6.    88/88- 0s- loss: 6.5970- dense_2_loss: 4.5723- dense_3_loss: 2.0247  
  7.    Epoch148/150  
  8.    88/88- 0s- loss: 6.5640- dense_2_loss: 4.5389- dense_3_loss: 2.0251  
  9.    Epoch149/150  
  10.    88/88- 0s- loss: 6.6053- dense_2_loss: 4.5827- dense_3_loss: 2.0226  
  11.    Epoch150/150  
  12.    88/88- 0s- loss: 6.5754- dense_2_loss: 4.5524- dense_3_loss: 2.0230  
  13.    MAE: 1.495  
  14.    Accuracy: 0.256  
責任編輯:龐桂玉 來源: Python中文社區
相關推薦

2024-01-01 15:37:59

機器學習神經網絡

2024-07-10 11:09:35

2022-06-16 10:29:33

神經網絡圖像分類算法

2017-08-04 14:23:04

機器學習神經網絡TensorFlow

2019-01-05 08:40:17

VGG神經網絡

2023-06-18 23:00:39

神經網絡損失函數隨機變量

2017-08-25 14:23:44

TensorFlow神經網絡文本分類

2025-02-19 15:12:17

神經網絡PyTorch大模型

2023-11-14 16:29:14

深度學習

2019-05-07 19:12:28

機器學習神經網絡Python

2018-07-03 16:10:04

神經網絡生物神經網絡人工神經網絡

2018-02-27 09:32:13

神經網絡自然語言初探

2023-02-28 08:00:00

深度學習神經網絡人工智能

2018-02-02 17:08:48

機器學習算法決策樹

2020-04-20 13:45:32

神經網絡模型代碼

2018-02-05 08:58:36

Python神經網絡識別圖像

2023-09-17 23:09:24

Transforme深度學習

2025-02-24 08:00:00

機器學習ML架構

2017-08-28 21:31:37

TensorFlow深度學習神經網絡

2025-03-31 08:50:00

模型量化神經網絡AI
點贊
收藏

51CTO技術棧公眾號

成人黄视频免费| 久久精品成人欧美大片古装| 蜜桃传媒一区二区三区| 户外极限露出调教在线视频| 秋霞电影网一区二区| 综合网中文字幕| 男人操女人下面视频| 色综合亚洲图丝熟| 亚洲欧洲日产国产综合网| 91丨九色丨国产| 亚洲综合图片网| 一区二区三区午夜视频| 精品一区二区亚洲| 亚洲视频在线不卡| 偷拍中文亚洲欧美动漫| 亚洲精品精品亚洲| 日韩中文字幕一区二区| 好男人在线视频www| 日本中文字幕一区二区有限公司| 欧美高清视频一区二区| 免费看裸体网站| 精品国产一区二区三区性色av | 精品视频一区二区| 国产一区二区三区黄片| 亚洲综合丁香| 久久99久国产精品黄毛片入口| 美国黄色一级毛片| 91精品国产乱码久久久竹菊| 在线不卡的av| 大香煮伊手机一区| 丝袜诱惑一区二区| 亚洲一区二区三区自拍| 在线国产伦理一区| 精品久久av| 91丨国产丨九色丨pron| 91情侣在线视频| 一区二区三区精| 老司机精品久久| 性欧美激情精品| 久操免费在线视频| 国产高清久久| 自拍偷拍亚洲精品| 少妇一级黄色片| 欧美日韩123| 亚洲精品久久久久国产| 免费不卡的av| 亚洲91网站| 日韩午夜在线播放| 亚洲一区二区三区三州| 久久久久久久久久久久电影| 欧美日本在线视频| 视频在线观看免费高清| 成人在线网站| 欧美在线免费观看视频| 国产精品无码一本二本三本色| 欧美片第一页| 在线观看国产一区二区| 免费看污污网站| 91综合国产| 欧美人与z0zoxxxx视频| 精品久久久99| 国产一区二区av在线| 欧美一区二区三区视频免费| 1314成人网| 国产成人一二| 日韩国产高清视频在线| 国产精品三级在线观看无码| 美女亚洲一区| 三级精品视频久久久久| 日韩三级久久久| 在线精品国产| 久久久女人电视剧免费播放下载| 日本一区二区欧美| 国产色综合网| 国产精品免费视频久久久| 97人妻精品一区二区三区| 国产麻豆午夜三级精品| 北条麻妃高清一区| 日本黄色大片视频| 久久久久综合网| 亚洲午夜久久久影院伊人| 久久久久久久久免费视频| 亚洲免费在线电影| 草草视频在线免费观看| 女生影院久久| 91.com视频| 欧美成人三级伦在线观看| 杨幂一区二区三区免费看视频| 一区二区三欧美| 妺妺窝人体色www婷婷| 国产日韩1区| 国产精品日韩久久久久| 亚洲国产日韩在线观看| 久久精品亚洲精品国产欧美kt∨ | www.17c.com喷水少妇| 杨幂一区二区三区免费看视频| 日韩视频精品在线| 男人的天堂一区| 久久av中文字幕片| 久草精品电影| 中文字幕伦理免费在线视频 | 日韩aaaaa| 日韩国产专区| 91大神在线播放精品| 亚洲综合精品在线| 99精品国产热久久91蜜凸| 亚洲视频在线二区| 亚洲性色av| 日韩视频在线永久播放| 精品亚洲aⅴ无码一区二区三区| 欧美视频不卡| 国产日韩欧美中文| 欧美美女搞黄| 亚洲福利一区二区三区| 亚洲精品性视频| 神马久久一区二区三区| 欧美激情第1页| 国产又黄又大又爽| 欧美韩国一区二区| 黑人糟蹋人妻hd中文字幕| 日韩最新av| www.欧美精品| 五月婷婷视频在线| 成人综合婷婷国产精品久久| 一区二区欧美日韩| 日韩av超清在线观看| 亚洲国产成人91精品| 18岁成人毛片| 精品亚洲国内自在自线福利| 奇米精品在线| 原纱央莉成人av片| 亚洲精品黄网在线观看| 久久一二三四区| 国产乱码精品一区二区三区av| 日韩中文一区| 美女写真久久影院| 亚洲欧美一区二区激情| 91精品国产乱码久久久张津瑜| 福利电影一区二区三区| 狠狠干视频网站| 在线观看欧美| 操人视频在线观看欧美| 97国产精品久久久| 中文字幕一区二区5566日韩| 狠狠躁狠狠躁视频专区| 波多野结衣在线观看一区二区| 日韩免费观看在线观看| 欧美色图另类| 色偷偷久久人人79超碰人人澡| 中出视频在线观看| 亚洲欧美日韩一区在线观看| 久久精品国产第一区二区三区最新章节 | av基地在线| 精品视频资源站| 国产又粗又猛又爽又黄的视频小说| 日本中文字幕一区二区视频| 日韩精品久久一区二区三区| 欧美在线va视频| 中文字幕亚洲图片| 97超碰资源站| 亚洲一区二区三区视频在线播放| 国产免费a级片| 99国内精品| 日韩色妇久久av| 懂色aⅴ精品一区二区三区| 日韩在线播放一区| 午夜精品久久久久久久99热黄桃 | 久久久久久久香蕉| 成人资源在线| 热草久综合在线| 日本中文字幕在线看| 日韩欧美国产不卡| 午夜精品久久久久久久久久久久久蜜桃| 91麻豆精东视频| 欧美日韩中文不卡| 国内精品嫩模av私拍在线观看| 亚洲一区久久久| sm在线播放| 最新69国产成人精品视频免费| jizz国产视频| 欧美日韩一区二区免费在线观看| 亚欧洲乱码视频| 久久成人久久鬼色| 婷婷无套内射影院| 人人狠狠综合久久亚洲婷婷| 91在线视频免费| 麻豆网站免费在线观看| 中文字幕在线看视频国产欧美| 国内精品久久久久久久久久 | 国产免费黄色网址| 欧美日韩在线影院| 国产三级国产精品国产国在线观看| 成人免费毛片高清视频| 国产嫩草在线观看| 亚洲国产网站| 亚洲日本一区二区三区在线不卡| 凹凸成人在线| 国产日韩欧美成人| 麻豆成全视频免费观看在线看| 中文字幕日韩精品在线观看| 丁香花免费高清完整在线播放| 在线一区二区三区四区五区| 久久久一二三区| 国产精品久久久久久久裸模| 91丨porny丨对白| 日本美女一区二区三区| 国产二级片在线观看| 91精品久久久久久久蜜月| 欧美18视频| 99久久免费精品国产72精品九九| 国产精品一区二区久久久久| 国产精品xx| 欧美成人在线网站| 午夜免费播放观看在线视频| 亚洲精品一区二三区不卡| av官网在线观看| 欧美日韩国产在线观看| 亚洲另类在线观看| 亚洲成av人在线观看| 中文字幕在线观看成人| 国产精品久久影院| 日韩毛片无码永久免费看| 91丨porny丨中文| 性色av蜜臀av浪潮av老女人| 国产成人综合在线观看| 免费黄频在线观看| 久草热8精品视频在线观看| 男人女人黄一级| 视频一区二区国产| 九一国产精品视频| 伊人久久综合| www.xxx麻豆| 国产精品v欧美精品v日本精品动漫| 在线视频不卡一区二区| 色综合久久网| 一区二区三区四区视频在线观看| 欧美日韩黑人| 亚洲v国产v| 色综合蜜月久久综合网| 亚洲精品永久www嫩草| 欧美日韩国产一区二区三区不卡| 色综合久久久久久久久五月| 国产精品羞羞答答在线观看| 欧美日韩国产精品一区二区| 亚洲va久久| 国产精品jizz视频| 中文字幕久久精品一区二区| www.成人av| 永久免费精品视频| 国产一区二区三区无遮挡 | 明星裸体视频一区二区| 美女久久99| 亚洲视频电影| 欧美 日韩 国产 一区| 老司机午夜网站| 国产精品扒开腿做爽爽爽软件| 农民人伦一区二区三区| 亚洲国产欧美国产综合一区| 久久久久久人妻一区二区三区| 99视频+国产日韩欧美| 97视频在线免费播放| 久久久噜噜噜| 在线观看国产中文字幕| 国产乱一区二区| www.啪啪.com| 国产午夜亚洲精品不卡| 四虎永久免费地址| 亚洲午夜激情网页| 欧美超碰在线观看| 3d动漫精品啪啪| 手机看片一区二区三区| 亚洲欧美日韩视频一区| 在线观看二区| 欧美精品18videos性欧| 成人欧美magnet| 91精品久久久久久久| 91精品国产自产在线丝袜啪| 久久国产精品久久精品国产| 成人黄色小视频| 看一级黄色录像| 国产精品嫩草99av在线| 伊人影院综合在线| 成人国产精品视频| 偷拍夫妻性生活| 亚洲激情在线激情| 日韩黄色片网站| 精品日韩欧美在线| 国产在线观看免费| 欧美激情亚洲视频| 日韩欧美一区二区三区免费观看| 91超碰在线电影| 免费成人高清在线视频theav| 只有这里有精品| 久久久综合网| 亚洲av无码成人精品区| 国产亚洲成aⅴ人片在线观看 | 一本色道综合久久欧美日韩精品 | 欧美成人三级| 久久免费看av| 女生裸体视频一区二区三区| 男女无套免费视频网站动漫| 成人午夜视频免费看| 欧美日韩中文字幕视频| 激情久久av一区av二区av三区| 97人妻精品一区二区三区软件| 精品视频在线播放| 五月婷婷视频在线观看| 国产精品久久色| 偷拍亚洲色图| www.日本少妇| 国产一区二区三区免费看 | av噜噜在线观看| 久久欧美一区二区| 久久影院一区二区| 制服丝袜亚洲精品中文字幕| 韩国三级在线观看久| 午夜精品久久久久久久白皮肤 | 成人精品一区二区三区电影| 成人欧美一区二区| 午夜精品视频一区二区三区在线看| 激情五月开心婷婷| www.激情成人| 国产一级大片在线观看| 欧美群妇大交群中文字幕| 毛片免费在线| 国产成人av在线播放| 老司机凹凸av亚洲导航| 精品成在人线av无码免费看| 狠狠色丁香婷综合久久| 天堂网中文在线观看| 91久久精品日日躁夜夜躁欧美| 色wwwwww| 97av在线视频| 日韩欧美美女在线观看| 僵尸世界大战2 在线播放| 粉嫩高潮美女一区二区三区 | 国产三级av在线播放| 日韩欧美精品在线观看| 丝袜视频国产在线播放| 高清欧美性猛交xxxx| 加勒比久久高清| 三上悠亚久久精品| 26uuu成人网一区二区三区| 成人免费a视频| 亚洲欧美日韩综合| 成人日韩在线观看| 视频一区不卡| 麻豆精品一二三| 99re6热在线精品视频| 91.成人天堂一区| 亚洲电影视频在线| 国产乱码精品一区二区三区日韩精品 | 亚洲久本草在线中文字幕| 国产普通话bbwbbwbbw| 欧美乱妇高清无乱码| 成人另类视频| 熟女性饥渴一区二区三区| 2021中文字幕一区亚洲| 国产免费一级视频| 色七七影院综合| 青草伊人久久| www.av中文字幕| 久久精品亚洲国产奇米99| 色老头在线视频| 久久精品中文字幕一区| 亚洲一区二区免费在线观看| 老太脱裤子让老头玩xxxxx| 国产天堂亚洲国产碰碰| 一区二区三区播放| 久久久久亚洲精品国产| 精品一区三区| 亚洲男人天堂2021| 偷拍日韩校园综合在线| 福利片在线观看| 91精品久久香蕉国产线看观看| 亚洲精品专区| 69xxx免费| 精品对白一区国产伦| 国产精品专区免费| 五月天综合婷婷| 91蜜桃网址入口| 国产精品国产三级国产aⅴ| 国语自产偷拍精品视频偷 | av网站大全免费| 国产欧美日产一区| www.国产三级| 国产精品免费网站| 亚洲精选成人| 国产午夜手机精彩视频| 亚洲欧美国产精品久久久久久久| 亚洲男人在线| 红桃av在线播放| 一区二区三区在线影院| 黄色国产在线| 国产精品嫩草在线观看| 麻豆精品久久久| 久久精品一二区| 久久成人精品一区二区三区| 香蕉久久99| 亚洲成年人在线观看|