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

超完整!11 種經典時間序列預測方法!

人工智能 機器學習
本文我們深入探討如何使用機器學習方法對 Python 的時間序列問題進行分類和預測。我們將深入研究一套經典的時間序列預測方法,您可以在探索機器學習方法之前測試這些方法。

本文我們深入探討如何使用機器學習方法對 Python 的時間序列問題進行分類和預測。我們將深入研究一套經典的時間序列預測方法,您可以在探索機器學習方法之前測試這些方法。

雖然傳統方法強調線性關系,但它們在許多情況下都是熟練且有效的。只要數據準備充分,技術設置好就會很好。

一、 概述

本文演示了 11 種不同的經典時間序列預測方法,以及時間序列方法的對比及實踐教程。

  1.  自回歸 (AR)
  2.  移動平均線 (MA)
  3. 自回歸移動平均線 (ARMA)
  4. 自回歸綜合移動平均線 (ARIMA)
  5. 季節性自回歸綜合移動平均線 (SARIMA)
  6. 具有外生回歸的季節性自回歸積分移動平均值 (SARIMAX)
  7. 向量自回歸 (VAR)
  8. 向量自回歸移動平均 (VARMA)
  9. 具有外生回歸的向量自回歸移動平均值 (VARMAX)
  10. 簡單指數平滑 (SES)
  11. Holt Winter 指數平滑 (HWES)

每種方法都以一致的方式呈現,包括:

  • 描述。對該技術的簡短而精確的描述。
  • Python 代碼。一個簡短的工作示例,用于在 Python 中擬合模型并進行預測。
  • 更多信息。API 和算法的參考。

對于提供的每個代碼示例,我們使用一個基本的說明性數據集。我們理解它可能并不總是適合重點方法,因此我們建議您用您的數據替換人為的數據集,以測試該方法。

請記住:定制每種方法都需要針對您的具體問題進行調整。在許多情況下,我已經在博客上提供了如何配置甚至網格搜索參數的示例,請嘗試搜索功能。

如果本指南被證明是有益的,請在下面的評論部分分享您的想法。

自回歸 (AR)

自回歸 (AR) 方法使用先前觀測值的線性組合來預測序列中的后續值。

模型的符號涉及將模型 p 的順序指定為 AR 函數的參數,例如 AR(p)。例如,AR(1) 是一個一階自回歸模型。

該方法最適合缺乏趨勢和季節性分量的單變量時間序列。

Python 代碼


# AR example
from statsmodels.tsa.ar_model import AutoReg
from random import random
# contrived dataset
data = [x + random() for x in range(1, 100)]
# fit model
model = AutoReg(data, lags=1)
model_fit = model.fit()
# make prediction
yhat = model_fit.predict(len(data), len(data))
print(yhat)

移動平均線 (MA)

移動平均 (MA) 方法模型將序列中的下一步預測為先前時間步長中平均過程殘余誤差的線性函數。

需要注意的是,移動平均線模型不同于計算時間序列的移動平均線。

模型的符號涉及將模型 q 的順序指定為 MA 函數的參數,例如 MA(q)。例如,MA(1) 是一個一階移動平均模型。

該方法適用于沒有趨勢和季節分量的單變量時間序列。

我們可以使用 ARIMA 類來創建 MA 模型并設置零階 AR 模型。我們必須在 order 參數中指定 MA 模型的順序。

Python 代碼

我們可以使用 ARIMA 類來創建 MA 模型并設置零階 AR 模型。我們必須在 order 參數中指定 MA 模型的順序。

# MA example

from statsmodels.tsa.arima.model import ARIMA

from random import random

# contrived dataset

data = [x + random() for x in range(1, 100)]

# fit model

model = ARIMA(data, order=(0, 0, 1))

model_fit = model.fit()

# make prediction

yhat = model_fit.predict(len(data), len(data))

print(yhat)

自回歸移動平均線 (ARMA)

自回歸移動平均 (ARMA) 方法模型基于過去觀測值和過去殘差的線性組合來預測序列中的下一步。

該方法結合了自回歸 (AR) 和移動平均 (MA) 模型。

為了表示模型,符號涉及將 AR(p) 和 MA(q) 模型的順序指定為 ARMA 函數的參數,例如 ARMA(p, q)。ARIMA 模型可用于開發 AR 或 MA 模型。

該方法適用于沒有趨勢和季節分量的單變量時間序列。

Python 代碼


# ARMA example

from statsmodels.tsa.arima.model import ARIMA

from random import random

# contrived dataset

data = [random() for x in range(1, 100)]

# fit model

model = ARIMA(data, order=(2, 0, 1))

model_fit = model.fit()

# make prediction

yhat = model_fit.predict(len(data), len(data))

print(yhat)

