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

使用Python從頭開始手寫回歸樹

開發(fā) 前端
在本篇文章中,我們將介紹回歸樹及其基本數(shù)學(xué)原理,并從頭開始使用Python實現(xiàn)一個完整的回歸樹模型。

為了簡單起見這里將使用遞歸來創(chuàng)建樹節(jié)點,雖然遞歸不是一個完美的實現(xiàn),但是對于解釋原理他是最直觀的。

首先導(dǎo)入庫

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

首先需要創(chuàng)建訓(xùn)練數(shù)據(jù),我們的數(shù)據(jù)將具有獨立變量(x)和一個相關(guān)的變量(y),并使用numpy在相關(guān)值中添加高斯噪聲,可以用數(shù)學(xué)表達為

使用Python從頭開始手寫回歸樹

這里的 是噪聲。代碼如下所示。

def f(x):
mu, sigma = 0, 1.5
return -x**2 + x + 5 + np.random.normal(mu, sigma, 1)
num_points = 300
np.random.seed(1)

x = np.random.uniform(-2, 5, num_points)
y = np.array( [f(i) for i in x] )
plt.scatter(x, y, s = 5)

使用Python從頭開始手寫回歸樹

回歸樹

在回歸樹中是通過創(chuàng)建一個多個節(jié)點的樹來預(yù)測數(shù)值數(shù)據(jù)的。 下圖展示了一個回歸樹的樹結(jié)構(gòu)示例,其中每個節(jié)點都有其用于劃分數(shù)據(jù)的閾值。

使用Python從頭開始手寫回歸樹

給定一組數(shù)據(jù),輸入值將通過相應(yīng)的規(guī)格達到葉子節(jié)點。 達到節(jié)點M的所有輸入值可以用X的子集表示。從數(shù)學(xué)上講,讓我們用一個函數(shù)表達此情況,如果給定的輸入值達到節(jié)點M,則可以給出1個,否則為0。

使用Python從頭開始手寫回歸樹

找到分裂數(shù)據(jù)的閾值:通過在每個步驟中選擇2個連續(xù)點并計算其平均值來迭代訓(xùn)練數(shù)據(jù)。 計算的平均值將數(shù)據(jù)分為兩個的閾值。

首先讓我們考慮隨機閾值以演示任何給定的情況。

threshold = 1.5
low = np.take(y, np.where(x < threshold))
high = np.take(y, np.where(x > threshold))
plt.scatter(x, y, s = 5, label = 'Data')
plt.plot([threshold]*2, [-16, 10], 'b--', label = 'Threshold line')
plt.plot([-2, threshold], [low.mean()]*2, 'r--', label = 'Left child prediction line')
plt.plot([threshold, 5], [high.mean()]*2, 'r--', label = 'Right child prediction line')
plt.plot([-2, 5], [y.mean()]*2, 'g--', label = 'Node prediction line')
plt.legend()

使用Python從頭開始手寫回歸樹

藍色垂直線表示單個閾值,我們假設(shè)它是任意兩點的均值,并稍后將其用于劃分數(shù)據(jù)。

我們對這個問題的第一個預(yù)測是所有訓(xùn)練數(shù)據(jù)(y軸)的平均值(綠色水平線)。而兩條紅線是要創(chuàng)建的子節(jié)點的預(yù)測。

很明顯這些平均值都不能很好地代表我們的數(shù)據(jù),但它們的差異也是很明顯的:主節(jié)點預(yù)測(綠線)得到所有訓(xùn)練數(shù)據(jù)的均值,我們將其分為2個子節(jié)點,這2個子節(jié)點有自己的預(yù)測(紅線)。與綠線相比這2個子節(jié)點更好地代表了它們對應(yīng)的訓(xùn)練數(shù)據(jù)。回歸樹就是將不斷地將數(shù)據(jù)分成2個部分——從每個節(jié)點創(chuàng)建2個子節(jié)點,直到達到給定的停止值(這是一個節(jié)點所能擁有的最小數(shù)據(jù)量)。它會提前停止樹的構(gòu)建過程,我們將其稱為預(yù)修剪樹。

為什么會有早停的機制?如果我們要繼續(xù)進行分配直到節(jié)點只有一個值是,這創(chuàng)建一個過度擬合的方案,每個訓(xùn)練數(shù)據(jù)都只能預(yù)測自己。

