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

機器學習算法實踐:樸素貝葉斯 (Naive Bayes)

開發 后端 算法
本文中我將一步步實現一個樸素貝葉斯分類器,并采用SMS垃圾短信語料庫中的數據進行模型訓練,對垃圾短信進行過濾,在最后對分類的錯誤率進行了計算。

[[197761]]

前言

上一篇《機器學習算法實踐:決策樹 (Decision Tree)》總結了決策樹的實現,本文中我將一步步實現一個樸素貝葉斯分類器,并采用SMS垃圾短信語料庫中的數據進行模型訓練,對垃圾短信進行過濾,在***對分類的錯誤率進行了計算。

正文

與決策樹分類和k近鄰分類算法不同,貝葉斯分類主要借助概率論的知識來通過比較提供的數據屬于每個類型的條件概率, 將他們分別計算出來然后預測具有***條件概率的那個類別是***的類別。當然樣本越多我們統計的不同類型的特征值分布就越準確,使用此分布進行預測則會更加準確。

貝葉斯準則

樸素貝葉斯分類器中最核心的便是貝葉斯準則,他用如下的公式表示:

 

此公式表示兩個互換的條件概率之間的關系,他們通過聯合概率關聯起來,這樣使得我們知道p(B|A) 的情況下去計算p(A|B) 成為了可能,而我們的貝葉斯模型便是通過貝葉斯準則去計算某個樣本在不同類別條件下的條件概率并取具有***條件概率的那個類型作為分類的預測結果。

使用條件概率來進行分類

這里我通俗的介紹下如何通過條件概率來進行分類,假設我們看到了一個人的背影,想通過他背影的一些特征(數據)來判斷這個人的性別(類別),假設其中涉及到的特征有: 是否是長發, 身高是否在170以上,腿細,是否穿裙子。當我們看到一個背影便會得到一個特征向量用來描述上述特征(1表示是,0表示否): ω=[0,1,1,0]

貝葉斯分類便是比較如下兩個條件概率:

  • p(男生|ω) ,ω 等于 [0,1,1,0 的條件下此人是男生的概率
  • p(女生|ω)) ,ω 等于 [0,1,1,0] 的條件下此人是女生的概率

若p(男生|ω)>p(女生|ω) , 則判定此人為男生, 否則為女生

那么p(男生|ω) 怎么求呢? 這就要上貝葉斯準則了

根據貝葉斯準則,

 

寫成好理解些的便是:

 

如果特征之間都是相互獨立的(條件獨立性假設),那么便可以將上述條件概率改寫成:

 

這樣我們就能計算當前這個背影屬于男生和屬于女生的條件概率了。

實現自己的貝葉斯分類器

貝葉斯分類器實現起來非常的簡單, 下面我以進行文本分類為目的使用Python實現一個樸素貝葉斯文本分類器.

為了計算條件概率,我們需要計算各個特征的在不同類別下的條件概率以及類型的邊際概率,這就需要我們通過大量的訓練數據進行統計獲取近似值了,這也就是我們訓練我們樸素貝葉斯模型的過程.