更多信息

  • 維基百科上的自回歸-移動平均模型

自回歸綜合移動平均線 (ARIMA)

自回歸綜合移動平均 (ARIMA) 方法模型將序列中的下一步預測為先前時間步長的差分觀測值和殘差誤差的線性函數。

該方法集成了自回歸 (AR) 和移動平均 (MA) 模型的原理以及序列的差分預處理步驟,使序列靜止,稱為積分 (I)。

模型的符號涉及將 AR(p)、I(d) 和 MA(q) 模型的順序指定為 ARIMA 函數的參數,例如 ARIMA(p, d, q)。ARIMA 模型還可用于開發 AR、MA 和 ARMA 模型。

ARIMA 方法最適合表現出趨勢但缺乏季節性變化的單變量時間序列。

Python 代碼

# ARIMA example

from statsmodels.tsa.arima.model import ARIMA

from random import random

# contrived dataset

data = [x + random() for x in range(1, 100)]

# fit model

model = ARIMA(data, order=(1, 1, 1))

model_fit = model.fit()

# make prediction

yhat = model_fit.predict(len(data), len(data), typ='levels')

print(yhat)

更多信息

  • 維基百科上的自回歸綜合移動平均線

季節性自回歸綜合移動平均線 (SARIMA)

季節性自回歸綜合移動平均 (SARIMA) 方法基于差異觀測值、誤差、差異季節性觀測值和先前時間步長的季節性誤差的線性混合,對序列中的下一步進行建模。

SARIMA 增強了 ARIMA 模型,使其能夠在季節性水平上執行相同的自回歸、差分和移動平均建模。

該模型的符號涉及指定 AR(p)、I(d) 和 MA(q) 模型的順序作為 ARIMA 函數的參數,以及季節性水平的 AR(P)、I(D)、MA(Q) 和 m 參數,例如 SARIMA(p, d, q)(P, D, Q)m,其中“m”是每個季節(季節周期)的時間步長數。SARIMA 模型可用于開發 AR、MA、ARMA 和 ARIMA 模型。

該方法適用于具有趨勢和/或季節性分量的單變量時間序列。

Python 代碼


# SARIMA example

from statsmodels.tsa.statespace.sarimax import SARIMAX

from random import random

# contrived dataset

data = [x + random() for x in range(1, 100)]

# fit model

model = SARIMAX(data, order=(1, 1, 1), seasonal_order=(0, 0, 0, 0))

model_fit = model.fit(disp=False)

# make prediction

yhat = model_fit.predict(len(data), len(data))

print(yhat)

更多信息

  • statsmodels.tsa.statespace.sarimax.SARIMAX API 接口
  • statsmodels.tsa.statespace.sarimax.SARIMAXResults API
  • 維基百科上的自回歸綜合移動平均線

具有外生回歸的季節性自回歸積分移動平均值 (SARIMAX)

具有外生回歸的季節性自回歸綜合移動平均值 (SARIMAX) 是 SARIMA 模型的擴展,其中還包括外生變量的建模。

外生變量也稱為協變量,可以將其視為具有與原始序列相同的時間步長的觀測值的并行輸入序列。初級序列可以稱為內源性數據,以將其與外源序列進行對比。外生變量的觀測值在每個時間步直接包含在模型中,并且以與主要內生序列相同的方式建模(例如,作為 AR、MA 等過程)。

SARIMAX 方法還可用于對具有外生變量(如 ARX、MAX、ARMAX 和 ARIMAX)的歸入模型進行建模。

該方法適用于具有趨勢和/或季節成分以及外生變量的單變量時間序列。

Python 代碼

# SARIMAX example

from statsmodels.tsa.statespace.sarimax import SARIMAX

from random import random

# contrived dataset

data1 = [x + random() for x in range(1, 100)]

data2 = [x + random() for x in range(101, 200)]

# fit model

model = SARIMAX(data1, exog=data2, order=(1, 1, 1), seasonal_order=(0, 0, 0, 0))

model_fit = model.fit(disp=False)

# make prediction

exog2 = [200 + random()]

yhat = model_fit.predict(len(data1), len(data1), exog=[exog2])

print(yhat)

更多信息

  • statsmodels.tsa.statespace.sarimax.SARIMAX API 接口
  • statsmodels.tsa.statespace.sarimax.SARIMAXResults API
  • 維基百科上的自回歸綜合移動平均線

向量自回歸 (VAR)

向量自回歸 (VAR) 方法使用 AR 模型方法對每個時間序列中的下一步進行建模。從本質上講,它擴展了 AR 模型以迎合多個并行時間序列,例如多變量時間序列。

模型的符號涉及將 AR(p) 模型的順序指定為 VAR 函數的參數,例如 VAR(p)。