說明:當(dāng)模型完成時,它不會使用根節(jié)點或任何中間節(jié)點來預(yù)測任何值;它將使用回歸樹的葉子(這將是樹的最后一個節(jié)點)進行預(yù)測。

為了得到最能代表給定閾值數(shù)據(jù)的閾值,我們使用殘差平方和。它可以在數(shù)學(xué)上定義為

使用Python從頭開始手寫回歸樹

讓我們看看這一步是如何工作的。

使用Python從頭開始手寫回歸樹

既然計算了閾值的SSR值,那么可以采用具有最小SSR值的閾值。使用該閾值將訓(xùn)練數(shù)據(jù)分為兩個(低和高部分),其中其中低部分將用于創(chuàng)建左子節(jié)點,高部分將用于創(chuàng)建右子節(jié)點。

def SSR(r, y): 
return np.sum( (r - y)**2 )

SSRs, thresholds = [], []
for i in range(len(x) - 1):
threshold = x[i:i+2].mean()

low = np.take(y, np.where(x < threshold))
high = np.take(y, np.where(x > threshold))

guess_low = low.mean()
guess_high = high.mean()

SSRs.append(SSR(low, guess_low) + SSR(high, guess_high))
thresholds.append(threshold)

print('Minimum residual is: {:.2f}'.format(min(SSRs)))
print('Corresponding threshold value is: {:.4f}'.format(thresholds[SSRs.index(min(SSRs))]))

使用Python從頭開始手寫回歸樹

在進入下一步之前,我將使用pandas創(chuàng)建一個df,并創(chuàng)建一個用于尋找最佳閾值的方法。所有這些步驟都可以在沒有pandas的情況下完成,這里使用他是因為比較方便。

df = pd.DataFrame(zip(x, y.squeeze()), columns = ['x', 'y'])
def find_threshold(df, plot = False):
SSRs, thresholds = [], []
for i in range(len(df) - 1):
threshold = df.x[i:i+2].mean()
low = df[(df.x <= threshold)]
high = df[(df.x > threshold)]
guess_low = low.y.mean()
guess_high = high.y.mean()
SSRs.append(SSR(low.y.to_numpy(), guess_low) + SSR(high.y.to_numpy(), guess_high))
thresholds.append(threshold)

if plot:
plt.scatter(thresholds, SSRs, s = 3)
plt.show()

return thresholds[SSRs.index(min(SSRs))]

創(chuàng)建子節(jié)點

在將數(shù)據(jù)分成兩個部分后就可以為低值和高值找到單獨的閾值。需要注意的是這里要增加一個停止條件;因為對于每個節(jié)點,屬于該節(jié)點的數(shù)據(jù)集中的點會變少,所以我們?yōu)槊總€節(jié)點定義了最小數(shù)據(jù)點數(shù)量。如果不這樣做,每個節(jié)點將只使用一個訓(xùn)練值進行預(yù)測,會導(dǎo)致過擬合。

可以遞歸地創(chuàng)建節(jié)點,我們定義了一個名為TreeNode的類,它將存儲節(jié)點應(yīng)該存儲的每一個值。使用這個類我們首先創(chuàng)建根,同時計算它的閾值和預(yù)測值。然后遞歸地創(chuàng)建它的子節(jié)點,其中每個子節(jié)點類都存儲在父類的left或right屬性中。

在下面的create_nodes方法中,首先將給定的df分成兩部分。然后檢查是否有足夠的數(shù)據(jù)單獨創(chuàng)建左右節(jié)點。如果(對于其中任何一個)有足夠的數(shù)據(jù)點,我們計算閾值并使用它創(chuàng)建一個子節(jié)點,用這個新節(jié)點作為樹再次調(diào)用create_nodes方法。

class TreeNode():
def __init__(self, threshold, pred):
self.threshold = threshold
self.pred = pred
self.left = None
self.right = None
def create_nodes(tree, df, stop):
low = df[df.x <= tree.threshold]
high = df[df.x > tree.threshold]

if len(low) > stop:
threshold = find_threshold(low)
tree.left = TreeNode(threshold, low.y.mean())
create_nodes(tree.left, low, stop)

