精品欧美一区二区三区在线观看 _久久久久国色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技術棧公眾號

男人的午夜天堂| 一区二区三视频| 国产一级免费av| 丝袜美腿一区二区三区动态图| 91成人在线免费观看| 亚洲bbw性色大片| 国产丰满果冻videossex| 一本综合久久| 日韩资源在线观看| 日批在线观看视频| 99久久久成人国产精品| 少妇视频在线| 精品一区二区在线播放| 羞羞色国产精品| 中文字幕91视频| 精品福利网址导航| 欧美日高清视频| 国产精品50p| 97影院秋霞午夜在线观看| 337p粉嫩大胆噜噜噜噜噜91av| 国产区精品在线观看| 日日夜夜综合网| 在线观看国产精品入口| 亚洲午夜激情免费视频| 女同性恋一区二区三区| 国产精选久久| 欧美日韩在线精品一区二区三区激情| 日本十八禁视频无遮挡| www国产在线观看| 国产精品视频一二三区| 激情伦成人综合小说| 国产极品久久久| 美国av一区二区| 国产suv精品一区二区| 日韩高清免费av| 无码久久精品国产亚洲av影片| 亚洲影视资源| 在线观看一区二区视频| 亚洲熟女乱色一区二区三区| 人交獸av完整版在线观看| 中文字幕欧美一| 亚洲精品影院| 国产免费a∨片在线观看不卡| 99久久精品免费看国产免费软件| 亚洲一区二区三区777| 一区二区三区亚洲视频| 免费高清在线视频一区·| 热久久视久久精品18亚洲精品| 国产一级久久久| 欧美精品日本| 欧美巨乳在线观看| 国产大学生自拍| 午夜精品剧场| 欧美夫妻性视频| 蜜桃视频日韩| 免费一级特黄3大片视频| 欧美毛片免费观看| 日韩福利在线播放| 91国模少妇一区二区三区| 亚洲综合图色| 国产一区二区三区视频 | 成人福利视频| 日韩欧美国产视频| 男人的天堂日韩| se69色成人网wwwsex| 欧美性感一类影片在线播放| 亚洲 欧美 另类人妖| 国内欧美日韩| 3d成人动漫网站| 免费黄色在线播放| 精品少妇一区| 亚洲网站在线看| 精品无码一区二区三区蜜臀| 一区二区三区午夜视频| 久久久久久成人精品| 午夜影院在线看| 日韩高清不卡在线| 91视频九色网站| 色婷婷激情五月| 久久久国际精品| 亚洲一区二区三区四区中文| 国产一区久久精品| 亚洲成人资源在线| 精品久久久久久久久久久久久久久| 成年人黄色在线观看| 永久免费网站在线| 日韩欧美aⅴ综合网站发布| xxxx一级片| 日韩中文字幕视频网| 日韩国产激情在线| 国产精品一区二区亚洲| 欧美视频福利| 国产精品第2页| 性猛交xxxx乱大交孕妇印度| 91免费看片在线观看| 一级二级三级欧美| 国产欧洲在线| 在线播放一区二区三区| 国产麻豆xxxvideo实拍| 日韩欧美在线中字| 午夜欧美不卡精品aaaaa| 中文字幕第2页| 成人黄色大片在线观看| 一区二区欧美亚洲| 日韩午夜视频在线观看| 国产一二区在线观看| 欧美日韩中国免费专区在线看| 色噜噜狠狠一区二区| 欧美电影完整版在线观看| 一区二区日韩精品| 免费日韩一级片| 国产精品一二三四五| 欧美韩国日本精品一区二区三区| av香蕉成人| 欧美性猛交xxxx乱大交退制版 | 欧美一区二区三区四| 寂寞少妇一区二区三区| 欧美日韩一区二区三| 欧美1234区| 777亚洲妇女| 国产精品国产三级国产专业不 | 亚洲精品推荐| 欧美极品少妇xxxxx| 国产精品久久九九| 毛片免费在线| 午夜精品久久久久久久| 日日夜夜精品视频免费观看| 精品久久中文| 琪琪第一精品导航| 午夜视频免费在线| 亚洲成在人线在线播放| 婷婷激情小说网| 日韩久久电影| 国产精品高潮视频| 国产小视频免费在线观看| 欧美日韩在线影院| 人妻丰满熟妇av无码久久洗澡 | 99热这里只有精品在线观看| 欧美激情一区在线观看| 欧美视频第三页| 亚洲都市激情| 欧美亚洲国产另类| 91久久国产综合| 在线观看黄色av| 性做久久久久久免费观看| 国产人妻精品久久久久野外| 国产精品91一区二区三区| 国产精品日韩欧美大师| 国产高清在线| 欧美性videosxxxxx| 神马久久久久久久久久久| 水蜜桃久久夜色精品一区的特点| 久久综合九色综合网站| 小早川怜子影音先锋在线观看| 亚洲国产中文字幕在线观看| 精品在线播放视频| 99久久精品99国产精品| 国产精品沙发午睡系列| 久久99久久人婷婷精品综合| 国产精品高清网站| av电影在线观看| 欧美久久久久久久久久| 青娱乐国产在线| 成人18精品视频| 两根大肉大捧一进一出好爽视频| 亚洲综合福利| 国产精品久久不能| 午夜免费福利在线观看| 欧美福利电影网| 欧美极品美女电影一区| 蜜臀99久久精品久久久久小说| 国产午夜亚洲精品午夜鲁丝片| 精品久久久噜噜噜噜久久图片| 精品大片一区二区| 91九色在线视频| 久草在线视频资源| 日韩精品极品视频| 中文字幕av免费观看| 亚洲精品国产第一综合99久久 | 欧美国产亚洲另类动漫| 亚洲天堂av一区二区| 精品91久久久久| 欧美一区1区三区3区公司 | 超碰97免费在线| 日韩精品久久久久久久玫瑰园| 手机在线看片1024| 中文字幕一区不卡| 成人两性免费视频| 亚洲xxxx3d动漫| 成人污视频在线观看| 成人三级视频在线播放| 国产精品99一区二区三| 国产亚洲情侣一区二区无| 日本一区免费网站| 欧美国产精品日韩| 黄色国产在线| 日韩精品专区在线影院重磅| 日韩一区二区视频在线| 日韩一区在线播放| 这里只有精品在线观看视频| 麻豆91精品视频| 欧美视频在线观看视频| 欧美xxxxx视频| 韩国成人一区| 欧美专区视频| 国产精品日日摸夜夜添夜夜av| 国内老司机av在线| 久久久99久久精品女同性| 涩涩视频在线观看免费| 日韩欧美一级片| 久久久精品毛片| 少妇精品导航| 亚洲欧洲日韩国产| 国产18精品乱码免费看| 欧美日韩高清在线| 中文字幕一区在线播放| 一区二区三区四区高清精品免费观看| 无码一区二区三区在线| 成人动漫一区二区三区| 国产91在线免费观看| 日韩精品成人一区二区在线| 国产精品无码一区二区在线| 女主播福利一区| 亚洲综合第一| 波多野结衣一区| 久中文字幕一区| 免费日韩一区二区三区 | 精品福利一区| 国产成人精品免费视频大全最热 | 一级特黄曰皮片视频| 91在线视频18| 小毛片在线观看| 不卡电影一区二区三区| 伊人影院在线观看视频| 国内精品免费**视频| 性生活免费在线观看| 视频在线观看一区| 人妻有码中文字幕| 中文日韩欧美| 鲁一鲁一鲁一鲁一色| 在线综合欧美| 精品少妇人妻av免费久久洗澡| 最新国产精品| 免费cad大片在线观看| 最新精品国产| 国产片侵犯亲女视频播放| 欧美一区激情| 日韩欧美精品免费| 好吊视频一区二区三区四区| 日韩激情视频一区二区| 国内精品久久久久久久影视麻豆| 日本国产中文字幕| 亚洲午夜一区| 国产肉体ⅹxxx137大胆| 精品91在线| 人妻熟妇乱又伦精品视频| 亚洲一区亚洲| 激情五月婷婷久久| 麻豆精品视频在线观看| 九九热精品国产| 国产aⅴ综合色| 国产精品一区二区人妻喷水| 99国产精品久久久| av男人的天堂av| 中文字幕第一区| 久久国产波多野结衣| 亚洲永久免费av| 在线观看精品国产| 欧美中文字幕一区二区三区| 在线观看国产精品入口男同| 777久久久精品| 亚洲免费视频网| 日韩电影大片中文字幕| 国产视频网站在线| 日韩在线高清视频| 欧美xxxx黑人又粗又长| 2024亚洲男人天堂| 成人精品一区二区三区电影| 91中文字幕在线| 久久精品凹凸全集| 神马影院午夜我不卡| 欧美成人69| av免费中文字幕| 九色|91porny| 亚洲综合自拍网| 国产精品美女久久久久久久久| 欧美日韩中文字幕在线观看| 黑丝美女久久久| 一级黄色片网站| 亚洲精品福利资源站| h视频在线观看免费| 欧美激情一区二区三区高清视频 | 最新亚洲一区| 一区二区三区国产免费| 丁香六月久久综合狠狠色| 国产精品免费无码| 亚洲二区在线观看| 在线视频 91| 日韩精品高清在线观看| 成人在线播放| 日韩av色在线| 国产 日韩 欧美 综合 一区| 亚洲国产欧美一区二区三区不卡| 激情婷婷欧美| 香蕉视频999| 久久久青草青青国产亚洲免观| 男女羞羞免费视频| 欧美亚日韩国产aⅴ精品中极品| www.久久成人| www国产精品com| 六月婷婷综合| 国产精品日韩一区二区| 国产精品久久观看| 黑人糟蹋人妻hd中文字幕| 高清国产一区二区三区| 国产精品麻豆免费版现看视频| 大桥未久av一区二区三区| 亚洲欧美激情另类| 不卡毛片在线看| 国产福利亚洲| 日韩免费中文专区| 久久久一二三| 亚洲欧美日本一区| 亚洲韩国一区二区三区| 99久久精品无免国产免费| 国产亚洲精品久久久久久牛牛| 国产精品论坛| 好看的日韩精品| 黄页网站一区| 亚洲少妇一区二区| 亚洲美腿欧美偷拍| 国产一区二区女内射| 神马国产精品影院av| 日韩网站中文字幕| 热舞福利精品大尺度视频| 亚洲欧美成人| 中文字幕免费看| 欧美小视频在线| 欧美91精品久久久久国产性生爱| 久久久欧美一区二区| 东京久久高清| 久久成人福利视频| aaa亚洲精品| 91视频免费网址| 亚洲精品在线91| 亚洲成人不卡| 日韩中文字幕一区| 日韩不卡一二三区| 91麻豆精品久久毛片一级| 欧美日韩国产美| h片在线免费| 91成人免费观看| 影音先锋亚洲精品| 黄色性生活一级片| 色综合久久99| 97电影在线看视频| 成人h视频在线| 欧美成人亚洲| 黄色污在线观看| 色视频欧美一区二区三区| 国产日韩精品在线看| 国产精品男人的天堂| 99热国内精品| 极品人妻一区二区| 亚洲1区2区3区视频| 三级在线电影| 国产日本欧美在线观看| 欧美日本久久| 亚洲国产精品无码久久久久高潮| 色婷婷av久久久久久久| 2017亚洲天堂1024| 91在线免费看片| 亚洲永久免费精品| 中文字幕在线观看二区| 日韩精品一区二区三区在线播放| 日本动漫理论片在线观看网站| 精品乱码一区二区三区| 日产国产高清一区二区三区| www.色小姐com| 亚洲精品自拍第一页| 国产资源一区| 人体内射精一区二区三区| 国产亚洲成aⅴ人片在线观看| 中文字幕乱码视频| 欧美激情久久久久久| 色爱av综合网| 亚洲一区二区在线视频观看| 亚洲h在线观看| 337p日本欧洲亚洲大胆鲁鲁| 国产精品久久亚洲7777| 首页国产欧美日韩丝袜| 妺妺窝人体色www聚色窝仙踪| 亚洲美女在线视频| 国产视频网站一区二区三区| 欧美色图另类小说| 亚洲色图视频免费播放| 欧洲天堂在线观看| 91手机在线播放| 人人狠狠综合久久亚洲| 黄色小视频在线免费看|