該方法適用于沒有趨勢和季節分量的多變量時間序列。

Python 代碼

from statsmodels.tsa.vector_ar.var_model import VAR
from random import random
# contrived dataset with dependency
data = list()
for i in range(100):
    v1 = i + random()
    v2 = v1 + random()
    row = [v1, v2]
    data.append(row)
# fit model
model = VAR(data)
model_fit = model.fit()
# make prediction
yhat = model_fit.forecast(model_fit.y, steps=1)
print(yhat)

更多信息

  • statsmodels.tsa.vector_ar.var_model。VAR API
  • statsmodels.tsa.vector_ar.var_model。VARResults API
  • 維基百科上的向量自回歸

向量自回歸移動平均 (VARMA)

向量自回歸移動平均 (VARMA) 方法利用 ARMA 模型方法對多個時間序列中即將到來的值進行建模。它是ARMA對多個并行時間序列的推廣,例如多變量時間序列。

模型的符號涉及將 AR(p) 和 MA(q) 模型的順序指定為 VARMA 函數的參數,例如 VARMA(p, q)。VARMA 模型還可用于開發 VAR 或 VMA 模型。

該方法適用于沒有趨勢和季節分量的多變量時間序列。

Python 代碼

更多信息

  • statsmodels.tsa.statespace.varmax.VARMAX 接口
  • statsmodels.tsa.statespace.varmax.VARMAXResults
  • 維基百科上的向量自回歸

具有外生回歸的向量自回歸移動平均值 (VARMAX)

具有外生回歸的向量自回歸移動平均值 (VARMAX) 擴展了 VARMA 模型的功能,其中還包括外生變量的建模。它是 ARMAX 方法的多變量版本。

外生變量,也稱為協變量,可以認為是與原始序列的時間步長對齊的并行輸入序列。主要系列被稱為內源性數據,以將其與外源序列進行對比。外生變量的觀測值在每個時間步直接包含在模型中,并且以與主要內生序列相同的方式建模(例如,作為 AR、MA 等過程)。

VARMAX 方法還可用于對具有外生變量(如 VARX 和 VMAX)的歸和模型進行建模。

該方法適用于無趨勢的多變量時間序列和具有外生變量的季節分量。

Python 代碼

# VARMAX example

from statsmodels.tsa.statespace.varmax import VARMAX

from random import random

# contrived dataset with dependency

data = list()

for i in range(100):

    v1 = random()

    v2 = v1 + random()

    row = [v1, v2]

    data.append(row)

data_exog = [x + random() for x in range(100)]

# fit model

model = VARMAX(data, exog=data_exog, order=(1, 1))

model_fit = model.fit(disp=False)

# make prediction

data_exog2 = [[100]]

yhat = model_fit.forecast(exog=data_exog2)

print(yhat)

更多信息

  • statsmodels.tsa.statespace.varmax.VARMAX 接口
  • statsmodels.tsa.statespace.varmax.VARMAXResults
  • 維基百科上的向量自回歸

簡單指數平滑 (SES)

簡單指數平滑 (SES) 方法將下一個時間步長建模為先前時間步長觀測值的指數加權線性函數。

該方法適用于沒有趨勢和季節分量的單變量時間序列。

Python 代碼

# SES example

from statsmodels.tsa.holtwinters import SimpleExpSmoothing

from random import random

# contrived dataset

data = [x + random() for x in range(1, 100)]

# fit model

model = SimpleExpSmoothing(data)

model_fit = model.fit()

# make prediction

yhat = model_fit.predict(len(data), len(data))

print(yhat)

更多信息

  • statsmodels.tsa.holtwinters.SimpleExpSmoothing API 接口
  • statsmodels.tsa.holtwinters.HoltWinters結果 API
  • 維基百科上的指數平滑

Holt Winter 指數平滑 (HWES)

Holt Winter's Exponential Smoothing (HWES) 也稱為三重指數平滑方法,將下一個時間步長建模為先前時間步長觀測值的指數加權線性函數,同時考慮趨勢和季節性。

該方法適用于具有趨勢和/或季節性分量的單變量時間序列。

Python 代碼

# HWES example

from statsmodels.tsa.holtwinters import ExponentialSmoothing

from random import random

# contrived dataset

data = [x + random() for x in range(1, 100)]

# fit model

model = ExponentialSmoothing(data)

model_fit = model.fit()

# make prediction

yhat = model_fit.predict(len(data), len(data))

print(yhat)

二、時間序列方法對比及實踐

在這里,我們將看看時間序列預測的例子,以及如何建立ARMA、ARIMA和SARIMA模型,對比特幣(BTC)的未來價格進行時間序列預測。

讀取和顯示 BTC 時間序列數據