if len(high) > stop:
threshold = find_threshold(high)
tree.right = TreeNode(threshold, high.y.mean())
create_nodes(tree.right, high, stop)

threshold = find_threshold(df)
tree = TreeNode(threshold, df.y.mean())
create_nodes(tree, df, 5)

這個方法在第一棵樹上進行了修改,因為它不需要返回任何東西。雖然遞歸函數(shù)通常不是這樣寫的(不返回),但因為不需要返回值,所以當(dāng)沒有激活if語句時,不做任何操作。

在完成后可以檢查此樹結(jié)構(gòu),查看它是否創(chuàng)建了一些可以擬合數(shù)據(jù)的節(jié)點。 這里將手動選擇第一個節(jié)點及其對根閾值的預(yù)測。

plt.scatter(x, y, s = 0.5, label = 'Data')
plt.plot([tree.threshold]*2, [-16, 10], 'r--',
label = 'Root threshold')
plt.plot([tree.right.threshold]*2, [-16, 10], 'g--',
label = 'Right node threshold')
plt.plot([tree.threshold, tree.right.threshold],
[tree.right.left.pred]*2,
'g', label = 'Right node prediction')
plt.plot([tree.left.threshold]*2, [-16, 10], 'm--',
label = 'Left node threshold')
plt.plot([tree.left.threshold, tree.threshold],
[tree.left.right.pred]*2,
'm', label = 'Left node prediction')
plt.plot([tree.left.left.threshold]*2, [-16, 10], 'k--',
label = 'Second Left node threshold')
plt.legend()

使用Python從頭開始手寫回歸樹

這里看到了兩個預(yù)測:

  • 第一個左節(jié)點對高值的預(yù)測(高于其閾值)
  • 第一個右節(jié)點對低值(低于其閾值)的預(yù)測

這里我手動剪切了預(yù)測線的寬度,因為如果給定的x值達到了這些節(jié)點中的任何一個,則將以屬于該節(jié)點的所有x值的平均值表示,這也意味著沒有其他x值參與 在該節(jié)點的預(yù)測中(希望有意義)。

這種樹形結(jié)構(gòu)遠不止兩個節(jié)點那么簡單,所以我們可以通過如下調(diào)用它的子節(jié)點來檢查一個特定的葉子節(jié)點。

tree.left.right.left.left

這當(dāng)然意味著這里有一個向下4個子結(jié)點長的分支,但它可以在樹的另一個分支上深入得多。

預(yù)測

我們可以創(chuàng)建一個預(yù)測方法來預(yù)測任何給定的值。

def predict(x):
curr_node = tree
result = None
while True:
if x <= curr_node.threshold:
if curr_node.left: curr_node = curr_node.left
else:
break
elif x > curr_node.threshold:
if curr_node.right: curr_node = curr_node.right
else:
break

return curr_node.pred

預(yù)測方法做的是沿著樹向下,通過比較我們的輸入和每個葉子的閾值。如果輸入值大于閾值,則轉(zhuǎn)到右葉,如果小于閾值,則轉(zhuǎn)到左葉,以此類推,直到到達任何底部葉子節(jié)點。然后使用該節(jié)點自身的預(yù)測值進行預(yù)測,并與其閾值進行最后的比較。

使用x = 3進行測試(在創(chuàng)建數(shù)據(jù)時,可以使用上面所寫的函數(shù)計算實際值。-3**2+3+5 = -1,這是期望值),我們得到:

predict(3)
# -1.23741

計算誤差

這里用相對平方誤差驗證數(shù)據(jù)

使用Python從頭開始手寫回歸樹

def RSE(y, g): 
return sum(np.square(y - g)) / sum(np.square(y - 1 / len(y)*sum(y)))
x_val = np.random.uniform(-2, 5, 50)
y_val = np.array( [f(i) for i in x_val] ).squeeze()
tr_preds = np.array( [predict(i) for i in df.x] )
val_preds = np.array( [predict(i) for i in x_val] )
print('Training error: {:.4f}'.format(RSE(df.y, tr_preds)))
print('Validation error: {:.4f}'.format(RSE(y_val, val_preds)))

可以看到誤差并不大,結(jié)果如下

使用Python從頭開始手寫回歸樹

概括的步驟

使用Python從頭開始手寫回歸樹

更深入的模型