針對不同的文本,我們可以將所有出現的單詞作為數據特征向量,統計每個文本中出現詞條的數目(或者是否出現某個詞條)作為數據向量。這樣一個文本就可以處理成一個整數列表,并且長度是所有詞條的數目,這個向量也許會很長,用于本文的數據集中的短信詞條大概一共3000多個單詞。

  1. def get_doc_vector(words, vocabulary): 
  2.  
  3.     ''' 根據詞匯表將文檔中的詞條轉換成文檔向量 
  4.  
  5.   
  6.  
  7.     :param words: 文檔中的詞條列表 
  8.  
  9.     :type words: list of str 
  10.  
  11.   
  12.  
  13.     :param vocabulary: 總的詞匯列表 
  14.  
  15.     :type vocabulary: list of str 
  16.  
  17.   
  18.  
  19.     :return doc_vect: 用于貝葉斯分析的文檔向量 
  20.  
  21.     :type doc_vect: list of int 
  22.  
  23.     ''
  24.  
  25.     doc_vect = [0]*len(vocabulary) 
  26.  
  27.   
  28.  
  29.     for word in words: 
  30.  
  31.         if word in vocabulary: 
  32.  
  33.             idx = vocabulary.index(word) 
  34.  
  35.             doc_vect[idx] = 1 
  36.  
  37.   
  38.  
  39.     return doc_vect  

統計訓練的過程的代碼實現如下:

  1. def train(self, dataset, classes): 
  2.  
  3.     ''' 訓練樸素貝葉斯模型 
  4.  
  5.   
  6.  
  7.     :param dataset: 所有的文檔數據向量 
  8.  
  9.     :type dataset: MxN matrix containing all doc vectors. 
  10.  
  11.   
  12.  
  13.     :param classes: 所有文檔的類型 
  14.  
  15.     :type classes: 1xN list 
  16.  
  17.   
  18.  
  19.     :return cond_probs: 訓練得到的條件概率矩陣 
  20.  
  21.     :type cond_probs: dict 
  22.  
  23.   
  24.  
  25.     :return cls_probs: 各種類型的概率 
  26.  
  27.     :type cls_probs: dict 
  28.  
  29.     ''
  30.  
  31.     # 按照不同類型記性分類 
  32.  
  33.     sub_datasets = defaultdict(lambda: []) 
  34.  
  35.     cls_cnt = defaultdict(lambda: 0) 
  36.  
  37.   
  38.  
  39.     for doc_vect, cls in zip(dataset, classes): 
  40.  
  41.         sub_datasets[cls].append(doc_vect) 
  42.  
  43.         cls_cnt[cls] += 1 
  44.  
  45.   
  46.  
  47.     # 計算類型概率 
  48.  
  49.     cls_probs = {k: v/len(classes) for k, v in cls_cnt.items()} 
  50.  
  51.   
  52.  
  53.     # 計算不同類型的條件概率 
  54.  
  55.     cond_probs = {} 
  56.  
  57.     dataset = np.array(dataset) 
  58.  
  59.     for cls, sub_dataset in sub_datasets.items(): 
  60.  
  61.         sub_dataset = np.array(sub_dataset) 
  62.  
  63.         # Improve the classifier. 
  64.  
  65.         cond_prob_vect = np.log((np.sum(sub_dataset, axis=0) + 1)/(np.sum(dataset) + 2)) 
  66.  
  67.         cond_probs[cls] = cond_prob_vect 
  68.  
  69.   
  70.  
  71.     return cond_probs, cls_probs  

注意這里對于基本的條件概率直接相乘有兩處改進:

  1. 各個特征的概率初始值為1,分母上統計的某一類型的樣本總數的初始值是1,這是為了避免如果有一個特征統計的概率為0,則聯合概率也為零那自然沒有什么意義了, 如果訓練樣本足夠大時,并不會對比較結果產生影響.
  2. 由于各個獨立特征的概率都是小于1的數,累積起來必然會是個更小的書,這會遇到浮點數下溢的問題,因此在這里我們對所有的概率都取了對數處理,這樣在保證不會有損失的情況下避免了下溢的問題。