我們將首先使用 Pandas 數據讀取器讀取 BTC 的歷史價格。讓我們在終端中使用一個簡單的 pip 命令來安裝它:

pip install pandas-datareader

讓我們打開一個 Python 腳本,并從 Pandas 庫中導入數據讀取器:

import pandas_datareader.data as web
import datetime

我們還導入 Pandas 庫本身,并放寬對列和行的顯示限制:

import pandas as pd 
pd.set_option('display.max_columns', None)
pd.set_option('display.max_rows', None)

現在,我們可以導入日期時間庫,這將允許我們定義數據提取的開始和結束日期:

import datetime

現在我們已經掌握了提取比特幣價格時間序列數據所需的一切,讓我們收集數據。

import pandas_datareader as web 

btc = web.get_data_yahoo(['BTC-USD'], start=datetime.datetime(2018, 1, 1), end=datetime.datetime(2020, 12, 2))['Close']

print(btc.head())

我們看到我們的數據框包含許多列。讓我們來看看這些列中的每一個的含義。

  1. 日期:這是我們時間序列中的索引,用于指定與價格關聯的日期。
  2. 收盤價:當天購買BTC的最后價格。
  3. 開盤價:當天購買BTC的第一個價格。
  4. 最高價:當天購買BTC的最高價格。
  5. 最低價:當天購買BTC的最低價格。
  6. 交易量:當天的總交易次數。
  7. 調整收盤價:根據股息和股票分割調整后的收盤價。

我們將使用收盤價作為預測模型。具體來說,我們將使用歷史收盤價 BTC 來預測未來的 BTC 價格。

讓我們將收盤價 BTC 數據寫入 csv 文件。這樣,我們就可以避免使用 Pandas 數據讀取器重復提取數據。

btc.to_csv("btc.csv")

現在,讓我們閱讀 csv 文件并顯示前五行:

btc = pd.read_csv("btc.csv")
print(btc.head())

為了使用統計庫提供的模型,我們需要將日期列設置為數據框索引。我們還應該使用 to_datetime 方法格式化該日期:

btc.index = pd.to_datetime(btc['Date'], format='%Y-%m-%d')

讓我們顯示我們的數據框:

del btc['Date']

讓我們繪制我們的時間序列數據。為此,讓我們導入數據可視化庫 Seaborn 和 Matplotlib:

import matplotlib.pyplot as plt
import seaborn as sns

讓我們使用 Seaborn 格式化可視化:

sns.set()

并使用 Matplotlib 標記 y 軸和 x 軸。我們還將在 x 軸上旋轉日期,以便它們更易于閱讀:

plt.ylabel('BTC Price')
plt.xlabel('Date')
plt.xticks(rotatinotallow=45)

最后,使用 Matplotlib 生成我們的圖:

plt.plot(btc.index, btc['BTC-USD'], )

現在我們可以繼續構建我們的第一個時間序列模型,即自回歸移動平均線。

拆分數據進行訓練和測試

模型構建的一個重要部分是拆分我們的數據以進行訓練和測試,這可確保構建一個可以在訓練數據之外泛化的模型,并且性能和輸出具有統計意義。

我們將拆分數據,使 2020 年 11 月之前的所有內容都作為訓練數據,而 2020 年之后的所有內容都將成為測試數據:

train = btc[btc.index < pd.to_datetime("2020-11-01", format='%Y-%m-%d')]
test = btc[btc.index > pd.to_datetime("2020-11-01", format='%Y-%m-%d')]

plt.plot(train, color = "black")
plt.plot(test, color = "red")
plt.ylabel('BTC Price')
plt.xlabel('Date')
plt.xticks(rotatinotallow=45)
plt.title("Train/Test split for BTC Data")
plt.show()


自回歸移動平均線 (ARMA)

ARMA 中的術語“自回歸”意味著模型使用過去的值來預測未來的值。具體而言,預測值是過去值的加權線性組合。這種類型的回歸方法類似于線性回歸,不同之處在于此處的特征輸入是歷史值。

移動平均是指由白噪聲項的加權線性組合表示的預測,其中白噪聲是隨機信號。這里的想法是,ARMA使用過去值和白噪聲的組合來預測未來的值。自回歸對市場參與者的行為進行建模,例如買賣BTC。白噪聲模型震撼了戰爭、經濟衰退和政治事件等事件。

我們可以使用 SARIMAX 軟件包定義 ARMA 模型:

from statsmodels.tsa.statespace.sarimax import SARIMAX

 讓我們定義我們的輸入:

y = train['BTC-USD']

然后讓我們定義我們的模型。為了定義一個帶有 SARIMAX 類的 ARMA 模型,我們傳入了 (1, 0 ,1) 的階數參數。Alpha 對應于我們預測的顯著性水平。通常,我們選擇 alpha = 0.05。在這里,ARIMA 算法計算預測周圍的上限和下限,因此實際值有 5% 的可能性超出上限和下限。這意味著有 95% 的置信度認為實際值將介于我們預測的上限和下限之間。