一個更適合回歸樹模型的數(shù)據(jù):因為我們的數(shù)據(jù)是多項式生成的數(shù)據(jù),所以使用多項式回歸模型可以更好地擬合。我們更換一下訓(xùn)練數(shù)據(jù),把新函數(shù)設(shè)為

使用Python從頭開始手寫回歸樹

def f(x):
mu, sigma = 0, 0.5
if x < 3: return 1 + np.random.normal(mu, sigma, 1)
elif x >= 3 and x < 6: return 9 + np.random.normal(mu, sigma, 1)
elif x >= 6: return 5 + np.random.normal(mu, sigma, 1)

np.random.seed(1)

x = np.random.uniform(0, 10, num_points)
y = np.array( [f(i) for i in x] )
plt.scatter(x, y, s = 5)

使用Python從頭開始手寫回歸樹

在此數(shù)據(jù)集上運行了上面的所有相同過程,結(jié)果如下

比我們從多項式數(shù)據(jù)中獲得的誤差低。

最后共享一下上面動圖的代碼:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
#===================================================Create Data
def f(x):
mu, sigma = 0, 1.5
return -x**2 + x + 5 + np.random.normal(mu, sigma, 1)
np.random.seed(1)

x = np.random.uniform(-2, 5, 300)
y = np.array( [f(i) for i in x] )
p = x.argsort()
x = x[p]
y = y[p]
#===================================================Calculate Thresholds
def SSR(r, y): #send numpy array
return np.sum( (r - y)**2 )
SSRs, thresholds = [], []
for i in range(len(x) - 1):
threshold = x[i:i+2].mean()

low = np.take(y, np.where(x < threshold))
high = np.take(y, np.where(x > threshold))

guess_low = low.mean()
guess_high = high.mean()

SSRs.append(SSR(low, guess_low) + SSR(high, guess_high))
thresholds.append(threshold)
#===================================================Animated Plot
fig, (ax1, ax2) = plt.subplots(2,1, sharex = True)
x_data, y_data = [], []
x_data2, y_data2 = [], []
ln, = ax1.plot([], [], 'r--')
ln2, = ax2.plot(thresholds, SSRs, 'ro', markersize = 2)
line = [ln, ln2]
def init():
ax1.scatter(x, y, s = 3)
ax1.title.set_text('Trying Different Thresholds')
ax2.title.set_text('Threshold vs SSR')
ax1.set_ylabel('y values')
ax2.set_xlabel('Threshold')
ax2.set_ylabel('SSR')
return line
def update(frame):
x_data = [x[frame:frame+2].mean()] * 2
y_data = [min(y), max(y)]
line[0].set_data(x_data, y_data)
x_data2.append(thresholds[frame])
y_data2.append(SSRs[frame])
line[1].set_data(x_data2, y_data2)
return line
ani = FuncAnimation(fig, update, frames = 298,
init_func = init, blit = True)
plt.show()


責(zé)任編輯:華軒 來源: 今日頭條
相關(guān)推薦

2023-08-11 17:30:54

決策樹機器學(xué)習(xí)算法

2017-02-23 08:45:36

Python決策樹數(shù)據(jù)集

2013-01-08 11:02:26

IBMdW

2013-05-23 10:10:53

PHP5.5PHP編譯php

2017-08-28 18:41:34

PythonLogistic回歸隨機梯度下降

2021-06-04 22:43:32

Python本地搜索

2009-05-08 09:40:07

網(wǎng)易魔獸暴雪

2020-06-11 08:32:50

Python遺傳算法代碼

2020-11-17 08:09:01

webpack配置項腳手架

2022-11-23 16:20:12

GPU編程流和事件開發(fā)

2024-09-26 16:51:23

2023-05-24 16:20:39

DevOpsCI/CD 管道軟件開發(fā)

2021-02-20 21:29:40

GitHub代碼開發(fā)者

2023-02-06 16:01:26

數(shù)據(jù)中心服務(wù)器

2020-10-18 07:15:53

Python異常檢測算法開發(fā)

2021-07-06 14:21:05

物聯(lián)網(wǎng)智慧城市網(wǎng)絡(luò)安全

2022-11-14 10:49:33

Linux發(fā)行版

2024-03-20 12:44:35

AI訓(xùn)練

2022-11-13 15:48:19

編程線程GPU

