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

用XGBoost進行時間序列預測

開發 后端
在本教程中,您將發現如何開發XGBoost模型進行時間序列預測。一起來看看吧。

 [[391546]]

XGBoost是梯度分類和回歸問題的有效實現。

它既快速又高效,即使在各種預測建模任務上也表現出色,即使不是最好的,也能在數據科學競賽的獲勝者(例如Kaggle的獲獎者)中廣受青睞。

XGBoost也可以用于時間序列預測,盡管它要求將時間序列數據集首先轉換為有監督的學習問題。它還需要使用一種專門的技術來評估模型,稱為前向驗證,因為使用k倍交叉驗證對模型進行評估會導致樂觀的結果。

在本教程中,您將發現如何開發XGBoost模型進行時間序列預測。完成本教程后,您將知道:

1、XGBoost是用于分類和回歸的梯度提升集成算法的實現。 

2、可以使用滑動窗口表示將時間序列數據集轉換為監督學習。

3、如何使用XGBoost模型擬合,評估和進行預測,以進行時間序列預測。

教程概述

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

1、XGBoost集成 

2、時間序列數據準備 

3、XGBoost用于時間序列預測

XGBoost集成

XGBoost是Extreme Gradient Boosting的縮寫,是隨機梯度提升機器學習算法的有效實現。隨機梯度增強算法(也稱為梯度增強機或樹增強)是一種功能強大的機器學習技術,可在各種具有挑戰性的機器學習問題上表現出色,甚至表現最佳。

它是決策樹算法的集合,其中新樹修復了那些已經屬于模型的樹的錯誤。將添加樹,直到無法對模型進行進一步的改進為止。XGBoost提供了隨機梯度提升算法的高效實現,并提供了一組模型超參數,這些參數旨在提供對模型訓練過程的控制。

XGBoost設計用于表格數據集的分類和回歸,盡管它可以用于時間序列預測。

首先,必須安裝XGBoost庫。您可以使用pip進行安裝,如下所示: 

  1. sudo pip install xgboost 

一旦安裝,您可以通過運行以下代碼來確認它已成功安裝,并且您正在使用現代版本: 

  1. # xgboost  
  2. import xgboost  
  3. print("xgboost", xgboost.__version__) 

運行代碼,您應該看到以下版本號或更高版本。 

  1. xgboost 1.0.1 

盡管XGBoost庫具有自己的Python API,但我們可以通過XGBRegressor包裝器類將XGBoost模型與scikit-learn API結合使用。

可以實例化模型的實例,就像將其用于模型評估的任何其他scikit-learn類一樣使用。例如: 

  1. # define model  
  2. model = XGBRegressor() 

現在我們已經熟悉了XGBoost,下面讓我們看一下如何為監督學習準備時間序列數據集。

時間序列數據準備

時間序列數據可以表述為監督學習。給定時間序列數據集的數字序列,我們可以將數據重組為看起來像監督學習的問題。我們可以通過使用以前的時間步長作為輸入變量,并使用下一個時間步長作為輸出變量來做到這一點。讓我們通過一個例子來具體說明。假設我們有一個時間序列,如下所示: 

  1. time, measure  
  2. 1, 100  
  3. 2, 110  
  4. 3, 108  
  5. 4, 115  
  6. 5, 120 

通過使用上一個時間步的值來預測下一個時間步的值,我們可以將此時間序列數據集重組為監督學習問題。通過這種方式重組時間序列數據集,數據將如下所示: 

  1. X, y  
  2. ?, 100  
  3. 100, 110  
  4. 110, 108  
  5. 108, 115  
  6. 115, 120  
  7. 120, ? 

請注意,時間列已刪除,某些數據行不可用于訓練模型,例如第一和最后一個。

這種表示稱為滑動窗口,因為輸入和預期輸出的窗口會隨著時間向前移動,從而為監督學習模型創建新的“樣本”。

有關準備時間序列預測數據的滑動窗口方法的更多信息。