ARMAmodel = SARIMAX(y, order = (1, 0, 1))

然后,我們可以擬合我們的模型:

ARMAmodel = ARMAmodel.fit()

生成我們的預測:

y_pred = ARMAmodel.get_forecast(len(test.index))
y_pred_df = y_pred.conf_int(alpha = 0.05) 
y_pred_df["Predictions"] = ARMAmodel.predict(start = y_pred_df.index[0], end = y_pred_df.index[-1])
y_pred_df.index = test.index
y_pred_out = y_pred_df["Predictions"]

并繪制結果:

plt.plot(y_pred_out, color='green', label = 'Predictions')
plt.legend()

我們還可以使用均方根誤差來評估性能:

import numpy as np
from sklearn.metrics import mean_squared_error

arma_rmse = np.sqrt(mean_squared_error(test["BTC-USD"].values, y_pred_df["Predictions"]))
print("RMSE: ",arma_rmse)

RMSE相當高,我們可以在檢查地塊時猜到這一點。不幸的是,當價格實際上漲時,該模型預測價格會下降。同樣,ARMA 的局限性在于它無法用于非平穩時間序列,并且無法捕獲季節性。讓我們看看我們是否可以使用 ARIMA 模型提高性能。

自回歸綜合移動平均線 (ARIMA)

讓我們從統計庫導入 ARIMA 包:

from statsmodels.tsa.arima.model import ARIMA

ARIMA 任務有三個參數。第一個參數對應于滯后(過去的值),第二個參數對應于差分(這就是使非平穩數據平穩的原因),最后一個參數對應于白噪聲(用于模擬沖擊事件)。

讓我們定義一個帶有階參數 (2,2,2) 的 ARIMA 模型:

ARIMAmodel = ARIMA(y, order = (2, 2, 2))
ARIMAmodel = ARIMAmodel.fit()

y_pred = ARIMAmodel.get_forecast(len(test.index))
y_pred_df = y_pred.conf_int(alpha = 0.05) 
y_pred_df["Predictions"] = ARIMAmodel.predict(start = y_pred_df.index[0], end = y_pred_df.index[-1])
y_pred_df.index = test.index
y_pred_out = y_pred_df["Predictions"] 
plt.plot(y_pred_out, color='Yellow', label = 'ARIMA Predictions')
plt.legend()


import numpy as np
from sklearn.metrics import mean_squared_error

arma_rmse = np.sqrt(mean_squared_error(test["BTC-USD"].values, y_pred_df["Predictions"]))
print("RMSE: ",arma_rmse)

我們看到 ARIMA 預測(黃色)位于 ARMA 預測之上。讓我們嘗試將差異參數增加到 ARIMA (2,3,2):

我們看到這有助于捕捉價格上漲的方向。讓我們嘗試使用 ARIMA(5,4,2) 進一步使用參數:

我們的 RMSE 為 793,比 ARMA 好。另一種方法是根據時間特征(如周、月和年)訓練線性回歸模型。這種方法是有限的,因為它不能像 ARIMA 方法那樣捕獲自回歸和移動平均特征。此外,ARIMA 根據去趨勢滯后目標值訓練回歸器,而不是線性回歸等自變量。話雖如此,ARIMA的表現可能會優于在獨立時間變量上訓練的線性回歸模型。

最后,讓我們看看包含季節性的SARIMA是否會進一步提高性能。

季節性 ARIMA (SARIMA)

季節性 ARIMA 捕捉歷史價值、沖擊事件和季節性。我們可以使用 SARIMAX 類定義一個 SARIMA 模型:

SARIMAXmodel = SARIMAX(y, order = (5, 4, 2), seasonal_order=(2,2,2,12))
SARIMAXmodel = SARIMAXmodel.fit()

y_pred = SARIMAXmodel.get_forecast(len(test.index))
y_pred_df = y_pred.conf_int(alpha = 0.05) 
y_pred_df["Predictions"] = SARIMAXmodel.predict(start = y_pred_df.index[0], end = y_pred_df.index[-1])
y_pred_df.index = test.index
y_pred_out = y_pred_df["Predictions"] 
plt.plot(y_pred_out, color='Blue', label = 'SARIMA Predictions')
plt.legend()

在這里,我們的 RMSE 為 966,比 ARIMA 略差。這可能是由于缺乏超參數優化。如果我們對 SARIMA 模型的參數進行調整,我們應該能夠進一步提高性能。