2022-07-22 07:18:53

代碼DeepMind
點贊
收藏

51CTO技術(shù)棧公眾號

国产三级av片| 女人被狂躁c到高潮| 3d玉蒲团在线观看| 高清视频一区二区| 欧美一级片免费在线| 五月天精品在线| 日韩精品视频中文字幕| 亚洲超丰满肉感bbw| 欧美极品色图| 国产乱码精品一区二区| 日韩视频三区| 综合国产在线视频| jjzzjjzz欧美69巨大| 国产一区二区精品调教| 亚洲精品日韩一| 欧美日韩国产综合在线| av一区二区三| 日韩一区精品视频| 久久人人97超碰精品888| 手机毛片在线观看| 老牛国内精品亚洲成av人片| 欧美又粗又大又爽| 成人免费观看cn| 天天影视久久综合| 久久综合九色综合欧美98| 国产精品入口福利| 亚洲日本韩国在线| 欧美疯狂party性派对| 亚洲国产欧美自拍| 国产成年人视频网站| 亚洲最大成人| 亚洲一区欧美一区| 四虎免费在线观看视频| 超碰免费在线观看| 91免费观看在线| 成人免费视频网站入口| 国产毛片毛片毛片毛片| 日韩国产精品久久久久久亚洲| 欧美激情一级精品国产| 亚洲一级生活片| 成人激情开心网| 日韩国产中文字幕| 亚洲最大免费视频| h视频久久久| 日韩免费电影网站| 杨幂一区二区国产精品| 成人在线视频www| 欧美日韩国产经典色站一区二区三区 | 香蕉久久夜色精品国产更新时间| 日韩免费电影一区| 国产成人av免费观看| 99精品国产九九国产精品| 精品视频1区2区3区| 成人精品视频一区二区| 中文字幕在线中文字幕在线中三区| 亚洲一区二区视频在线观看| 青青青在线观看视频| 啪啪免费视频一区| 夜夜嗨av一区二区三区网页 | 黑人巨大精品欧美一区二区小视频| 国产强被迫伦姧在线观看无码| 久久精品国产77777蜜臀| 国产精品露脸自拍| 中文字幕在线视频第一页| 免费观看在线色综合| 国产精品wwwwww| 精人妻无码一区二区三区| 视频一区视频二区中文字幕| 国产va免费精品高清在线| 日韩欧美成人一区二区三区 | 一区二区三区日韩欧美精品| 人妻激情另类乱人伦人妻| 牛牛电影国产一区二区| 亚洲国产精品久久艾草纯爱| 日韩欧美不卡在线| 日本不卡免费高清视频在线| 欧美视频在线观看免费| 欧美丰满熟妇xxxxx| 丁香婷婷久久| 日韩精品一区二区三区在线播放 | 欧美国产欧美综合| 一区二区在线观| 污视频在线看网站| 欧美日韩国产精品一区二区不卡中文| 337p粉嫩大胆噜噜噜鲁| 国产69精品久久久久9999人| 91精品国产全国免费观看| 亚洲美女高潮久久久| 私拍精品福利视频在线一区| 中文字幕日韩在线观看| 免费日韩在线视频| 老**午夜毛片一区二区三区| 国产九九精品视频| 亚洲国产中文字幕在线| 91麻豆国产福利精品| 亚洲乱码一区二区三区 | 亚洲丶国产丶欧美一区二区三区| 男人靠女人免费视频网站 | 国产亚洲毛片在线| 国产精品尤物福利片在线观看| va婷婷在线免费观看| 26uuu久久天堂性欧美| 亚洲日本理论电影| 电影在线观看一区| 欧美日韩国产精品成人| 在线免费播放av| 在线观看免费一区二区| 国产成人a亚洲精品| 性生交大片免费看女人按摩| 国产拍欧美日韩视频二区| 欧美日韩一级在线| 精品无人乱码一区二区三区| 欧美变态口味重另类| 国产探花视频在线| 国产精品资源| 99视频免费观看| 夜级特黄日本大片_在线| 亚洲一区二区三区中文字幕| 岛国毛片在线播放| 久久99高清| 久久久久久久久久久国产| 中国a一片一级一片| 91网站在线播放| 特级西西444| 久久av影院| 国产视频精品自拍| 18精品爽视频在线观看| 麻豆成人免费电影| 日韩欧美亚洲在线| 中文一区一区三区高中清不卡免费| 制服丝袜中文字幕一区| 国产精品天天干| 亚洲中字黄色| 精品视频导航| 1024在线看片你懂得| 日韩免费看网站| 亚洲欧美一区二区三区四区五区| 久久精品国产亚洲高清剧情介绍| 蜜桃传媒视频麻豆一区 | 女人扒开双腿让男人捅| 日韩免费特黄一二三区| 日韩免费观看视频| 午夜成人免费影院| 亚洲国产成人91porn| 中文字幕乱妇无码av在线| 国产精品videosex性欧美| 国产精品18久久久久久首页狼| 少妇一区二区三区四区| 亚洲一区二区三区激情| 99中文字幕在线| 偷偷www综合久久久久久久| 国产精品久久久久久婷婷天堂 | 日韩视频免费中文字幕| 中文字幕乱码视频| 国产精品污污网站在线观看| 污版视频在线观看| 久久亚洲国产| 91在线视频导航| 日韩av激情| 精品国产乱码久久久久久久 | 国产精品久久久久久久久久久久午夜片 | 在线观看日本www| 欧美成人tv| 肥熟一91porny丨九色丨| 欧美xxx黑人xxx水蜜桃| 亚洲电影中文字幕| 亚洲精品成人在线视频| 欧美激情一区二区在线| 亚洲高清在线不卡| 91久久午夜| 麻豆成人在线播放| 欧美影视资讯| 成年人精品视频| 黄色小视频免费在线观看| 欧美日韩加勒比精品一区| 中文字幕成人动漫| 国产在线精品视频| 欧美一级视频免费看| 免费欧美一区| 国产日产欧美a一级在线| 综合久久2o19| 日韩经典一区二区三区| 在线播放精品视频| 亚洲精品国产精品乱码不99| 一本色道综合久久欧美日韩精品 | 在线免费看a| 日韩美女视频在线| 精品免费囯产一区二区三区| 国产精品私人影院| 年下总裁被打光屁股sp| 久久精品日产第一区二区 | 91精品国产色综合久久| 中日韩精品视频在线观看| 欧美激情一区二区| 国产精品91av| 日韩和的一区二区| 野外做受又硬又粗又大视频√| 精品国产一区二区三区香蕉沈先生 | aaaaaa亚洲| 亚洲先锋影音| 欧美一区二区三区四区在线观看地址| 999精品视频在线观看| 2019中文字幕免费视频| 国产素人视频在线观看| 亚洲乱码一区二区| 国产视频手机在线观看| 色8久久精品久久久久久蜜| 精国产品一区二区三区a片| 国产女主播一区| 精品国产av色一区二区深夜久久| 精品亚洲免费视频| 91淫黄看大片| 亚洲一区欧美激情| 国产日产欧美一区二区| 成人同人动漫免费观看| 久久精品国产一区二区三区日韩 | 免费看啪啪网站| 爽爽窝窝午夜精品一区二区| www.久久久| 亚洲电影二区| 国产精品对白刺激| 日本三级一区| 久久琪琪电影院| 成人福利网站| 久久在线精品视频| 北条麻妃在线| 国产一区二区三区在线观看网站 | 国产精品久久久久三级| 波多野结衣 在线| 国产在线精品一区二区不卡了| 天天视频天天爽| 久久综合中文| 精品久久久久久久免费人妻| 一本不卡影院| 欧美大片在线播放| 在线看片日韩| 日本福利视频一区| 亚洲国产一区二区三区a毛片| 日韩一级片一区二区| 欧美日韩精品| 波多野结衣与黑人| 国产一区亚洲| 免费看欧美黑人毛片| 国模一区二区三区| 久久亚洲精品无码va白人极品| 亚洲天堂激情| 男人日女人视频网站| 午夜在线视频一区二区区别| 国产精品va无码一区二区| 国产日韩高清一区二区三区在线| 免费看国产曰批40分钟| 亚洲一区不卡| 无码内射中文字幕岛国片| 日韩经典中文字幕一区| 中文字幕中文在线| 国产在线一区二区| 精人妻一区二区三区| 92国产精品观看| b站大片免费直播| 国产精品美女久久久久久久| 精品国产国产综合精品| 一区二区三区在线免费| 色欲一区二区三区精品a片| 亚洲欧美另类小说视频| 久久综合加勒比| 欧美视频一区二区三区…| 中文 欧美 日韩| 91精品黄色片免费大全| 亚洲国产精品久久久久久久| 亚洲精品国产精品国产自| 男女网站在线观看| 最新国产成人av网站网址麻豆| 国产成人l区| 国内精品400部情侣激情| 电影一区二区三| 国产一区二区在线免费| 91精品尤物| 日韩成人在线资源| 你懂的国产精品| 日本中文字幕片| 久草热8精品视频在线观看| 久久久久久久久久影视| 久久亚洲精品小早川怜子| 青青操在线播放| 亚洲地区一二三色| 亚洲精品一区二区二区| 精品毛片乱码1区2区3区| 久草福利在线| 久久久久久久久久久成人| 嫩草伊人久久精品少妇av杨幂| 亚洲一区二区三区在线视频| 中日韩免视频上线全都免费| 伊人精品久久久久7777| 亚洲国产免费| 在线免费黄色网| 91视视频在线观看入口直接观看www| 91禁男男在线观看| 午夜一区二区三区在线观看| 在线观看毛片av| 日韩精品久久久久久久玫瑰园| 日本欧美在线视频免费观看| 97精品久久久| 日本在线成人| 日韩一区不卡| 日韩午夜精品| 三级黄色片播放| 国产日韩欧美综合在线| 国产极品在线播放| 欧美精品一级二级三级| 可以直接在线观看的av| 韩国视频理论视频久久| 精品国产一区二| 亚洲精品人成| 亚洲综合日韩| 在线观看免费视频黄| 亚洲摸摸操操av| 天堂免费在线视频| 精品亚洲夜色av98在线观看| 不卡av免费观看| 91视频免费在线| 欧美成人直播| 亚洲欧美自拍另类日韩| 久久久久久久久久久黄色| 日韩三级免费看| 精品国产91洋老外米糕| 蜜桃视频网站在线观看| 国产精品一区二区久久| 欧美精选一区二区三区| 欧美视频免费播放| 99这里只有久久精品视频| 免费在线一级片| 日韩一区二区电影| 亚洲淫性视频| 3d精品h动漫啪啪一区二区| 欧美成人自拍| 日韩成人精品视频在线观看| 国产精品乱子久久久久| 中国老头性行为xxxx| 中文字幕久久亚洲| 国产成人精品一区二区三区免费| 欧洲高清一区二区| 葵司免费一区二区三区四区五区| 中国毛片在线观看| 日本韩国一区二区| 国产美女视频一区二区三区| 国产精品成人一区二区| 成人精品影视| 美女网站色免费| 亚洲天堂2014| 精品人妻无码一区二区色欲产成人 | 日本激情小视频| 在线视频你懂得一区二区三区| 国产综合在线观看| 国产精品电影观看| 97精品视频| 日本一区二区三区在线免费观看| 亚洲精品精品亚洲| 神马一区二区三区| 国产suv精品一区二区| 青青草国产成人a∨下载安卓| 中文字幕一区久久| 亚洲一区影音先锋| 日韩av资源| 国产精品无av码在线观看| 欧美一区二区三区另类 | 性做久久久久久久| 97精品久久久| 成人影视亚洲图片在线| 国产高清999| 第一福利永久视频精品| 国产青青草在线| 51国产成人精品午夜福中文下载 | 欧美亚洲伦理www| sdde在线播放一区二区| 911av视频| 亚洲成人777| 国产福利电影在线| 亚洲直播在线一区| 一本久久综合| av在线免费播放网址| 欧美成人在线直播| 黄色综合网址| 强开小嫩苞一区二区三区网站| av在线不卡观看免费观看| 亚洲午夜在线播放| 久久久久久香蕉网| 精品国产一区二区三区四区 | 国产精品特级毛片一区二区三区| 欧美激情综合色| 成人黄色小视频| www.88av| 3atv一区二区三区| 黄瓜视频成人app免费| 成人在线免费观看网址| 久久免费美女视频| 国产富婆一级全黄大片| 国产成人午夜视频网址| 国内激情久久| 99热这里只有精品4| 亚洲码在线观看|