獲取了統計概率信息后,我們便可以通過貝葉斯準則預測我們數據的類型了,這里我并沒有直接計算每種情況的概率,而是通過統計得到的向量與數據向量進行內積獲取條件概率的相對值并進行相對比較做出決策的。

  1. def classify(self, doc_vect, cond_probs, cls_probs): 
  2.  
  3.     ''' 使用樸素貝葉斯將doc_vect進行分類. 
  4.  
  5.     ''
  6.  
  7.     pred_probs = {} 
  8.  
  9.     for cls, cls_prob in cls_probs.items(): 
  10.  
  11.         cond_prob_vect = cond_probs[cls] 
  12.  
  13.         pred_probs[cls] = np.sum(cond_prob_vect*doc_vect) + np.log(cls_prob) 
  14.  
  15.     return max(pred_probs, key=pred_probs.get)  

進行短信分類

已經構建好了樸素貝葉斯模型,我們就可以使用此模型來統計數據并用來預測了。這里我使用了SMS垃圾短信語料庫中的垃圾短信數據, 并隨機抽取90%的數據作為訓練數據,剩下10%的數據作為測試數據來測試我們的貝葉斯模型預測的準確性。

當然在建立模型前我們需要將數據處理成模型能夠處理的格式:

  1. ENCODING = 'ISO-8859-1' 
  2.  
  3. TRAIN_PERCENTAGE = 0.9 
  4.  
  5.   
  6.  
  7. def get_doc_vector(words, vocabulary): 
  8.  
  9.     ''' 根據詞匯表將文檔中的詞條轉換成文檔向量 
  10.  
  11.   
  12.  
  13.     :param words: 文檔中的詞條列表 
  14.  
  15.     :type words: list of str 
  16.  
  17.   
  18.  
  19.     :param vocabulary: 總的詞匯列表 
  20.  
  21.     :type vocabulary: list of str 
  22.  
  23.   
  24.  
  25.     :return doc_vect: 用于貝葉斯分析的文檔向量 
  26.  
  27.     :type doc_vect: list of int 
  28.  
  29.     ''
  30.  
  31.     doc_vect = [0]*len(vocabulary) 
  32.  
  33.   
  34.  
  35.     for word in words: 
  36.  
  37.         if word in vocabulary: 
  38.  
  39.             idx = vocabulary.index(word) 
  40.  
  41.             doc_vect[idx] = 1 
  42.  
  43.   
  44.  
  45.     return doc_vect 
  46.  
  47.   
  48.  
  49. def parse_line(line): 
  50.  
  51.     ''' 解析數據集中的每一行返回詞條向量和短信類型. 
  52.  
  53.     ''
  54.  
  55.     cls = line.split(',')[-1].strip() 
  56.  
  57.     content = ','.join(line.split(',')[: -1]) 
  58.  
  59.     word_vect = [word.lower() for word in re.split(r'\W+', content) if word] 
  60.  
  61.     return word_vect, cls 
  62.  
  63.   
  64.  
  65. def parse_file(filename): 
  66.  
  67.     ''' 解析文件中的數據 
  68.  
  69.     ''
  70.  
  71.     vocabulary, word_vects, classes = [], [], [] 
  72.  
  73.     with open(filename, 'r', encoding=ENCODING) as f: 
  74.  
  75.         for line in f: 
  76.  
  77.             if line: 
  78.  
  79.                 word_vect, cls = parse_line(line) 
  80.  
  81.                 vocabulary.extend(word_vect) 
  82.  
  83.                 word_vects.append(word_vect) 
  84.  
  85.                 classes.append(cls) 
  86.  
  87.     vocabulary = list(set(vocabulary)) 
  88.  
  89.   
  90.  
  91.     return vocabulary, word_vects, classes  

有了上面三個函數我們就可以直接將我們的文本轉換成模型需要的數據向量,之后我們就可以劃分數據集并將訓練數據集給貝葉斯模型進行統計。

  1. # 訓練數據 & 測試數據 
  2.  
  3. ntest = int(len(classes)*(1-TRAIN_PERCENTAGE)) 
  4.  
  5.   
  6.  
  7. test_word_vects = [] 
  8.  
  9. test_classes = [] 
  10.  
  11. for i in range(ntest): 
  12.  
  13.     idx = random.randint(0, len(word_vects)-1) 
  14.  
  15.     test_word_vects.append(word_vects.pop(idx)) 
  16.  
  17.     test_classes.append(classes.pop(idx)) 
  18.  
  19.   
  20.  
  21. train_word_vects = word_vects 
  22.  
  23. train_classes = classes 
  24.  
  25.   
  26.  
  27. train_dataset = [get_doc_vector(words, vocabulary) for words in train_word_vects]  

訓練模型:

  1. cond_probs, cls_probs = clf.train(train_dataset, train_classes) 

剩下我們用測試數據來測試我們貝葉斯模型的預測準確度:

  1. # 測試模型 
  2.  
  3. error = 0 
  4.  
  5. for test_word_vect, test_cls in zip(test_word_vects, test_classes): 
  6.  
  7.     test_data = get_doc_vector(test_word_vect, vocabulary) 
  8.  
  9.     pred_cls = clf.classify(test_data, cond_probs, cls_probs) 
  10.  
  11.     if test_cls != pred_cls: 
  12.  
  13.         print('Predict: {} -- Actual: {}'.format(pred_cls, test_cls)) 
  14.  
  15.         error += 1 
  16.  
  17.   
  18.  
  19. print('Error Rate: {}'.format(error/len(test_classes)))  

隨機測了四組,錯誤率分別為:0, 0.037, 0.015, 0. 平均錯誤率為1.3%