我鼓勵您嘗試使用超參數,看看是否可以構建一個性能優于 ARIMA 的 SARIMA 模型。此外,您可以采用網格搜索等方法通過算法找到每個模型的最佳參數。

總結

在這篇文章中,你發現了一套經典的時間序列預測方法,你可以在時間序列數據集上測試和調整這些方法。這些方法專為各種時序數據集而設計,可用于在各種方案和行業中實現它們。無論您是在處理股票市場趨勢、天氣預報還是銷售預測,這些方法都可以提供有價值的預測。

責任編輯:華軒 來源: 數據分析及應用
相關推薦

2024-10-24 16:46:41

2023-01-24 17:14:59

2024-05-09 16:23:14

2021-12-09 15:37:50

自動駕駛數據人工智能

2024-06-27 16:38:57

2023-02-21 14:58:12

間序列周期數據集

2021-07-01 21:46:30

PythonHot-Winters數據

2021-04-07 10:02:00

XGBoostPython代碼

2023-10-13 15:34:55

時間序列TimesNet

2021-07-02 10:05:45

PythonHot-winters指數平滑

2024-07-18 13:13:58

2025-01-14 13:32:47

2023-07-05 07:21:34

時間序列學習框架模型

2023-07-19 15:28:10

時間序列分析季節性

2023-03-16 18:09:00

機器學習數據集

2022-08-16 09:00:00

機器學習人工智能數據庫

2023-01-30 17:10:23

DeepTime元學習

2017-11-20 11:51:40

KerasLSTM深度學習

2023-03-16 07:27:30

CnosDB數據庫

2024-11-15 15:20:00

模型數據
點贊
收藏

51CTO技術棧公眾號