在給定所需的輸入和輸出序列長度的情況下,我們可以在Pandas中使用shift()函數自動創建時間序列問題的新框架。

這將是一個有用的工具,因為它將允許我們使用機器學習算法探索時間序列問題的不同框架,以查看可能導致性能更好的模型。

下面的函數將一個時間序列作為具有一個或多個列的NumPy數組時間序列,并將其轉換為具有指定數量的輸入和輸出的監督學習問題。 

  1. # transform a time series dataset into a supervised learning dataset  
  2. def series_to_supervised(data, n_in=1n_out=1dropnan=True):  
  3.  n_vars = 1 if type(data) is list else data.shape[1]  
  4.  df = DataFrame(data)  
  5.  cols = list()  
  6.  # input sequence (t-n, ... t-1)  
  7.  for i in range(n_in, 0, -1):  
  8.   cols.append(df.shift(i))  
  9.  # forecast sequence (t, t+1, ... t+n)  
  10.  for i in range(0, n_out):  
  11.   cols.append(df.shift(-i))  
  12.  # put it all together  
  13.  agg = concat(cols, axis=1 
  14.  # drop rows with NaN values  
  15.  if dropnan:  
  16.   agg.dropna(inplace=True 
  17.  return agg.values 

我們可以使用此函數為XGBoost準備時間序列數據集。

準備好數據集后,我們必須小心如何使用它來擬合和評估模型。

例如,將模型擬合未來的數據并預測過去是無效的。該模型必須在過去進行訓練并預測未來。這意味著不能使用在評估過程中將數據集隨機化的方法,例如k折交叉驗證。相反,我們必須使用一種稱為前向驗證的技術。在前向驗證中,首先通過選擇一個切點(例如除過去12個月外,所有數據均用于培訓,最近12個月用于測試。

如果我們有興趣進行單步預測,例如一個月后,我們可以通過對訓練數據集進行訓練并預測測試數據集的第一步來評估模型。然后,我們可以將來自測試集的真實觀測值添加到訓練數據集中,重新擬合模型,然后讓模型預測測試數據集中的第二步。對整個測試數據集重復此過程將為整個測試數據集提供一步式預測,可以從中計算出誤差度量以評估模型的技能。

下面的函數執行前向驗證。它使用時間序列數據集的整個監督學習版本以及用作測試集的行數作為參數。然后,它逐步通過測試集,調用xgboost_forecast()函數進行單步預測。計算錯誤度量,并將詳細信息返回以進行分析。 

  1. # walk-forward validation for univariate data  
  2. def walk_forward_validation(data, n_test):  
  3.  predictions = list()  
  4.  # split dataset  
  5.  train, test = train_test_split(data, n_test)  
  6.  # seed history with training dataset  
  7.  history = [x for x in train]  
  8.  # step over each time-step in the test set  
  9.  for i in range(len(test)):  
  10.   # split test row into input and output columns  
  11.   testX, testtesty = test[i, :-1], test[i, -1]  
  12.   # fit model on history and make a prediction  
  13.   yhat = xgboost_forecast(history, testX)  
  14.   # store forecast in list of predictions  
  15.   predictions.append(yhat)  
  16.   # add actual observation to history for the next loop  
  17.   history.append(test[i])  
  18.   # summarize progress  
  19.   print('>expected=%.1f, predicted=%.1f' % (testy, yhat))  
  20.  # estimate prediction error  
  21.  error = mean_absolute_error(test[:, -1], predictions)  
  22.  return error, test[:, 1], predictions 

調用train_test_split()函數可將數據集拆分為訓練集和測試集。我們可以在下面定義此功能。 

  1. # split a univariate dataset into train/test sets  
  2. def train_test_split(data, n_test): 
  3.  return data[:-n_test, :], data[-n_test:, :] 

我們可以使用XGBRegressor類進行單步預測。下面的xgboost_forecast()函數通過將訓練數據集和測試輸入行作為輸入,擬合模型并進行單步預測來實現此目的。 

  1. # fit an xgboost model and make a one step prediction  
  2. def xgboost_forecast(train, testX):  
  3.  # transform list into array  
  4.  train = asarray(train)  
  5.  # split into input and output columns  
  6.  trainX, traintrainy = train[:, :-1], train[:, -1]  
  7.  # fit model  
  8.  model = XGBRegressor(objective='reg:squarederror'n_estimators=1000 
  9.  model.fit(trainX, trainy)  
  10.  # make a one-step prediction  
  11.  yhat = model.predict([testX])  
  12.  return yhat[0] 

現在,我們知道了如何準備時間序列數據以進行預測和評估XGBoost模型,接下來我們可以看看在實際數據集上使用XGBoost的情況。

XGBoost用于時間序列預測

在本節中,我們將探索如何使用XGBoost進行時間序列預測。我們將使用標準的單變量時間序列數據集,以使用該模型進行單步預測。您可以將本節中的代碼用作您自己項目的起點,并輕松地對其進行調整以適應多變量輸入,多變量預測和多步預測。我們將使用每日女性出生數據集,即三年中的每月出生數。

您可以從此處下載數據集,并將其放在文件名“ daily-total-female-births.csv”的當前工作目錄中。

數據集(每天女性出生總數.csv): 

  1. https://raw.githubusercontent.com/jbrownlee/Datasets/master/daily-total-female-births.csv 

說明(每日女性出生總數): 

  1. https://raw.githubusercontent.com/jbrownlee/Datasets/master/daily-total-female-births.names 

數據集的前幾行如下所示: 

  1. "Date","Births"  
  2. "1959-01-01",35  
  3. "1959-01-02",32  
  4. "1959-01-03",30  
  5. "1959-01-04",31  
  6. "1959-01-05",44  
  7. ... 

首先,讓我們加載并繪制數據集。下面列出了完整的示例。 

  1. # load and plot the time series dataset  
  2. from pandas import read_csv  
  3. from matplotlib import pyplot  
  4. # load dataset  
  5. series = read_csv('daily-total-female-births.csv', header=0index_col=0 
  6. values = series.values  
  7. # plot dataset  
  8. pyplot.plot(values) 
  9. pyplot.show() 

運行示例將創建數據集的折線圖。我們可以看到沒有明顯的趨勢或季節性。

當預測最近的12個月時,持久性模型可以實現約6.7例出生的MAE。這提供了性能基準,在該基準之上可以認為模型是熟練的。

接下來,當對過去12個月的數據進行單步預測時,我們可以評估數據集上的XGBoost模型。

我們將僅使用前6個時間步長作為模型和默認模型超參數的輸入,除了我們將損失更改為'reg:squarederror'(以避免警告消息),并在集合中使用1,000棵樹(以避免學習不足) )。

下面列出了完整的示例。 

  1. # forecast monthly births with xgboost  
  2. from numpy import asarray  
  3. from pandas import read_csv 
  4. from pandas import DataFrame 
  5. from pandas import concat  
  6. from sklearn.metrics import mean_absolute_error  
  7. from xgboost import XGBRegressor  
  8. from matplotlib import pyplot   
  9. # transform a time series dataset into a supervised learning dataset  
  10. def series_to_supervised(data, n_in=1n_out=1dropnan=True):  
  11.  n_vars = 1 if type(data) is list else data.shape[1]  
  12.  df = DataFrame(data)  
  13.  cols = list()  
  14.  # input sequence (t-n, ... t-1)  
  15.  for i in range(n_in, 0, -1):  
  16.   cols.append(df.shift(i))  
  17.  # forecast sequence (t, t+1, ... t+n)  
  18.  for i in range(0, n_out):  
  19.   cols.append(df.shift(-i))  
  20.  # put it all together  
  21.  agg = concat(cols, axis=1 
  22.  # drop rows with NaN values  
  23.  if dropnan:  
  24.   agg.dropna(inplace=True 
  25.  return agg.values   
  26. # split a univariate dataset into train/test sets  
  27. def train_test_split(data, n_test):  
  28.  return data[:-n_test, :], data[-n_test:, :] 
  29. # fit an xgboost model and make a one step prediction  
  30. def xgboost_forecast(train, testX):  
  31.  # transform list into array  
  32.  train = asarray(train)  
  33.  # split into input and output columns  
  34.  trainX, traintrainy = train[:, :-1], train[:, -1]  
  35.  # fit model  
  36.  model = XGBRegressor(objective='reg:squarederror'n_estimators=1000 
  37.  model.fit(trainX, trainy)  
  38.  # make a one-step prediction  
  39.  yhat = model.predict(asarray([testX]))  
  40.  return yhat[0]  
  41. # walk-forward validation for univariate data  
  42. def walk_forward_validation(data, n_test):  
  43.  predictions = list()  
  44.  # split dataset  
  45.  train, test = train_test_split(data, n_test)  
  46.  # seed history with training dataset  
  47.  history = [x for x in train]  
  48.  # step over each time-step in the test set  
  49.  for i in range(len(test)):  
  50.   # split test row into input and output columns  
  51.   testX, testtesty = test[i, :-1], test[i, -1]  
  52.   # fit model on history and make a prediction  
  53.   yhat = xgboost_forecast(history, testX)  
  54.   # store forecast in list of predictions  
  55.   predictions.append(yhat)  
  56.   # add actual observation to history for the next loop  
  57.   history.append(test[i])  
  58.   # summarize progress  
  59.   print('>expected=%.1f, predicted=%.1f' % (testy, yhat))  
  60.  # estimate prediction error  
  61.  error = mean_absolute_error(test[:, -1], predictions)  
  62.  return error, test[:, -1], predictions  
  63. # load the dataset  
  64. series = read_csv('daily-total-female-births.csv', header=0index_col=0 
  65. values = series.values  
  66. # transform the time series data into supervised learning  
  67. data = series_to_supervised(values, n_in=6 
  68. # evaluate  
  69. mae, y, yhat = walk_forward_validation(data, 12)  
  70. print('MAE: %.3f' % mae)  
  71. # plot expected vs preducted  
  72. pyplot.plot(y, label='Expected' 
  73. pyplot.plot(yhat, label='Predicted' 
  74. pyplot.legend()  
  75. pyplot.show() 

運行示例將報告測試集中每個步驟的期望值和預測值,然后報告所有預測值的MAE。

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

我們可以看到,該模型的性能優于持久性模型,MAE約為5.9,而MAE約為6.7 

  1. >expected=42.0, predicted=44.5  
  2. >expected=53.0, predicted=42.5  
  3. >expected=39.0, predicted=40.3  
  4. >expected=40.0, predicted=32.5  
  5. >expected=38.0, predicted=41.1  
  6. >expected=44.0, predicted=45.3  
  7. >expected=34.0, predicted=40.2  
  8. >expected=37.0, predicted=35.0  
  9. >expected=52.0, predicted=32.5  
  10. >expected=48.0, predicted=41.4  
  11. >expected=55.0, predicted=46.6  
  12. >expected=50.0, predicted=47.2  
  13. MAE: 5.957 

創建線圖,比較數據集最后12個月的一系列期望值和預測值。這給出了模型在測試集上執行得如何的幾何解釋。

圖2

一旦選擇了最終的XGBoost模型配置,就可以最終確定模型并用于對新數據進行預測。這稱為樣本外預測,例如 超出訓練數據集進行預測。這與在模型評估期間進行預測是相同的:因為我們始終希望使用模型用于對新數據進行預測時所期望使用的相同過程來評估模型。下面的示例演示了在所有可用數據上擬合最終XGBoost模型并在數據集末尾進行單步預測的過程。 

  1. # finalize model and make a prediction for monthly births with xgboost  
  2. from numpy import asarray  
  3. from pandas import read_csv  
  4. from pandas import DataFrame  
  5. from pandas import concat  
  6. from xgboost import XGBRegressor   
  7. # transform a time series dataset into a supervised learning dataset  
  8. def series_to_supervised(data, n_in=1n_out=1dropnan=True):  
  9.  n_vars = 1 if type(data) is list else data.shape[1]  
  10.  df = DataFrame(data)  
  11.  cols = list()  
  12.  # input sequence (t-n, ... t-1)  
  13.  for i in range(n_in, 0, -1):  
  14.   cols.append(df.shift(i))  
  15.  # forecast sequence (t, t+1, ... t+n)  
  16.  for i in range(0, n_out):  
  17.   cols.append(df.shift(-i))  
  18.  # put it all together  
  19.  agg = concat(cols, axis=1 
  20.  # drop rows with NaN values  
  21.  if dropnan:  
  22.   agg.dropna(inplace=True 
  23.  return agg.values   
  24. # load the dataset  
  25. series = read_csv('daily-total-female-births.csv', header=0index_col=0 
  26. values = series.values  
  27. # transform the time series data into supervised learning  
  28. train = series_to_supervised(values, n_in=6 
  29. # split into input and output columns  
  30. trainX, traintrainy = train[:, :-1], train[:, -1] 
  31. # fit model  
  32. model = XGBRegressor(objective='reg:squarederror'n_estimators=1000 
  33. model.fit(trainX, trainy)  
  34. # construct an input for a new preduction  
  35. row = values[-6:].flatten()  
  36. # make a one-step prediction  
  37. yhat = model.predict(asarray([row]))  
  38. print('Input: %s, Predicted: %.3f' % (row, yhat[0])) 

運行示例將XGBoost模型適合所有可用數據。使用最近6個月的已知數據準備新的輸入行,并預測數據集結束后的下個月。

  1. Input: [34 37 52 48 55 50], Predicted: 42.708  

 

責任編輯:龐桂玉 來源: Python中文社區 (ID:python-china)
相關推薦

2023-03-27 07:34:28

XGBoostInluxDB時間序列

2024-07-18 13:13:58

2025-01-14 13:32:47

2023-03-16 07:27:30

CnosDB數據庫

2024-01-30 01:12:37

自然語言時間序列預測Pytorch

2022-12-09 14:50:51

機器學習時間序列預測

2022-11-24 17:00:01

模型ARDL開發

2024-11-04 15:34:01

2024-10-23 17:10:49

2024-05-09 16:23:14

2024-06-27 16:38:57

2021-07-01 21:46:30

PythonHot-Winters數據

2023-10-13 15:34:55

時間序列TimesNet

2021-07-02 10:05:45

PythonHot-winters指數平滑

2023-03-16 18:09:00

機器學習數據集

2022-08-16 09:00:00

機器學習人工智能數據庫

2024-12-16 13:15:15

機器學習時間序列分析數據缺失

2023-01-30 17:10:23

DeepTime元學習

2017-11-20 11:51:40

KerasLSTM深度學習

2024-09-04 16:36:48

點贊
收藏

51CTO技術棧公眾號

91看片淫黄大片91| 波多野结衣久草一区| 免费91在线观看| 国产一区二区av在线| 夜色激情一区二区| 欧美日韩精品不卡| 97国产成人无码精品久久久| 天天干在线播放| 国产精品186在线观看在线播放| 成人一级黄色片| 欧美在线一区二区视频| 亚洲AV成人无码网站天堂久久| 欧美日韩黄网站| 色偷偷久久一区二区三区| 吴梦梦av在线| 日本电影一区二区在线观看| 国产一区在线观看视频| 琪琪亚洲精品午夜在线| 欧美日韩精品一区二区三区视频播放| 丝袜美腿综合| 日韩欧美美女一区二区三区| 成人在线免费播放视频| 福利成人导航| 亚洲视频一二三| 日本亚洲导航| 天天干免费视频| 国产在线视视频有精品| 国产成人亚洲综合| 国产成人亚洲精品自产在线 | 亚洲承认在线| 久久久91精品| 成人黄色免费网址| 天堂av一区二区三区在线播放| 欧美美女激情18p| 国产真实乱子伦| 精品精品导航| 亚洲丝袜精品丝袜在线| 亚洲国产日韩综合一区| 青青草在线视频免费观看| 国产成人精品一区二 | 日韩一级淫片| 欧美精品电影在线播放| www.国产区| 深夜成人在线| 午夜精品久久久久久久99水蜜桃| 青少年xxxxx性开放hg| 97在线观看免费观看高清| 91美女在线观看| 国产一区二区免费电影| 亚洲精品视频91| 国产成人精品一区二区三区四区 | 国产日韩三级| 精品人伦一区二区色婷婷| 无人码人妻一区二区三区免费| 亚洲伦理网站| 欧美精品乱码久久久久久按摩| 麻豆一区二区三区视频| 欧亚一区二区| 色噜噜狠狠成人网p站| 蜜臀av午夜一区二区三区 | 91精品国产综合久久久久久蜜臀 | 亚洲福利视频久久| yjizz视频| 秋霞蜜臀av久久电影网免费 | 99reav在线| 国产精品情趣视频| 一区二区av| 国产黄网站在线观看| 亚洲三级免费电影| 国产专区在线视频| 超碰在线网站| 黑人巨大精品欧美一区免费视频 | 亚洲第一网站男人都懂| 老司机免费视频| 香蕉一区二区| 亚洲四色影视在线观看| 色婷婷国产精品免| 中文字幕一区二区av | 亚洲国产精品久久久久| 亚洲欧美日本一区| 九九亚洲精品| 日韩小视频网址| 私库av在线播放| 亚洲裸体俱乐部裸体舞表演av| 欧美一级视频一区二区| 夜夜躁日日躁狠狠久久av| 麻豆精品一区二区综合av| 91免费版网站在线观看| 日本精品一二区| 国产欧美综合在线| 久久国产精品免费观看| 麻豆国产在线| 欧美日韩高清在线| www.黄色网| 欧美男gay| 欧美老女人xx| 国产成人无码av| 久久99久久99| 久久精品日韩| caopo在线| 欧美色视频日本版| 91免费视频污| 亚洲精品亚洲人成在线观看| xxxx欧美18另类的高清| 精品国产乱码一区二区| 美美哒免费高清在线观看视频一区二区| 999精品视频一区二区三区| 飘雪影院手机免费高清版在线观看| 1区2区3区精品视频| 欧美日韩成人免费视频| 综合久久av| 亚洲女人天堂成人av在线| 欧美日韩中文字幕在线观看| 日韩高清不卡一区二区三区| 国产91社区| 秋霞影院午夜丰满少妇在线视频| 精品久久久久久中文字幕一区奶水 | 免费大片黄在线| 欧美视频在线视频| 国产精品91av| 婷婷久久一区| 国产成人精品网站| 头脑特工队2在线播放| 欧美电影网站| 福利一区在线观看| 日韩中文字幕一区二区| 成人女同在线观看| 欧美三级在线视频| 亚洲精品乱码久久久久久不卡 | 午夜精品一区二区三区四区| 男人添女人下部高潮视频在线观看| 在线亚洲一区二区| 波多野结衣先锋影音| 欧美日韩亚洲一区二区三区在线| 国产精品普通话| 国产视频二区在线观看| 欧美日韩在线免费| 亚洲国产精品无码久久久久高潮| 午夜国产精品视频| 91久久精品国产| 日本最新在线视频| 欧美日韩性生活| 欧洲美熟女乱又伦| 久久久久久亚洲精品杨幂换脸| 国产欧美日韩一区二区三区| 欧美人与性动交α欧美精品济南到| 欧美色中文字幕| 人妻一区二区视频| 日本少妇一区二区| 午夜精品视频在线观看一区二区 | 欧美激情第10页| 亚洲999一在线观看www| 日本a级在线| 91精品国产综合久久蜜臀 | 内衣办公室在线| 福利一区视频在线观看| 在线免费观看成年人视频| 国产精品婷婷| 蜜桃日韩视频| 最新欧美电影| 在线视频日韩精品| 一区二区www| 亚洲欧美一区二区三区国产精品 | 中文字幕日韩免费| 国产午夜精品理论片a级大结局| 国产精品亚洲a| 精品黄色一级片| 国产精品视频区1| 欧美jizzhd69巨大| 欧美一区二区三区视频在线观看 | 天天影视涩香欲综合网 | 成人免费在线观看入口| 佐山爱在线视频| 在线成人欧美| 欧美久久在线| 日韩一区二区三区四区五区| 欧美日本高清一区| 熟妇高潮一区二区三区| 一本色道久久综合精品竹菊| www.xx日本| 国产成人在线免费观看| 波多野结衣家庭教师在线| 国产欧美日韩视频在线| 亚洲free嫩bbb| 国产自产自拍视频在线观看| 亚洲一级片在线看| 国产伦精品一区二区三区四区 | 99久久精品国产导航| 欧美两根一起进3p做受视频| 天天做综合网| 久久久久久国产精品免费免费| 电影天堂国产精品| 久久成人精品一区二区三区| 网站黄在线观看| 欧美日韩亚洲综合| 日本网站在线免费观看| 亚洲国产精品ⅴa在线观看| 女人扒开双腿让男人捅| 久久午夜精品| 97在线免费视频观看| 激情综合网五月| 91九色露脸| 美女一区网站| 欧美激情一级精品国产| av免费观看一区二区| 精品国产乱子伦一区| 在线观看国产黄| 欧美日韩免费网站| 成人免费视频网站入口::| 久久无码av三级| 白丝校花扒腿让我c| 青青草91视频| 国产精品丝袜久久久久久消防器材 | 精品欧美乱码久久久久久| 男操女视频网站| 亚洲成a天堂v人片| 欧美第一页在线观看| 国产日韩精品视频一区| 性久久久久久久久久久| 国产在线精品免费| 免费看污污网站| 先锋影音久久久| 大荫蒂性生交片| 91精品国产调教在线观看| 欧美影视一区二区| 激情小说一区| 成人影片在线播放| 国产成人免费av一区二区午夜| 国产成人精品av在线| 欧美freesex黑人又粗又大| 精品中文字幕在线| 在线heyzo| 久久久国产精品免费| 午夜在线视频播放| 国产亚洲欧美视频| 黄色大片在线免费观看| 日韩精品欧美激情| 亚洲 欧美 激情 小说 另类| 欧美精品一区二区高清在线观看| 国产黄色av片| 日韩一区二区在线看| 国产精品嫩草影院精东| 欧美日韩亚洲综合| 在线黄色av网站| 欧美日韩三级一区二区| 欧美特级黄色片| 91国产免费看| 亚洲午夜在线播放| 欧美日韩国产bt| 国产精品久久久久久69| 欧美久久婷婷综合色| 亚洲在线免费观看视频| 欧美剧情片在线观看| 国产精品无码在线播放| 日韩一区二区三区视频在线 | 国产精品第9页| 婷婷综合久久一区二区三区| 成人午夜淫片100集| 欧美性生交大片免网| 色屁屁影院www国产高清麻豆| 日韩欧美中文字幕在线播放| 亚洲成人第一网站| 在线精品视频免费观看| 一区二区 亚洲| 欧美大胆一级视频| 人妻夜夜爽天天爽| 亚洲男人天天操| 日本美女高清在线观看免费| 久久久精品中文字幕| 手机在线免费av| 88xx成人精品| 亚洲综合av一区二区三区| 成人福利网站在线观看| 一区二区三区自拍视频| 国产亚洲一区二区三区在线播放 | 国产成人在线视频观看| 91激情五月电影| 国产又粗又猛又黄又爽| 日韩欧美成人一区| 深夜福利视频在线免费观看| 亚洲天堂av在线播放| 精品51国产黑色丝袜高跟鞋| 欧美激情一区二区三区在线视频观看 | 国产精品欧美日韩一区| 一区二区三区视频| 激情另类综合| 国产高清视频网站| 国产精品77777| 97伦伦午夜电影理伦片| 综合色中文字幕| 久久精品这里有| 欧美亚洲高清一区二区三区不卡| 国产精品女人久久久| 精品小视频在线| 黄色一级大片在线免费看产| 午夜精品久久久久久久99热浪潮 | 亚洲综合色av| 香蕉视频一区| 国产亚洲精品久久久久久久| 久久久久看片| 国产a级片视频| 国产日韩欧美综合在线| 国产一级片免费看| 精品视频免费看| 天天综合网在线| 久久久精品在线| 日韩一区二区三区在线免费观看 | 久久aaaa片一区二区| 国产日韩在线不卡| 你懂的网址国产 欧美| 另类欧美小说| 亚洲成人tv| 日本xxxxxxx免费视频| 国产成人午夜电影网| 在线看片中文字幕| 五月婷婷欧美视频| 一本一道精品欧美中文字幕| 日韩精品在线视频观看| 日韩专区av| 91亚洲精品久久久久久久久久久久| 免费看成人哺乳视频网站| 女人色极品影院| 国产麻豆精品一区二区| 超碰97av在线| 色域天天综合网| 婷婷丁香一区二区三区| 欧美激情在线观看| 91麻豆精品一二三区在线| 日韩欧美在线一区二区| 国产一区导航| 欧美极品jizzhd欧美仙踪林| 亚洲人一二三区| 91禁在线观看| 亚洲一级一级97网| 日本中文字幕一区二区| 久久综合九色综合久99| 亚洲区第一页| 美女黄色一级视频| 亚洲国产精品久久人人爱蜜臀| 国产乱码精品一区二区| 久久久精品一区二区| а天堂中文最新一区二区三区| 性欧美精品一区二区三区在线播放| 鲁大师影院一区二区三区| 国产国语性生话播放| 欧美色xxxx| 国产资源在线播放| 国产精品91在线观看| 国产精品自拍区| 免费黄色一级网站| 国产偷国产偷亚洲高清人白洁| 国产精品久久久久久久久久精爆| 亚洲精品小视频在线观看| 中文在线а√在线8| 欧美日韩另类丝袜其他| 丝袜诱惑亚洲看片| 摸摸摸bbb毛毛毛片| 欧美性猛片xxxx免费看久爱| 亚洲麻豆精品| 91久久久久久久久| 欧美日韩视频| 香港三日本8a三级少妇三级99| 精品久久中文字幕| 青青国产在线| 国产欧美精品日韩精品| 在线精品小视频| 国产黑丝在线观看| 色综合久久久久久久久| 欧洲不卡视频| 国产精品久久国产三级国电话系列| 日韩视频不卡| www在线观看免费视频| 欧美日韩国产乱码电影| 七七成人影院| 蜜桃av噜噜一区二区三| 美腿丝袜亚洲三区| 粉嫩av性色av蜜臀av网站| 精品国产精品网麻豆系列| 亚洲午夜天堂| 中文视频一区视频二区视频三区| 国内成人自拍视频| 日本在线观看中文字幕| 亚洲一区二区久久久| 国产欧美视频在线| 欧美午夜性视频| 国产女人水真多18毛片18精品视频 | 午夜福利视频一区二区| 国产精品视频中文字幕91| 欧美三级午夜理伦三级中文幕| 爱爱的免费视频| 91精品国产综合久久精品图片| 国产污视频在线播放| 亚洲人成网站在线播放2019| 成人在线综合网| 性高潮视频在线观看| 欧美国产日韩精品| 精品视频亚洲| 国产吃瓜黑料一区二区| 欧美性一二三区| 成人在线黄色电影|