測完了我們嘗試下看看不同類型短信各個詞條的概率分布是怎樣的吧:

  1. # 繪制不同類型的概率分布曲線 
  2.  
  3. fig = plt.figure() 
  4.  
  5. ax = fig.add_subplot(111) 
  6.  
  7. for cls, probs in cond_probs.items(): 
  8.  
  9.     ax.scatter(np.arange(0, len(probs)), 
  10.  
  11.                probs*cls_probs[cls], 
  12.  
  13.                label=cls, 
  14.  
  15.                alpha=0.3) 
  16.  
  17.     ax.legend() 
  18.  
  19.   
  20.  
  21. plt.show() 

 

試試決策樹

上一篇我們基于ID3算法實現了決策樹,同樣是分類問題,我們同樣可以使用我們的文本數據來構建用于分類短信的決策樹,當然唯一比較麻煩的地方在于如果按照與貝葉斯相同的向量作為數據,則屬性可能會非常多,我們在構建決策樹的時候每層樹結構都是遞歸通過遍歷屬性根據信息增益來選取***屬性進行樹分裂的,這樣很多的屬性可能會對構建決策樹這一過程來說會比較耗時.那我們就試試吧…

  1. # 生成決策樹 
  2.  
  3. if not os.path.exists('sms_tree.pkl'): 
  4.  
  5.     clf.create_tree(train_dataset, train_classes, vocabulary) 
  6.  
  7.     clf.dump_tree('sms_tree.pkl'
  8.  
  9. else
  10.  
  11.     clf.load_tree('sms_tree.pkl'
  12.  
  13.   
  14.  
  15. # 測試模型 
  16.  
  17. error = 0 
  18.  
  19. for test_word_vect, test_cls in zip(test_word_vects, test_classes): 
  20.  
  21.     test_data = get_doc_vector(test_word_vect, vocabulary) 
  22.  
  23.     pred_cls = clf.classify(test_data, feat_names=vocabulary) 
  24.  
  25.     if test_cls != pred_cls: 
  26.  
  27.         print('Predict: {} -- Actual: {}'.format(pred_cls, test_cls)) 
  28.  
  29.         error += 1 
  30.  
  31.   
  32.  
  33. print('Error Rate: {}'.format(error/len(test_classes)))  

隨機測了兩次,錯誤率分別為:0.09, 0.0

效果還算不錯

我們還是用Graphviz可視化看一下決策樹都選取了那些詞條作為判別標準(這時候決策樹的好處就體現出來了)。

   

 

可見決策樹的深度并不是很深,如果分類類型一多,估計深度增加上去決策樹可能會有些麻煩。

總結

本文我們使用Python一步步實現了樸素貝葉斯分類器,并對短信進行了垃圾短信過濾,同樣的數據我們同決策樹的分類效果進行了簡單的比較。本文相關代碼實現:https://github.com/PytLab/MLBox/tree/master/naive_bayes 。決策樹過濾垃圾短信的腳本在https://github.com/PytLab/MLBox/tree/master/decision_tree

參考

  • 《Machine Learning in Action》
  • 實例詳解貝葉斯推理的原理
  • 大道至簡:樸素貝葉斯分類器

相關閱讀

 

責任編輯:龐桂玉 來源: Python開發者
相關推薦

2012-09-24 10:13:35

貝葉斯

2017-03-29 14:50:18

2023-01-31 15:49:51

機器學習函數評分函數

2021-08-30 11:53:36

機器學習人工智能計算機

2020-05-21 14:50:37

算法深度學習人工智能

2021-07-29 13:06:29

Python機器學習編程語言

2021-04-18 09:57:45

Java樸素貝葉斯貝葉斯定理

2019-03-20 07:50:47

機器學習算法線性回歸

2018-09-13 12:51:58

數據挖掘算法樸素貝葉斯

2017-07-12 11:27:05

樸素貝葉斯情感分析Python

2022-01-03 20:18:37

定理應用貝葉斯

2023-11-28 12:08:56

機器學習算法人工智能

2020-10-19 12:55:59

機器學習技術人工智能

2018-10-18 09:00:00

機器學習機器學習算法數據科學家

2017-06-22 09:53:01

機器學習Python樸素貝葉斯

2017-08-07 13:02:32

全棧必備貝葉斯

2017-11-07 11:17:40

樸素貝葉斯畫像數據數據挖掘

2018-07-03 15:26:35

算法機器學習數據

2020-10-09 12:41:04

算法優化場景

2012-02-14 10:55:24

點贊
收藏

51CTO技術棧公眾號

中文字幕永久在线视频| 在线免费黄色小视频| 深夜福利免费在线观看| 国产日韩欧美一区| 国产亚洲精品久久久久久777| 日日摸天天爽天天爽视频| 国产天堂在线| 精品一区二区三区香蕉蜜桃| 欧美成人网在线| 韩国三级hd两男一女| 色是在线视频| 久久亚洲一级片| 久久一日本道色综合| 中文字幕亚洲无线码a| 免费av不卡在线| 午夜小视频在线观看| 97aⅴ精品视频一二三区| 国产精品精品视频| 欧美三级 欧美一级| 秋霞在线一区| 欧美日韩国产高清一区二区 | 91国产丝袜播放在线| 国产99精品一区| 欧美另类z0zxhd电影| 成年女人18级毛片毛片免费| 免费一级毛片在线观看| 激情五月播播久久久精品| 国内伊人久久久久久网站视频| a级大片在线观看| 高清久久精品| 欧美日韩人人澡狠狠躁视频| 亚洲一区二区高清视频| 五月婷婷综合久久| 久久97超碰色| 欧美最近摘花xxxx摘花| 欧美黄片一区二区三区| 成人黄色av| 亚洲护士老师的毛茸茸最新章节| 国产一区二区在线观看免费视频| 黄色aa久久| 亚洲美女屁股眼交3| 日韩aⅴ视频一区二区三区| 性网爆门事件集合av| 欧美bbbbb| 97婷婷涩涩精品一区| 国产男女猛烈无遮挡在线喷水| 农村少妇一区二区三区四区五区| 91精品国产品国语在线不卡| 国产一区亚洲二区三区| 国产福利在线免费观看| 亚洲视频免费观看| 亚洲高清在线观看一区| 牛牛热在线视频| 成人涩涩免费视频| aa成人免费视频| 国产又大又粗又硬| 裸体在线国模精品偷拍| 国产成人一区二区三区电影| 日本熟女一区二区| 在线成人亚洲| 欧美激情极品视频| 欧美人与禽zozzo禽性配| 93在线视频精品免费观看| 亚洲视频在线观看视频| 野花社区视频在线观看| 精品综合久久88少妇激情| 日韩欧美电影一区| 欧美老女人bb| 亚洲精品在线a| 日韩一区二区三| 久久精品一二三四| 亚洲一二av| 精品日本一线二线三线不卡 | 国产精品综合网| 成人亲热视频网站| 91成人伦理在线电影| 91香蕉视频污在线| 欧美另类在线播放| 美女的奶胸大爽爽大片| 91精品秘密在线观看| 色婷婷av一区二区三区久久| 久久久久亚洲AV成人无在| 国产欧美亚洲精品a| 亚洲欧美激情另类校园| 久久久久无码精品国产sm果冻| 国产成人无码一区二区在线观看| jizzjizz在线观看| 国产欧美日韩另类一区| 日韩欧美精品一区二区| 午夜免费视频在线国产| 国产精品久久久久久妇女6080| 自拍偷拍亚洲色图欧美| 黄av在线播放| 伊人一区二区三区| 国产a级片网站| 末成年女av片一区二区下载| 色综合久久中文综合久久97| 日本999视频| 精品国产黄a∨片高清在线| 在线播放亚洲一区| 亚洲精品激情视频| 亚洲免费成人av在线| 综合国产在线视频| 国产大片免费看| 怡红院精品视频在线观看极品| 国内久久精品视频| 国产精品美女久久久久高潮| 亚洲精品日韩在线观看| a级毛片免费观看在线| 亚洲r级在线视频| 日韩精品一区二区三区色欲av| 粉嫩av一区二区三区四区五区| 欧美精品v国产精品v日韩精品 | 伊人网视频在线| 国产一区二区三区免费播放| 国产精品日韩一区二区免费视频| 欧美大片aaa| 国产精品女同一区二区三区| 成人av在线不卡| 日韩大尺度黄色| 欧美一二三在线| 成年人免费观看视频网站| 亚洲精品888| 日本免费一区二区三区视频观看| 国产女人18毛片水真多| 久久久综合网站| 肉大捧一出免费观看网站在线播放 | 中文字幕日韩视频| 欧美猛少妇色xxxxx| 性爱在线免费视频| 亚洲精品1234| 成人自拍性视频| 日本大臀精品| 亚洲精品免费视频| 欧美伦理片在线观看| 欧美色资源站| 欧美成人精品影院| 涩涩视频在线观看| 久久综合久色欧美综合狠狠| 成人国产在线看| 日韩精品一页| 亚洲视频在线视频| 亚洲黄色一区二区| 国产激情一区二区三区| av动漫免费观看| 97久久网站| 亚洲欧美国产精品久久久久久久 | 中文字幕久久精品| 国产又大又黄又粗| 91在线国内视频| 成人一级生活片| 狂野欧美xxxx韩国少妇| 日韩中文有码在线视频| 男人天堂视频在线| 久久青草国产手机看片福利盒子| 欧美一区二区激情| 91精品啪在线观看国产爱臀| 久久高清视频免费| 国产精品久久无码一三区| 国产精品国产馆在线真实露脸| 亚洲欧美另类动漫| 国产精品一区高清| 国产精彩精品视频| 国产高清免费av在线| 日本精品一级二级| 免费福利视频网站| 日本大胆欧美人术艺术动态| 日韩国产高清一区| 123成人网| 中文字幕在线观看亚洲| 怡春院在线视频| 国产日本一区二区| 免费看污黄网站| 日韩av有码| 国产精品丝袜一区二区三区| av片在线免费观看| 欧美日韩免费高清一区色橹橹 | 蜜桃av免费观看| 日韩综合小视频| 亚洲国产精品123| 中文.日本.精品| 在线观看91久久久久久| 在线视频播放大全| 亚洲激情图片小说视频| 特级特黄刘亦菲aaa级| 国产亚洲成人一区| 日本高清久久一区二区三区| 福利视频一区| 欧美精品在线观看91| 色噜噜一区二区三区| 欧美视频在线观看 亚洲欧| 亚洲成人网在线播放| 人人狠狠综合久久亚洲| 国产福利片一区二区| 成人台湾亚洲精品一区二区 | 国产精品久久久久免费| 综合日韩av| 日韩中文字幕网址| 丰满岳乱妇国产精品一区| 日韩欧美aⅴ综合网站发布| 国产aaaaaaaaa| 国产成人在线影院| 色欲av无码一区二区人妻| 欧美一级淫片| 99久久99| 男人最爱成人网| 久久精品国产精品亚洲| 少妇人妻精品一区二区三区| 在线视频欧美精品| 亚洲欧美一区二区三区四区五区| av欧美精品.com| 一级黄色特级片| 精久久久久久| 日本一区二区三区四区在线观看| 91成人小视频| 欧美又大又粗又长| 成人看av片| 亚洲天堂视频在线观看| 亚洲成人久久精品| 欧美三级在线视频| 亚洲国产成人精品激情在线| 国产精品二区一区二区aⅴ污介绍| 69xxx免费视频| 蜜桃av一区二区三区电影| 无码中文字幕色专区| 99久久综合狠狠综合久久aⅴ| 精品国产乱码久久久久久郑州公司 | 成人免费毛片网| 国语精品视频| 欧洲亚洲在线视频| 丁香高清在线观看完整电影视频| 一区二区欧美久久| 三级在线电影| 欧美www视频| 在线亚洲欧美日韩| 欧美性生交大片免费| 国产第一页第二页| 亚洲男人都懂的| 国产三级在线观看完整版| 99久久婷婷国产综合精品电影| 亚洲在线观看网站| 蜜桃视频在线一区| 成人一区二区三| 在线亚洲成人| 国产 日韩 欧美在线| 亚洲久久久久| 一区二区三区四区视频在线| 国产va免费精品观看精品视频| 狠狠色综合色区| 1769国产精品视频| av成人午夜| 久久久91麻豆精品国产一区| 国产欧美日韩最新| 日韩在线激情| 国产剧情日韩欧美| av成人在线观看| 国产精品精品视频| 日韩网站中文字幕| 国产精品视频精品| 东京一区二区| 国产97色在线| 惠美惠精品网| 日韩av大片在线| 不卡福利视频| 日本高清+成人网在线观看| 亚洲淫成人影院| 9.1国产丝袜在线观看| 黄视频网站在线观看| 91极品视频在线| 国内激情视频在线观看| 欧美一级高清免费播放| 亚洲深夜视频| 国产精品27p| 日韩在线免费| 国产区亚洲区欧美区| 国产精品日本一区二区不卡视频| 亚洲自拍偷拍视频| 91成人入口| 久久精品日产第一区二区三区| 日韩三级毛片| 日韩一区二区电影在线观看| 97精品中文字幕| 国产精品视频网站在线观看| 伊人久久亚洲影院| 国产精品人人妻人人爽人人牛| 蜜臀av一区二区| 91网址在线观看精品| 成人午夜视频在线| 欧美激情视频一区二区三区| 国产理论视频在线观看| 欧美日韩激情一区二区三区| 91丨九色丨丰满| 日韩久久精品一区| 香蕉视频成人在线| 深夜福利91大全| 四虎影院观看视频在线观看| 97在线视频一区| 日韩av一级| 亚洲直播在线一区| 免费久久精品| 超碰97免费观看| 国产午夜久久| 亚洲小视频网站| 成人av中文字幕| 成熟人妻av无码专区| 亚洲精品高清视频在线观看| 日本高清www免费视频| 欧美日韩免费不卡视频一区二区三区 | 久久久久999| 美女扒开腿让男人桶爽久久软| 国产精品免费观看在线| 99re8这里有精品热视频8在线 | 精品国产乱码久久久久久果冻传媒| 在线观看欧美亚洲| 国产精品久久久久久久免费软件 | 91在线精品播放| 欧美交a欧美精品喷水| 亚洲午夜高清视频| 99精品国产一区二区青青牛奶 | 久久久久久美女精品 | 在线亚洲成人| 亚洲欧美天堂在线| 久久精品一区二区| 国产午夜视频在线| 欧美日韩国产电影| 四虎影视精品成人| 九九九久久国产免费| 色综合天天色| 韩日午夜在线资源一区二区| 国产精品成人av| 天堂在线资源视频| 91在线精品一区二区| 久久久久99精品成人片毛片| 在线免费观看日本欧美| 亚洲aaaaaaa| 欧美激情视频在线观看| 国产精品亲子伦av一区二区三区| 久久国产日韩欧美| 欧美日韩一区二区三区四区在线观看 | 国产精品福利影院| 免费看一级视频| 亚洲精品美女网站| 久久精品一二三区| 日韩在线看片| 国产精品无码专区av在线播放| 处破女av一区二区| 青娱乐国产盛宴| 欧美精品18+| 3d成人动漫在线| 国产精品久久二区| 亚洲最好看的视频| 免费观看国产精品视频| 粉嫩一区二区三区在线看 | 亚洲欧洲精品一区二区三区| 91黑人精品一区二区三区| 精品视频久久久| 周于希免费高清在线观看| 久久国产欧美精品| 亚洲中字在线| 成人无码www在线看免费| 午夜精品一区二区三区免费视频| 囯产精品一品二区三区| 欧美高清不卡在线| 福利在线一区| 久久国产精品网| 成人免费毛片aaaaa**| 久久精品亚洲无码| 亚洲国产私拍精品国模在线观看| 超清av在线| 久久66热这里只有精品| 午夜亚洲视频| 少妇久久久久久久久久| 在线观看免费亚洲| 午夜激情视频在线| 亚洲a在线播放| 国内精品久久久久久久影视蜜臀 | 欧美乱妇23p| a视频在线观看| 成人午夜影院在线观看| 亚洲国产二区| 国产又爽又黄无码无遮挡在线观看| 欧美日韩在线一区| 内衣办公室在线| 国产精品欧美久久久| 欧美电影免费播放| 熟妇女人妻丰满少妇中文字幕| 夜夜精品浪潮av一区二区三区| 人妻一区二区三区| 欧美与欧洲交xxxx免费观看| 国产一区二区三区探花| 亚洲高清在线不卡| 婷婷综合在线观看| av中文资源在线| 91在线观看免费网站| 99在线精品免费视频九九视| 亚洲第一香蕉网| 欧美一区日韩一区| 草草在线观看| 亚洲精品国产精品久久 | 一区二区三区国产好的精华液|