成年人精品视频| 欧美浪妇xxxx高跟鞋交| 成人淫片在线看| 久久国产精品二区| 亚洲专区视频| 91精品欧美福利在线观看| 青草视频在线观看视频| 黄色毛片在线看| 国产美女av一区二区三区| 7777kkkk成人观看| 好吊日在线视频| 欧美一区二区三区红桃小说| 欧美体内she精视频| 黄色一级片在线看| 一区二区三区视频在线观看视频| 高清在线成人网| 国产精品扒开腿做| 国产 日韩 欧美 成人| 欧美码中文字幕在线| 精品国产电影一区二区| 激情黄色小视频| 欧美xxxxxx| 亚洲va欧美va国产va天堂影院| 日韩欧美一区二区三区四区五区| 国产 欧美 自拍| 老司机精品视频导航| 91国产一区在线| 永久久久久久久| 精品欧美久久| 日韩精品中文字幕有码专区| 制服下的诱惑暮生| 国产欧美自拍| 一本一道波多野结衣一区二区| 免费观看亚洲视频| 日韩黄色影院| 国产精品色哟哟网站| 久久久综合香蕉尹人综合网| 亚洲成熟女性毛茸茸| 另类调教123区| 国产精品日韩在线一区| 黄色av网站免费| 国产欧美欧美| 91成人免费观看网站| 国产一级片久久| 欧美一区成人| 日韩中文字幕在线免费观看| 亚洲一二三四视频| 国产中文字幕一区二区三区| 日韩福利在线播放| 成年人的黄色片| 超碰97成人| 精品国产一区二区三区忘忧草| 国产5g成人5g天天爽| 在线免费观看亚洲| 欧美精品视频www在线观看 | 91亚洲国产成人久久精品网站| 蜜臀99久久精品久久久久小说| 性色一区二区三区| 国产成人avxxxxx在线看| 国产在线观看黄色| 丝袜亚洲精品中文字幕一区| 国产精品igao视频| 九九热最新视频| 免费精品视频在线| 成人性生交大片免费看小说| 国产ts变态重口人妖hd| 成人午夜视频网站| 国产精品日韩高清| 日韩精品系列| 国产精品免费视频一区| 中文字幕日韩精品一区二区| av在线下载| 亚洲国产一区在线观看| www.av中文字幕| 高清不卡亚洲| 欧美日韩精品是欧美日韩精品| 午夜国产一区二区三区| 欧美美女被草| 日韩精品一区国产麻豆| 精品无码人妻少妇久久久久久| 国产一区二区在线视频你懂的| 日韩大片免费观看视频播放| 最近中文字幕在线mv视频在线| 成人情趣视频| 色综合色综合久久综合频道88| 18精品爽视频在线观看| 久久精品五月| 91亚洲午夜在线| 日本高清视频免费观看| 国产欧美视频在线观看| 黄色污污在线观看| 中文字幕在线直播| 欧美精品日韩一区| 性色av蜜臀av浪潮av老女人| 国产亚洲一区| 欧美人与性动交| 国产女主播喷水视频在线观看 | 日韩免费在线播放| 国产精品久久免费| 91蜜桃在线观看| 国产精品一区在线免费观看| 国产污视频在线播放| 欧美喷潮久久久xxxxx| 男人网站在线观看| 天天综合国产| 日本免费久久高清视频| 精品国产18久久久久久| 国产拍揄自揄精品视频麻豆| www插插插无码免费视频网站| 第四色男人最爱上成人网| 欧美草草影院在线视频| 欧美日韩中文字幕视频| 亚洲久久一区| 91在线精品播放| 成人免费在线电影| 天天综合网天天综合色| 99精品视频免费版的特色功能| 亚洲成a人片77777在线播放| 欧美成aaa人片免费看| 国产精品xxxxxx| www.亚洲在线| 欧美交换配乱吟粗大25p| 久久久久黄色| 国产亚洲精品美女| 国产91国语对白在线| av中文字幕在线不卡| 欧美一二三不卡| 亚洲精品乱码日韩| 亚洲图片欧美日产| 人妻丰满熟妇av无码区| 99麻豆久久久国产精品免费优播| 在线观看免费91| 九九久久国产| 国产香蕉一区二区三区在线视频| 成年免费在线观看| 本田岬高潮一区二区三区| 乱子伦一区二区| 韩国三级成人在线| 中文字幕欧美日韩| 一区二区自拍偷拍| 中文字幕乱码日本亚洲一区二区| 免费日韩中文字幕| 精品久久精品| 国产精品久久久久久久久久尿 | 2023国产一二三区日本精品2022| 美女扒开大腿让男人桶| 成人高潮视频| 68精品久久久久久欧美| 天堂在线资源网| 亚洲大片一区二区三区| 中文字幕乱码一区| 亚洲自拍另类| 日本欧洲国产一区二区| 日韩制服诱惑| 中文字幕欧美日韩| 国产强伦人妻毛片| 亚洲综合999| 国产 xxxx| 免费中文字幕日韩欧美| 日本在线高清视频一区| 成人国产一区| 久久久国产精品视频| 国产黄色av片| 精品免费在线观看| 少妇久久久久久久久久| 蜜桃视频在线一区| 热久久最新地址| 理论片一区二区在线| 欧美一级片在线播放| 国产小视频在线观看| 欧美日韩aaa| 久久久久久久久久久久久久久久久| 国产成人午夜高潮毛片| 国产极品尤物在线| 日本成人小视频| 亚洲一区二区久久久久久| 久久99亚洲网美利坚合众国| 亚洲精品www久久久久久广东| 无码人妻aⅴ一区二区三区有奶水| 国产精品视频一二三| 国产又粗又猛又爽又黄| 国产午夜精品一区二区三区欧美| 亚洲乱码一区二区三区| 日韩视频一区二区三区四区| 欧亚精品中文字幕| 免费在线观看黄| 亚洲精品国精品久久99热 | 欧美不卡一区二区三区| 亚洲一区欧美在线| 国产精品国产a| 中文视频在线观看| 久久www免费人成看片高清| 人人妻人人澡人人爽欧美一区双 | 激情五月五月婷婷| 四虎884aa成人精品最新| 国产精品女人网站| 爱情岛亚洲播放路线| 最新的欧美黄色| 日韩一区免费视频| 欧美男同性恋视频网站| 五月婷婷亚洲综合| 亚洲精品久久嫩草网站秘色| 91视频免费观看网站| 国产69精品久久99不卡| 麻豆三级在线观看| 国产日韩欧美一区二区三区在线观看| 亚洲午夜精品国产| 天天久久夜夜| 99国产超薄肉色丝袜交足的后果| av在线日韩| 91av免费观看91av精品在线| 国产黄大片在线观看画质优化| 亚洲精品美女视频| 亚洲国产精品视频在线| 欧美日韩一区二区不卡| 日韩不卡在线播放| 亚洲成人av一区二区| 亚洲综合网在线| 中文字幕中文字幕一区| 怡红院一区二区三区| av在线播放成人| 日本成人在线免费| 国产一区二区在线免费观看| 91淫黄看大片| 欧美亚洲在线| 欧美日韩亚洲一| 亚洲电影av| 97超碰国产精品| 亚洲精品99| 中文字幕一区二区三区乱码| 欧美日韩国产一区二区三区不卡 | 色综合888| 亚洲国产婷婷香蕉久久久久久| 97人妻精品一区二区三区视频 | 日韩在线高清| 天天爽天天狠久久久| 女人丝袜激情亚洲| 牛人盗摄一区二区三区视频| 老司机凹凸av亚洲导航| 精品国产一区二区三区麻豆小说| 欧美日韩黄网站| 91黄色精品| 97久久综合精品久久久综合| 91免费观看| 成人免费直播在线| 国产女人水真多18毛片18精品 | 久草视频在线资源| 亚洲女人的天堂| 欧美日韩三级在线观看| 亚洲欧美日本在线| 欧美卡一卡二卡三| 亚洲女同ⅹxx女同tv| 免费中文字幕视频| 亚洲第一av色| 4438国产精品一区二区| 日本福利一区二区| 涩涩视频在线观看| 欧美日韩一区二区三区四区五区 | 日本精品不卡| 国产精品偷伦免费视频观看的| 日韩成人精品一区二区三区| 亚洲伊人久久综合| 国产精品对白| 欧美日韩三区四区| 婷婷久久一区| 国产黄色激情视频| 99精品国产在热久久| 欧美日韩一区二区在线免费观看| 日本不卡一二三区黄网| 亚洲高清视频免费| www.99精品| 国产美女永久免费无遮挡| 1区2区3区国产精品| 中文字幕一区二区三区手机版| 精品人伦一区二区三区蜜桃网站 | 欧美视频www| 亚洲成人手机在线| 日批视频免费在线观看| 欧美精品一级二级| 日本精品999| 神马国产精品影院av| 欧美色图天堂| 国产精品高潮在线| 伊色综合久久之综合久久| 欧美18视频| 羞羞答答成人影院www| 成人免费在线网| 免费高清在线视频一区·| 久久久国产精品久久久| 26uuu精品一区二区在线观看| 麻豆视频免费在线播放| 亚洲国产乱码最新视频| 中文字幕在线2018| 亚洲激情久久久| 久久bbxx| 国产成人av在线播放| 秋霞一区二区三区| 午夜精品亚洲一区二区三区嫩草 | 国产视频一区二区三| 日韩精品在线第一页| 国产精品久久麻豆| 欧美在线观看视频| 在这里有精品| 亚洲欧洲国产精品久久| 亚洲欧洲日本mm| 人人爽人人爽av| 国产亚洲综合av| 国产在线视频二区| 欧美精品日日鲁夜夜添| 国产综合在线观看| 韩剧1988免费观看全集| 日韩毛片免费视频一级特黄| 久久一区二区精品| 欧美日韩少妇| 三日本三级少妇三级99| 中文字幕欧美日本乱码一线二线| 日干夜干天天干| 91精品在线观看入口| www.亚洲.com| 欧美伊久线香蕉线新在线| 国产毛片久久久| 91精品国产毛片武则天| 久久福利视频一区二区| www.色多多| 欧美午夜激情小视频| 污污的视频网站在线观看| 欧美国产第二页| 亚洲精品在线a| 久久久久久久久网| 国产一本一道久久香蕉| 午夜黄色福利视频| 欧美调教femdomvk| 91xxx在线观看| 国产精品免费观看在线| 成人嘿咻视频免费看| 免费日韩中文字幕| 欧美国产日韩a欧美在线观看 | 97超碰免费在线| 成人91免费视频| 国产主播精品| 美女露出粉嫩尿囗让男人桶| 一区二区三区在线视频观看58| 国产又黄又爽视频| 欧美插天视频在线播放| 在线一区二区三区视频| av免费看网址| 91久色porny| 日韩熟女一区二区| 亚洲一级黄色av| 99欧美精品| av动漫免费观看| 国精产品一区一区三区mba桃花 | 色狠狠桃花综合| 国产69久久| 国产在线一区二区三区| 伊人久久大香线| 成人欧美精品一区二区| 婷婷开心激情综合| 激情小视频在线观看| 国产精品福利网站| 天天综合精品| 免费a v网站| 在线亚洲精品福利网址导航| 日本福利在线| 国产精品国产精品国产专区蜜臀ah| 精品动漫3d一区二区三区免费| 五十路六十路七十路熟婆 | 久久久久久国产精品三级玉女聊斋| a级日韩大片| 亚洲性生活网站| ●精品国产综合乱码久久久久| www.亚洲黄色| 欧美重口另类videos人妖| 欧美一级精品| 国产精品二区视频| 亚洲色图14p| 日韩av免费| 色呦呦日韩精品| 一级在线观看视频| 日韩一区二区三区四区五区六区| 免费电影视频在线看| 蜜桃传媒视频麻豆第一区免费观看 | 亚洲精品国产精品久久清纯直播| 另类专区亚洲| 免费观看黄色大片| 91丨porny丨在线| 97国产成人无码精品久久久| 国内偷自视频区视频综合| 色综合中文网| 日批视频免费看| 在线观看免费亚洲| 1024在线播放| 日本免费高清不卡| 粉嫩av一区二区三区在线播放| 7799精品视频天天看| 欧美激情18p| 希岛爱理一区二区三区| 国产高清自拍视频| 日韩一级二级三级| 姬川优奈av一区二区在线电影|