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

Python機(jī)器學(xué)習(xí):超參數(shù)調(diào)優(yōu)

開發(fā) 后端
那超參數(shù)應(yīng)該如何設(shè)置呢?似乎沒有捷徑,去嘗試不同的取值,比較不同的結(jié)果取最好的結(jié)果。

[[377792]]

 1.什么是超參數(shù)

超參數(shù)(hyper parameters)就是機(jī)器學(xué)習(xí)或深度學(xué)習(xí)算法中需要預(yù)先設(shè)置的參數(shù),這些參數(shù)不是通過訓(xùn)練數(shù)據(jù)學(xué)習(xí)到的參數(shù);原始算法一般只給出超參數(shù)的取值范圍和含義,根據(jù)不同的應(yīng)用場景,同一個算法的同一超參數(shù)設(shè)置也不同。

那超參數(shù)應(yīng)該如何設(shè)置呢?似乎沒有捷徑,去嘗試不同的取值,比較不同的結(jié)果取最好的結(jié)果。

本文整理了不同的嘗試方法,如下:

  •  RandomSearch
  •  GridSearch
  •  貝葉斯優(yōu)化(Bayesian optimization)

2. GridSearchCV

暴力窮舉是尋找最優(yōu)超參數(shù)一種簡單有效的方法,但是對于算法龐大的超參數(shù)空間來說,窮舉會損耗大量的時間,特別是多個超參數(shù)情況下。GridSearchCV的做法是縮減了超參數(shù)值的空間,只搜索人為重要的超參數(shù)和有限的固定值。同時結(jié)合了交叉驗證的方式來搜索最優(yōu)的超參數(shù)。

拿lightgbm為例子: 

  1. import pandas as pd  
  2. import numpy as np  
  3. import math  
  4. import warnings  
  5. import lightgbm as lgb  
  6. from sklearn.model_selection import GridSearchCV  
  7. from sklearn.model_selection import RandomizedSearchCV  
  8. lg = lgb.LGBMClassifier(silent=False 
  9. param_dist = {"max_depth": [2, 3, 4, 5, 7, 10],  
  10.               "n_estimators": [50, 100, 150, 200],  
  11.               "min_child_samples": [2,3,4,5,6]  
  12.              }  
  13. grid_search = GridSearchCV(estimator=lgn_jobs=10param_grid=param_distcv = 5scoring='f1'verbose=5 
  14. grid_search.fit(X_train, y)  
  15. grid_search.best_estimator_, grid_search.best_score_ 
  16. # Fitting 5 folds for each of 120 candidates, totalling 600 fits  
  17. # [Parallel(n_jobs=10)]: Using backend LokyBackend with 10 concurrent workers.  
  18. # [Parallel(n_jobs=10)]: Done  52 tasks      | elapsed:    2.5s  
  19. # [Parallel(n_jobs=10)]: Done 142 tasks      | elapsed:    6.6s  
  20. # [Parallel(n_jobs=10)]: Done 268 tasks      | elapsed:   14.0s  
  21. # [Parallel(n_jobs=10)]: Done 430 tasks      | elapsed:   25.5s  
  22. # [Parallel(n_jobs=10)]: Done 600 out of 600 | elapsed:   40.6s finished  
  23. # (LGBMClassifier(max_depth=10min_child_samples=6n_estimators=200 
  24. #                 silent=False), 0.6359524127649383) 

從上面可知,GridSearchCV搜索過程

  •  模型estimator:lgb.LGBMClassifier
  •  param_grid:模型的超參數(shù),上面例子給出了3個參數(shù),值得數(shù)量分別是6,4,5,組合起來的搜索空間是120個
  •  cv:交叉驗證的折數(shù)(上面例子5折交叉), 算法訓(xùn)練的次數(shù)總共為120*5=600
  •  scoring:模型好壞的評價指標(biāo)分?jǐn)?shù),如F1值
  •  搜索返回: 最好的模型 best_estimator_和最好的分?jǐn)?shù)

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV

3. RandomSearchCV

和GridSearchCV一樣,RandomSearchCV也是在有限的超參數(shù)空間(人為重要的超參數(shù))中搜索最優(yōu)超參數(shù)。不一樣的地方在于搜索超參數(shù)的值不是固定,是在一定范圍內(nèi)隨機(jī)的值。不同超參數(shù)值的組合也是隨機(jī)的。值的隨機(jī)性可能會彌補GridSearchCV超參數(shù)值固定的有限組合,但也可能更壞。 

  1. Better than grid search in various senses but still expensive to guarantee good coverage 

 

  1. import pandas as pd  
  2. import numpy as np  
  3. import math  
  4. import warnings  
  5. import lightgbm as lgb  
  6. from scipy.stats import uniform  
  7. from sklearn.model_selection import GridSearchCV  
  8. from sklearn.model_selection import RandomizedSearchCV  
  9. lg = lgb.LGBMClassifier(silent=False 
  10. param_dist = {"max_depth": range(2,15,1),  
  11.               "n_estimators": range(50,200,4),  
  12.               "min_child_samples": [2,3,4,5,6],  
  13.              }  
  14. random_search = RandomizedSearchCV(estimator=lgn_jobs=10param_distparam_distributions=param_dist, n_iter=100cv = 5scoring='f1'verbose=5 
  15. random_search.fit(X_train, y)  
  16. random_search.best_estimator_, random_search.best_score_  
  17. # Fitting 5 folds for each of 100 candidates, totalling 500 fits  
  18. # [Parallel(n_jobs=10)]: Using backend LokyBackend with 10 concurrent workers.  
  19. # [Parallel(n_jobs=10)]: Done  52 tasks      | elapsed:    6.6s  
  20. # [Parallel(n_jobs=10)]: Done 142 tasks      | elapsed:   12.9s  
  21. # [Parallel(n_jobs=10)]: Done 268 tasks      | elapsed:   22.9s  
  22. # [Parallel(n_jobs=10)]: Done 430 tasks      | elapsed:   36.2s  
  23. # [Parallel(n_jobs=10)]: Done 500 out of 500 | elapsed:   42.0s finished  
  24. # (LGBMClassifier(max_depth=11min_child_samples=3n_estimators=198 
  25. #                 silent=False), 0.628180299445963) 

從上可知,基本和GridSearchCV類似,不同之處如下:

  •  n_iter:隨機(jī)搜索值的數(shù)量
  •  param_distributions:搜索值的范圍,除了list之外,也可以是某種分布如uniform均勻分布等

https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.RandomizedSearchCV.html#sklearn.model_selection.RandomizedSearchCV

4. 貝葉斯優(yōu)化(Bayesian optimization)

不管是GridSearchCV還是RandomSearchCV, 都是在調(diào)參者給定的有限范圍內(nèi)搜索全部或者部分參數(shù)的組合情況下模型的最佳表現(xiàn);可想而知最優(yōu)模型參數(shù)取決于先驗的模型參數(shù)和有限范圍,某些情況下并一定是最優(yōu)的, 而且暴力搜索對于大的候選參數(shù)空間也是很耗時的。

我們換了角度來看待參數(shù)搜索的問題:我們的目的是選擇一個最優(yōu)的參數(shù)組合,使得訓(xùn)練的模型在給定的數(shù)據(jù)集上表現(xiàn)最好,所以可以理解成是一個最優(yōu)化問題。

我們通常使用梯度下降的方式來迭代的計算最優(yōu)值,但是梯度下降要求優(yōu)化的函數(shù)是固定并且是可導(dǎo)的,如交叉熵loss等。對于參數(shù)搜索問題, 我們要在眾多模型(不同的超參)中找一個效果最好的模型,判斷是否最好是由模型決定的,而模型是一個黑盒子,不知道是什么結(jié)構(gòu),以及是否是凸函數(shù),是沒辦法使用梯度下降方法。

這種情況下,貝葉斯優(yōu)化是一種解決方案。貝葉斯優(yōu)化把搜索的模型空間假設(shè)為高斯分布,利用高斯過程,按迭代的方式每次計算得到比當(dāng)前最優(yōu)參數(shù)期望提升的新的最優(yōu)參數(shù)。

通用的算法如下:

  •  Input:f是模型, M是高斯擬合函數(shù), X是參數(shù), S是參數(shù)選擇算法Acquisition Function
  •  初始化高斯分布擬合的數(shù)據(jù)集D,為(x,y), x是超參數(shù),y是超參數(shù)的x的執(zhí)行結(jié)果(如精確率等)
  •  迭代T次
  •  每次迭代,用D數(shù)據(jù)集擬合高斯分布函數(shù)
  •  根據(jù)擬合的函數(shù),根據(jù)Acquisition Function(如Expected improvement算法),在參數(shù)空間選擇一個比當(dāng)前最優(yōu)解更優(yōu)的參數(shù)xi
  •  將參數(shù)xi代入模型f(訓(xùn)練一個模型),得出相應(yīng)的yi(新模型的精確率等)
  •  (xi,yi)重新加入擬合數(shù)據(jù)集D,再一次迭代

由此可知,貝葉斯優(yōu)化每次都利用上一次參數(shù)選擇。而GridSearchCV和RandomSearchCV每一次搜索都是獨立的。

到此,簡單介紹了貝葉斯優(yōu)化的理論知識。有很多第三方庫實現(xiàn)了貝葉斯優(yōu)化的實現(xiàn),如 advisor,bayesian-optimization,Scikit-Optimize和GPyOpt等。本文以GPyOpt和bayesian-optimization為例子。 

  1. pip install gpyopt  
  2. pip install bayesian-optimization 
  3. pip install scikit-optimize 
  •  gpyopt例子 
  1. import GPy  
  2. import GPyOpt  
  3. from GPyOpt.methods import BayesianOptimization  
  4. from sklearn.model_selection import train_test_split  
  5. from sklearn.model_selection import cross_val_score  
  6. from sklearn.datasets import load_iris  
  7. from xgboost import XGBRegressor  
  8. import numpy as np   
  9. iris = load_iris()  
  10. X = iris.data 
  11. y = iris.target  
  12. x_train, x_test, y_train, y_test = train_test_split(X,y,test_size = 0.3,random_state = 14 
  13. # 超參數(shù)搜索空間  
  14. bds = [{'name': 'learning_rate', 'type': 'continuous', 'domain': (0, 1)},  
  15.         {'name': 'gamma', 'type': 'continuous', 'domain': (0, 5)},  
  16.         {'name': 'max_depth', 'type': 'continuous', 'domain': (1, 50)}]   
  17. # Optimization objective 模型F  
  18. def cv_score(parameters): 
  19.      parametersparameters = parameters[0]  
  20.     score = cross_val_score 
  21.                 XGBRegressor(learning_rate=parameters[0],  
  22.                               gamma=int(parameters[1]),  
  23.                               max_depth=int(parameters[2])),  
  24.                 X, y, scoring='neg_mean_squared_error').mean()  
  25.     score = np.array(score)  
  26.     return score  
  27. # acquisition就是選擇不同的Acquisition Function  
  28. optimizer = GPyOpt.methods.BayesianOptimization(f = cv_score,            # function to optimize         
  29.                                           domain = bds,         # box-constraints of the problem  
  30.                                           acquisition_type ='LCB',       # LCB acquisition  
  31.                                           acquisition_weight = 0.1)   # Exploration exploitation  
  32.  x_best = optimizer.X[np.argmax(optimizer.Y)]  
  33. print("Best parameters: learning_rate="+str(x_best[0])+",gamma="+str(x_best[1])+",max_depth="+str(x_best[2]))  
  34. # Best parameters: learning_rate=0.4272184438229706,gamma=1.4805727469635759,max_depth=41.8460390442754 
  •  bayesian-optimization例子 
  1. from sklearn.datasets import make_classification  
  2. from xgboost import XGBRegressor  
  3. from sklearn.model_selection import cross_val_score  
  4. from bayes_opt import BayesianOptimization  
  5. iris = load_iris()  
  6. X = iris.data  
  7. y = iris.target  
  8. x_train, x_test, y_train, y_test = train_test_split(X,y,test_size = 0.3,random_state = 14 
  9. bds ={'learning_rate': (0, 1),  
  10.         'gamma': (0, 5),  
  11.         'max_depth': (1, 50)}  
  12. # Optimization objective   
  13. def cv_score(learning_rate, gamma,  max_depth):  
  14.     score = cross_val_score 
  15.                 XGBRegressor(learning_ratelearning_rate=learning_rate,  
  16.                               gamma=int(gamma),  
  17.                               max_depth=int(max_depth)),   
  18.                 X, y, scoring='neg_mean_squared_error').mean()  
  19.     score = np.array(score)  
  20.     return score  
  21. rf_bo = BayesianOptimization 
  22.         cv_score,  
  23.         bds  
  24.     )  
  25. rf_bo.maximize()  
  26. rf_bo.max   
  27. |   iter    |  target   |   gamma   | learni... | max_depth |  
  28. -------------------------------------------------------------  
  29. |  1        | -0.0907   |  0.7711   |  0.1819   |  20.33    |  
  30. |  2        | -0.1339   |  4.933    |  0.6599   |  8.972    |  
  31. |  3        | -0.07285  |  1.55     |  0.8247   |  33.94    |  
  32. |  4        | -0.1359   |  4.009    |  0.3994   |  25.55    |  
  33. |  5        | -0.08773  |  1.666    |  0.9551   |  48.67    |  
  34. |  6        | -0.05654  |  0.0398   |  0.3707   |  1.221    |  
  35. |  7        | -0.08425  |  0.6883   |  0.2564   |  33.25    |  
  36. |  8        | -0.1113   |  3.071    |  0.8913   |  1.051    |  
  37. |  9        | -0.9167   |  0.0      |  0.0      |  2.701    |  
  38. |  10       | -0.05267  |  0.0538   |  0.1293   |  1.32     |  
  39. |  11       | -0.08506  |  1.617    |  1.0      |  32.68    |  
  40. |  12       | -0.09036  |  2.483    |  0.2906   |  33.21    |  
  41. |  13       | -0.08969  |  0.4662   |  0.3612   |  34.74    |  
  42. |  14       | -0.0723   |  1.295    |  0.2061   |  1.043    |  
  43. |  15       | -0.07531  |  1.903    |  0.1182   |  35.11    |  
  44. |  16       | -0.08494  |  2.977    |  1.0      |  34.57    |  
  45. |  17       | -0.08506  |  1.231    |  1.0      |  36.05    |  
  46. |  18       | -0.07023  |  2.81     |  0.838    |  36.16    |  
  47. |  19       | -0.9167   |  1.94     |  0.0      |  36.99    |  
  48. |  20       | -0.09041  |  3.894    |  0.9442   |  35.52    |  
  49. |  21       | -0.1182   |  3.188    |  0.01882  |  35.14    |  
  50. |  22       | -0.08521  |  0.931    |  0.05693  |  31.66    |  
  51. |  23       | -0.1003   |  2.26     |  0.07555  |  31.78    |  
  52. |  24       | -0.1018   |  0.08563  |  0.9838   |  32.22    |  
  53. |  25       | -0.1017   |  0.8288   |  0.9947   |  30.57    |  
  54. |  26       | -0.9167   |  1.943    |  0.0      |  30.2     |  
  55. |  27       | -0.08506  |  1.518    |  1.0      |  35.04    |  
  56. |  28       | -0.08494  |  3.464    |  1.0      |  32.36    |  
  57. |  29       | -0.1224   |  4.296    |  0.4472   |  33.47    |  
  58. |  30       | -0.1017   |  0.0      |  1.0      |  35.86    |  
  59. =============================================================  
  60. {'target': -0.052665895082105285,  
  61.  'params': {'gamma': 0.05379782654053811,  
  62.   'learning_rate': 0.1292986176550608,  
  63.   'max_depth': 1.3198257775801387}} 

bayesian-optimization只支持最大化,如果score是越小越好,可以加一個負(fù)號轉(zhuǎn)化為最大值優(yōu)化。

兩者的優(yōu)化結(jié)果并不是十分一致的,可能和實現(xiàn)方式和選擇的算法不同,也和初始化的擬合數(shù)據(jù)集有關(guān)系。

5. 總結(jié)

本文介紹三種超參數(shù)優(yōu)化的策略,希望對你有幫助。簡要總結(jié)如下:

  •  GridSearchCV網(wǎng)格搜索,給定超參和取值范圍,遍歷所有組合得到最優(yōu)參數(shù)。首先你要給定一個先驗的取值,不能取得太多,否則組合太多,耗時太長。可以啟發(fā)式的嘗試。
  •  RandomSearchCV隨機(jī)搜索,搜索超參數(shù)的值不是固定,是在一定范圍內(nèi)隨機(jī)的值
  •  貝葉斯優(yōu)化,采用高斯過程迭代式的尋找最優(yōu)參數(shù),每次迭代都是在上一次迭代基礎(chǔ)上擬合高斯函數(shù)上,尋找比上一次迭代更優(yōu)的參數(shù),推薦gpyopt庫 

 

責(zé)任編輯:龐桂玉 來源: Python中文社區(qū)(ID:python-china)
相關(guān)推薦

2024-07-16 16:13:14

2022-10-31 11:33:30

機(jī)器學(xué)習(xí)參數(shù)調(diào)優(yōu)

2025-01-07 12:55:28

2024-11-25 08:20:35

2022-08-30 00:31:12

機(jī)器學(xué)習(xí)超參數(shù)調(diào)優(yōu)算法

2023-06-06 15:42:13

Optuna開源

2017-11-07 11:00:59

數(shù)據(jù)庫調(diào)優(yōu)DBMS

2021-03-26 06:05:17

Tomcat

2010-03-04 10:56:52

JVM參數(shù)

2023-11-10 11:23:20

JVM內(nèi)存

2010-09-25 13:05:07

JVM參數(shù)

2023-07-28 14:49:00

黑盒優(yōu)化機(jī)器學(xué)習(xí)

2013-03-20 17:30:18

2011-03-31 13:40:34

2012-01-10 14:35:08

JavaJVM

2025-05-07 07:17:18

2025-05-27 08:20:00

Linux內(nèi)核參數(shù)調(diào)優(yōu)系統(tǒng)

2010-09-17 17:02:24

JVM參數(shù)

2017-07-21 08:55:13

TomcatJVM容器

2022-03-10 09:48:11

人工智能機(jī)器學(xué)習(xí)模型
點贊
收藏

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

色乱码一区二区三区88| 成人黄色网址在线观看| 久久精品视频一| 欧美丰满熟妇bbb久久久| 青青青免费在线视频| 国产欧美中文在线| 91在线看网站| 夜夜爽妓女8888视频免费观看| 91青青国产在线观看精品| 精品少妇一区二区三区免费观看| 精品久久久久av| 视频在线观看入口黄最新永久免费国产| heyzo一本久久综合| 国产精品午夜一区二区欲梦| 伊人国产在线观看| 久久视频在线| 日韩精品极品视频免费观看| 日日干日日操日日射| 大胆人体一区| 一区二区三区在线免费播放| 视频在线观看成人| 特黄aaaaaaaaa真人毛片| 黑人巨大精品欧美黑白配亚洲| 欧美亚洲国产日韩2020| 欧美日韩精品在线观看视频| 欧美丝袜丝交足nylons172| 精品99一区二区| 九九九九九九九九| 国产精品久久亚洲不卡| 欧美日韩午夜视频在线观看| 成人手机在线播放| 黄色视屏免费在线观看| 国产欧美一区二区精品秋霞影院 | 亚洲日本中文| 在线精品视频一区二区| 凹凸国产熟女精品视频| av不卡高清| 亚洲一区二区三区在线播放| mm131午夜| 国产视频中文字幕在线观看| 欧美国产精品中文字幕| 日韩精品av一区二区三区| 色窝窝无码一区二区三区成人网站 | 网曝91综合精品门事件在线| 精品国产区一区| 337p日本欧洲亚洲大胆张筱雨| 99综合久久| 91精品国产综合久久福利| 91精品999| 四虎国产精品免费久久5151| 欧美夫妻性生活| 色婷婷激情视频| 免费观看在线一区二区三区| 欧美一区二区三区视频在线观看| 在线播放黄色av| 欧美1区2区3| 亚洲成人精品久久久| 久久性爱视频网站| 羞羞色国产精品网站| 亚洲男人的天堂在线| 久久久久亚洲av无码a片| 欧美色图在线播放| 久久伊人色综合| 欧美亚洲日本在线| 伊人蜜桃色噜噜激情综合| 午夜精品久久久久久99热软件| 日韩av男人天堂| 性欧美精品高清| 国产精品极品美女粉嫩高清在线| 在线观看免费视频a| 国产一区二区按摩在线观看| 国产精品美女黄网| 男人天堂资源在线| 国产精品网曝门| 亚洲激情免费视频| 操喷在线视频| 91福利国产精品| 日韩视频在线观看一区二区三区| 2020国产精品极品色在线观看| 亚洲福利小视频| 欧美大波大乳巨大乳| 五月天激情综合网| 国模精品视频一区二区| 波多野结衣啪啪| 国产毛片精品一区| 国产综合色一区二区三区| 免费在线性爱视频| 亚洲欧洲无码一区二区三区| 日日摸日日碰夜夜爽无码| 成人视屏在线观看| 精品国产伦一区二区三区观看方式| 国产真实乱人偷精品| 青青草国产成人a∨下载安卓| 欧美老肥婆性猛交视频| 国产精品久久久久久久久久久久久久久久久 | 99久久精品日本一区二区免费| 99国产精品久久| 伊人天天久久大香线蕉av色| aaa在线播放视频| 欧美人牲a欧美精品| 人妻av一区二区| 欧美xxxxx视频| 欧美又大又粗又长| 精品人妻一区二区三区含羞草| 久久嫩草精品久久久精品| 日韩一二区视频| 最新日韩三级| 亚洲精品在线观看网站| 亚洲女同二女同志奶水| 国产视频欧美| 999视频在线免费观看| 永久av在线| 色一区在线观看| 精品少妇人妻av一区二区三区| 天天天综合网| 国产精品免费小视频| 欧美熟妇交换久久久久久分类| 中文字幕在线播放不卡一区| 激情网站五月天| 豆花视频一区二区| 九九热精品视频| 91精品国产色综合久久不8| 久久久亚洲精品一区二区三区| 农民人伦一区二区三区| 精品一区二区三区视频在线播放| 自拍偷拍亚洲区| 99成人精品视频| 久久综合av免费| 青草青青在线视频| 91精品入口| 欧美精品在线第一页| 国产精品福利电影| 国产精品美女久久久久久久久| 成人一区二区三| 国产免费播放一区二区| 日韩av123| 精华区一区二区三区| 精品二区三区线观看| yy1111111| 亚洲综合国产| 久久综合给合久久狠狠色| 岛国av在线网站| 亚洲国语精品自产拍在线观看| 久久9999久久免费精品国产| 高清在线观看日韩| 妺妺窝人体色777777| 欧美电影在线观看免费| 5566成人精品视频免费| 天堂av电影在线观看| 精品久久久精品| 在线 丝袜 欧美 日韩 制服| 亚洲综合日韩| 午夜老司机精品| 欧美亚洲二区| 久久电影一区二区| 亚洲精品网站在线| 午夜激情综合网| 日韩片在线观看| 久久亚洲电影| 日韩av一级大片| 日韩免费大片| 欧美日本亚洲视频| 天堂av在线免费| 色悠悠久久综合| 精品视频第一页| 国产精品一区二区无线| 日韩精品综合在线| 亚洲激情77| 国产欧美在线看| 男女视频在线| 国产亚洲xxx| 国产成人三级一区二区在线观看一 | 一本一道久久久a久久久精品91| 日韩毛片免费看| 欧美大片大片在线播放| 日本韩国免费观看| 欧美亚洲日本一区| 色在线观看视频| 91网站视频在线观看| 亚洲 欧美 另类人妖| 欧美va亚洲va日韩∨a综合色| a级国产乱理论片在线观看99| 国产白浆在线免费观看| 日韩最新中文字幕电影免费看| xxxwww在线观看| 一本色道**综合亚洲精品蜜桃冫| 国产免费美女视频| 99视频超级精品| 粉色视频免费看| 国内精品美女在线观看| 日韩一区二区三区高清| **爰片久久毛片| 国产免费一区二区三区在线能观看| 国产亚av手机在线观看| 中文字幕亚洲激情| 天堂成人在线观看| 在线不卡一区二区| www.com国产| 一区二区三区在线观看欧美| av黄色在线免费观看| 国产精品一级片在线观看| 久久久久久久久久久免费视频| 亚洲网色网站| 亚洲高清视频一区二区| 你懂的在线观看一区二区| 91久久精品日日躁夜夜躁国产| 日韩伦理在线一区| 欧美激情综合亚洲一二区| 亚洲图片88| 亚洲美女av黄| 亚洲va欧美va| 欧美视频在线播放| 欧美性猛交bbbbb精品| 亚洲国产日日夜夜| 成人免费黄色小视频| 国产视频911| 你懂的在线观看网站| 国产成人精品亚洲日本在线桃色| 婷婷免费在线观看| 日本伊人色综合网| 无码人妻丰满熟妇区五十路百度| 亚洲高清成人| 国产专区在线视频| 亚洲精品tv久久久久久久久久| 小说区图片区图片区另类灬| 精品在线91| 国内精品视频在线播放| 电影一区二区在线观看| 亚洲一区二区三区成人在线视频精品 | 91老司机在线| 日韩一区二区三免费高清在线观看| 国产极品jizzhd欧美| 日韩欧美另类一区二区| 日本三级久久久| 综合日韩av| 欧美在线视频在线播放完整版免费观看| 波多野在线观看| 久久免费国产精品1| 超碰97免费在线| 国内揄拍国内精品少妇国语| 日韩少妇视频| 欧美精品久久久久久久免费观看| 最新av在线播放| 欧美人与物videos| 日本动漫理论片在线观看网站| 欧美日韩电影在线观看| 波多一区二区| 18性欧美xxxⅹ性满足| av免费在线视| 日本国产精品视频| 99久久婷婷国产综合精品首页 | av在线免费在线观看| 欧美一区二区三区成人| 性欧美8khd高清极品| 亚洲第一区第二区| 欧美午夜黄色| 日韩在线一区二区三区免费视频| 久热国产在线| 欧美国产日韩一区二区| 日本不良网站在线观看| 国产成人av在线播放| 欧美成人xxxx| 69174成人网| 红杏aⅴ成人免费视频| 免费中文日韩| 91亚洲一区| 人人妻人人澡人人爽欧美一区双| 夜久久久久久| 色七七在线观看| 国产一区二区女| 国产精品久久久久久亚洲色 | 女海盗2成人h版中文字幕| 欧美专区在线观看| 欧美日韩卡一| 国产高清在线一区| 欧洲杯半决赛直播| 97在线免费视频观看| 亚欧成人精品| 三年中文在线观看免费大全中国| 成人一区二区视频| 国产精品久久久视频| 亚洲精品国产精华液| www..com国产| 这里是久久伊人| 五月天久久久久久| 久久这里只有精品视频首页| 欧美freesex黑人又粗又大| 国产精品主播视频| 免费日韩一区二区三区| 99亚洲精品视频| 国产亚洲毛片在线| 黄色一级片免费播放| 久久综合久久99| 日本午夜在线观看| 日本高清免费不卡视频| www.爱爱.com| 一本一道久久a久久精品逆3p| 尤物在线网址| 国产日韩欧美自拍| 伊人久久大香线蕉| 国产精品videossex国产高清| 日本不卡高清视频| 三级视频网站在线观看| 亚洲欧洲三级电影| 中文字幕在线播| 欧美va亚洲va在线观看蝴蝶网| 幼a在线观看| 国产91色在线播放| 欧美freesex8一10精品| 亚洲精品国产suv一区88| 免费人成网站在线观看欧美高清| 国产原创剧情av| 一区二区三区精品| 91国内精品久久久| 色偷偷av一区二区三区| 亚洲日本网址| 免费在线国产精品| 国产精品尤物| 一起草在线视频| 亚洲国产综合在线| 亚洲精品国产精品乱码不卡| 久久久精品影院| 久久亚洲国产精品尤物| 日韩av大全| 久久这里有精品15一区二区三区| 国产亚洲无码精品| 五月婷婷激情综合| 农村少妇久久久久久久| 欧美巨大黑人极品精男| 涩爱av色老久久精品偷偷鲁 | 国产九色精品| 国模 一区 二区 三区| 亚洲最大视频网| 亚洲综合色噜噜狠狠| 精品人妻伦一二三区久久 | 亚洲精品一区二区网址| 麻豆mv在线观看| 精品一区二区三区国产| 亚洲激情偷拍| 亚洲一区二区三区四区五区六区| 亚洲va欧美va天堂v国产综合| 欧美亚洲精品在线观看| 欧美精品18videos性欧| 六月丁香久久丫| 免费欧美一级视频| 久久久久久夜精品精品免费| 9i精品福利一区二区三区| 亚洲网站在线播放| gogo亚洲高清大胆美女人体| 少妇特黄a一区二区三区| 蜜臀久久久久久久| 国产高潮流白浆| 日韩精品一区二区三区视频| www欧美xxxx| 乱色588欧美| 首页国产欧美久久| 国产成人免费在线观看视频| 欧美丰满嫩嫩电影| 在线午夜影院| 久久精品国产精品青草色艺 | 日本少妇激三级做爰在线| 亚洲精品视频自拍| 天天综合在线视频| 国产精品扒开腿做爽爽爽的视频| 青青草国产免费一区二区下载| www.51色.com| 午夜精品久久久久久不卡8050| 免费观看成年在线视频网站| 国产精品久久久久久久久久东京 | www.国产区| 成人免费一区二区三区视频| 亚洲成人一级片| 热草久综合在线| 偷偷www综合久久久久久久| 亚洲美女精品视频| 色综合激情五月| 18视频在线观看| 久久偷看各类wc女厕嘘嘘偷窃| 欧美aaaaa成人免费观看视频| 免费视频一二三区| 亚洲视频网站在线观看| 疯狂欧洲av久久成人av电影| 国产 日韩 亚洲 欧美| 日本一区二区视频在线观看| 亚洲成人av综合| 国产精品免费看久久久香蕉| 狠色狠色综合久久| 精品手机在线视频| 亚洲国产精彩中文乱码av| 精品久久毛片| 日韩av一二三四区| 亚洲视频一区二区在线观看| 日本人妖在线| 99re在线国产| 麻豆精品一区二区综合av| 91精品国产乱码久久久张津瑜| www高清在线视频日韩欧美| 亚洲人成网站77777在线观看| 人妻精品久久久久中文字幕69| 欧洲av在线精品|