国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

如何理解關聯規則apriori算法

極客小將2021-01-04-
簡介理解關聯規則apriori算法:Apriori算法是第一個關聯規則挖掘算法,也是最經典的算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接【類矩陣運算】與剪枝【去掉那些沒必要的中間結果】組成。理解關聯規則apriori算法:一、概念表1某超市的交易數據庫交易號TID顧客購

理解關聯規則apriori算法:Apriori算法是第一個關聯規則挖掘算法,也是**經典的算法,它利用逐層搜索的迭代方法找出數據庫中項集的關系,以形成規則,其過程由連接【類矩陣運算】與剪枝【去掉那些沒必要的中間結果】組成。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

理解關聯規則apriori算法:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

一、概念 uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

表1 某超市的交易數據庫uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

交易號TIDuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

顧客購買的商品uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

交易號TIDuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

顧客購買的商品uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T1uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, cream, milk, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T6uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T2uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, cream, milkuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T7uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

beer, milk, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

cake, milkuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T8uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T4uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

milk, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T9uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, cream, milk, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T5uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, cake, milkuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T10uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

bread, milk, teauxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義一:設I={i1,i2,…,im},是m個不同的項目的集合,每個ik稱為一個項目。項目的集合I稱為項集。其元素的個數稱為項集的長度,長度為k的項集稱為k-項集。引例中每個商品就是一個項目,項集為I={bread, beer, cake,cream, milk, tea},I的長度為6。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義二:每筆交易T是項集I的一個子集。對應每一個交易有一個**標識交易號,記作TID。交易全體構成了交易數據庫D,|D|等于D中交易的個數。引例中包含10筆交易,因此|D|=10。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義三:對于項集X,設定count(X?T)為交易集D中包含X的交易的數量,則項集X的支持度為:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

support(X)=count(X?T)/|D|uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

引例中X={bread, milk}出現在T1,T2,T5,T9和T10中,所以支持度為0.5。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義四:**小支持度是項集的**小支持閥值,記為SUPmin,代表了用戶關心的關聯規則的**低重要性。支持度不小于SUPmin 的項集稱為頻繁集,長度為k的頻繁集稱為k-頻繁集。如果設定SUPmin為0.3,引例中{bread, milk}的支持度是0.5,所以是2-頻繁集。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義五: 關聯規則是一個蘊含式:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

R:X?YuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

其中X?I,Y?I,并且X∩Y=?。表示項集X在某一交易中出現,則導致Y以某一概率也會出現。用戶關心的關聯規則,可以用兩個標準來衡量:支持度和可信度。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義六:關聯規則R的支持度是交易集同時包含X和Y的交易數與|D|之比。即:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

support(X?Y)=count(X?Y)/|D|uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

支持度反映了X、Y同時出現的概率。關聯規則的支持度等于頻繁集的支持度。 uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義七:對于關聯規則R,可信度是指包含X和Y的交易數與包含X的交易數之比。即:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

confidence(X?Y)=support(X?Y)/support(X)uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

可信度反映了如果交易中包含X,則交易包含Y的概率。一般來說,只有支持度和可信度較高的關聯規則才是用戶感興趣的。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定義八:設定關聯規則的**小支持度和**小可信度為SUPmin和CONFmin。規則R的支持度和可信度均不小于SUPmin和CONFmin ,則稱為強關聯規則。關聯規則挖掘的目的就是找出強關聯規則,從而指導商家的決策。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這八個定義包含了關聯規則相關的幾個重要基本概念,關聯規則挖掘主要有兩個問題:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

找出交易數據庫中所有大于或等于用戶指定的**小支持度的頻繁項集。利用頻繁項集生成所需要的關聯規則,根據用戶設定的**小可信度篩選出強關聯規則。

目前研究人員主要針對第一個問題進行研究,找出頻繁集是比較困難的,而有了頻繁集再生成強關聯規則就相對容易了。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

二、理論基礎 uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

首先來看一個頻繁集的性質。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

定理:如果項目集X是頻繁集,那么它的非空子集都是頻繁集。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

根據定理,已知一個k-頻繁集的項集X,X的所有k-1階子集都肯定是頻繁集,也就肯定可以找到兩個k-1頻繁集的項集,它們只有一項不同,且連接后等于X。這證明了通過連接k-1頻繁集產生的k-候選集覆蓋了k-頻繁集。同時,如果k-候選集中的項集Y,包含有某個k-1階子集不屬于k-1頻繁集,那么Y就不可能是頻繁集,應該從候選集中裁剪掉。Apriori算法就是利用了頻繁集的這個性質。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

三、算法步驟: uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

首先是測試數據:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

交易IDuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

商品ID列表uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T100uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I2,I5uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T200uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I2,I4uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T300uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I2,I3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T400uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I2,I4uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T500uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T600uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I2,I3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T700uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T800uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I2,I3,I5uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

T900uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

I1,I2,I3uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

算法的步驟圖:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

可以看到,第三輪的候選集發生了明顯的縮小,這是為什么呢?uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

請注意取候選集的兩個條件:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

1.兩個K項集能夠連接的兩個條件是,它們有K-1項是相同的。所以,(I2,I4)和(I3,I5)這種是不能夠進行連接的。縮小了候選集。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

2.如果一個項集是頻繁集,那么它不存在不是子集的頻繁集。比如(I1,I2)和(I1,I4)得到(I1,I2,I4),而(I1,I2,I4)存在子集(I1,I4)不是頻繁集。縮小了候選集。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

第三輪得到的2個候選集,正好支持度等于**小支持度。所以,都算入頻繁集。uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

這時再看第四輪的候選集與頻繁集結果為空uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

可以看到,候選集和頻繁集居然為空了!因為通過第三輪得到的頻繁集自連接得到{I1,I2,I3,I5},它擁有子集{I2,I3,I5},而{I2,I3,I5}不是頻繁集,不滿足:頻繁集的子集也是頻繁集這一條件,所以被剪枝剪掉了。所以整個算法終止,取**后一次計算得到的頻繁集作為**終的頻繁集結果:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

也就是:['I1,I2,I3', 'I1,I2,I5']uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

四、代碼:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

編寫python代碼實現Apriori算法。代碼需要注意如下兩點:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

由于Apriori算法假定項集中的項是按字典序排序的,而集合本身是無序的,所以我們在必要時需要進行set和list的轉換;由于要使用字典(support_data)記錄項集的支持度,需要用項集作為key,而可變集合無法作為字典的key,因此在合適時機應將項集轉為固定集合frozenset。def local_data(file_path): import pandas as pd dt = pd.read_excel(file_path) data = dt['con'] locdata = [] for i in data: locdata.append(str(i).split(",")) # print(locdata) # change to [[1,2,3],[1,2,3]] length = [] for i in locdata: length.append(len(i)) # 計算長度并存儲 # print(length) ki = length[length.index(max(length))] # print(length[length.index(max(length))]) # length.index(max(length)讀取**大值的位置,然后再定位取出**大值 return locdata,kidef create_C1(data_set): """ Create frequent candidate 1-itemset C1 by scaning data set. Args: data_set: A list of transactions. Each transaction contains several items. Returns: C1: A set which contains all frequent candidate 1-itemsets """ C1 = set() for t in data_set: for item in t: item_set = frozenset([item]) C1.add(item_set) return C1def is_apriori(Ck_item, Lksub1): """ Judge whether a frequent candidate k-itemset satisfy Apriori property. Args: Ck_item: a frequent candidate k-itemset in Ck which contains all frequent candidate k-itemsets. Lksub1: Lk-1, a set which contains all frequent candidate (k-1)-itemsets. Returns: True: satisfying Apriori property. False: Not satisfying Apriori property. """ for item in Ck_item: sub_Ck = Ck_item - frozenset([item]) if sub_Ck not in Lksub1: return False return Truedef create_Ck(Lksub1, k): """ Create Ck, a set which contains all all frequent candidate k-itemsets by Lk-1's own connection operation. Args: Lksub1: Lk-1, a set which contains all frequent candidate (k-1)-itemsets. k: the item number of a frequent itemset. Return: Ck: a set which contains all all frequent candidate k-itemsets. """ Ck = set() len_Lksub1 = len(Lksub1) list_Lksub1 = list(Lksub1) for i in range(len_Lksub1): for j in range(1, len_Lksub1): l1 = list(list_Lksub1[i]) l2 = list(list_Lksub1[j]) l1.sort() l2.sort() if l1[0:k-2] == l2[0:k-2]: Ck_item = list_Lksub1[i] | list_Lksub1[j] # pruning if is_apriori(Ck_item, Lksub1): Ck.add(Ck_item) return Ckdef generate_Lk_by_Ck(data_set, Ck, min_support, support_data): """ Generate Lk by executing a delete policy from Ck. Args: data_set: A list of transactions. Each transaction contains several items. Ck: A set which contains all all frequent candidate k-itemsets. min_support: The minimum support. support_data: A dictionary. The key is frequent itemset and the value is support. Returns: Lk: A set which contains all all frequent k-itemsets. """ Lk = set() item_count = {} for t in data_set: for item in Ck: if item.issubset(t): if item not in item_count: item_count[item] = 1 else: item_count[item] += 1 t_num = float(len(data_set)) for item in item_count: if (item_count[item] / t_num) >= min_support: Lk.add(item) support_data[item] = item_count[item] / t_num return Lkdef generate_L(data_set, k, min_support): """ Generate all frequent itemsets. Args: data_set: A list of transactions. Each transaction contains several items. k: Maximum number of items for all frequent itemsets. min_support: The minimum support. Returns: L: The list of Lk. support_data: A dictionary. The key is frequent itemset and the value is support. """ support_data = {} C1 = create_C1(data_set) L1 = generate_Lk_by_Ck(data_set, C1, min_support, support_data) Lksub1 = L1.copy() L = [] L.append(Lksub1) for i in range(2, k+1): Ci = create_Ck(Lksub1, i) Li = generate_Lk_by_Ck(data_set, Ci, min_support, support_data) Lksub1 = Li.copy() L.append(Lksub1) return L, support_datadef generate_big_rules(L, support_data, min_conf): """ Generate big rules from frequent itemsets. Args: L: The list of Lk. support_data: A dictionary. The key is frequent itemset and the value is support. min_conf: Minimal confidence. Returns: big_rule_list: A list which contains all big rules. Each big rule is represented as a 3-tuple. """ big_rule_list = [] sub_set_list = [] for i in range(0, len(L)): for freq_set in L[i]: for sub_set in sub_set_list: if sub_set.issubset(freq_set): conf = support_data[freq_set] / support_data[freq_set - sub_set] big_rule = (freq_set - sub_set, sub_set, conf) if conf >= min_conf and big_rule not in big_rule_list: # print freq_set-sub_set, " => ", sub_set, "conf: ", conf big_rule_list.append(big_rule) sub_set_list.append(freq_set) return big_rule_listif __name__ == "__main__": """ Test """ file_path = "test_aa.xlsx" data_set,k = local_data(file_path) L, support_data = generate_L(data_set, k, min_support=0.2) big_rules_list = generate_big_rules(L, support_data, min_conf=0.4) print(L) for Lk in L: if len(list(Lk)) == 0: break print("="*50) print("frequent " + str(len(list(Lk)[0])) + "-itemsets support") print("="*50) for freq_set in Lk: print(freq_set, support_data[freq_set]) print() print("Big Rules") for item in big_rules_list: print(item[0], "=>", item[1], "conf: ", item[2])

文件格式:uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

test_aa.xlsxuxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

name con T1 2,3,5T2 1,2,4T3 3,5T5 2,3,4T6 2,3,5T7 1,2,4T8 3,5T9 2,3,4T10 1,2,3,4,5

相關免費學習推薦:python視頻教程uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以上就是如何理解關聯規則apriori算法的詳細內容,更多請關注少兒編程網其它相關文章!uxO少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

国产乱子伦高清露脸对白-国产精品欧美久久久久天天影视-国产91视频一区-亚洲欧美日产综合在线网-黄视频网站在线看-国产欧美亚洲精品第1页-亚洲www在线-大学生女人三级在线播放-日本在线视频www鲁啊鲁-国产成人精品一区二区仙踪林-69精品欧美一区二区三区-成人欧美亚洲-日本污污网站-中国妞xxxhd露脸偷拍视频-国产精品aⅴ在线观看-精品中文字幕在线

        老司机午夜网站| 欧美一级在线看| 各处沟厕大尺度偷拍女厕嘘嘘| 国产第一页视频| 色一情一乱一乱一区91| 欧美精品卡一卡二| 午夜精品免费看| 狠狠干 狠狠操| 毛片毛片毛片毛片毛| 国产精品12345| 精品国产无码在线| 少妇一级淫免费放| 欧美 国产 综合| 日韩一级特黄毛片| 亚洲18在线看污www麻豆| 日韩中文字幕在线视频观看| 超碰在线超碰在线| 男人的天堂最新网址| 熟妇人妻va精品中文字幕| 成人av在线播放观看| 欧美xxxxxbbbbb| 亚洲老女人av| 午夜在线观看av| 国产成人精品无码播放| 黄色免费观看视频网站| 国产一区 在线播放| 日本老太婆做爰视频| www.桃色.com| 日本美女久久久| 捷克做爰xxxⅹ性视频| 黑森林精品导航| 国内自拍视频网| 亚洲三级视频网站| www.com黄色片| 亚洲一级免费在线观看| 日本在线一二三区| 国内精品国产三级国产aⅴ久| 奇米影视四色在线| 自拍偷拍一区二区三区四区| 浓精h攵女乱爱av| 欧美一级特黄aaa| 五月天视频在线观看| 国产大尺度在线观看| 97av中文字幕| 精品久久久久久久久久中文字幕| av免费观看网| 亚洲视频在线观看一区二区三区| 亚洲娇小娇小娇小| 好吊色这里只有精品| 久久视频免费在线| 久久久久久久久久久视频| 成人av一级片| 在线观看免费视频高清游戏推荐| 国产女同无遮挡互慰高潮91| 青青草原网站在线观看| 日本国产在线播放| 国产精品自拍视频在线| 日韩在线视频在线| 黑人糟蹋人妻hd中文字幕| 嫩草视频免费在线观看| 久久久天堂国产精品| 国产乱子伦农村叉叉叉| 超碰在线资源站| 欧美一区二区激情| 污片在线免费看| 免费cad大片在线观看| 欧美日韩怡红院| 亚洲 自拍 另类小说综合图区| 超碰影院在线观看| 妺妺窝人体色www看人体| 另类小说第一页| 欧美亚洲黄色片| 永久免费黄色片| 国产69精品久久久久999小说| 成人亚洲精品777777大片| 国产爆乳无码一区二区麻豆| 国产三区在线视频| 国产日韩第一页| 伊人色在线观看| 日韩一级片播放| 中文字幕无码精品亚洲35| 久久国产精品免费观看| 日韩不卡的av| 中文字幕一区二区三区四区在线视频| 国产妇女馒头高清泬20p多| 亚洲欧美日本一区二区| 中文字幕国产免费| 国产情侣av自拍| 日本一本二本在线观看| 无码专区aaaaaa免费视频| 国产又大又长又粗又黄| 在线免费黄色小视频| 国产理论在线播放| 成人性生生活性生交12| 国产精品免费入口| 美女av免费在线观看| 久久久久久免费看| 岛国大片在线播放| 福利视频免费在线观看| 18禁裸男晨勃露j毛免费观看| avove在线观看| 一级一片免费播放| 日本一级淫片演员| 日本中文字幕在线不卡| av在线网站免费观看| 看全色黄大色大片| 日本天堂免费a| 成人一区二区免费视频| 久操网在线观看| 亚洲欧洲日产国码无码久久99| 国产九九九九九| 91视频最新入口| 国产a级片免费观看| 亚洲综合日韩欧美| www.午夜av| 欧美大黑帍在线播放| 欧美一级欧美一级| 男人操女人免费| jizz18女人| 国内少妇毛片视频| 黄色a级片免费| 伊人色在线视频| 奇米影视亚洲色图| 波多结衣在线观看| 91嫩草国产丨精品入口麻豆| 日本丰满少妇xxxx| 污污动漫在线观看| wwwwww欧美| 国产免费999| 黄色网在线视频| 日韩av一二三四| 偷拍盗摄高潮叫床对白清晰| 三上悠亚久久精品| 中文字幕第一页在线视频| 男女视频网站在线观看| 欧美成年人视频在线观看| 久久久久久av无码免费网站下载| 蜜臀久久99精品久久久酒店新书| 天天操天天干天天玩| 欧美 国产 小说 另类| 精品日韩在线播放| 国产视频手机在线播放| 91精品国产91久久久久麻豆 主演| 福利在线一区二区三区| 97在线免费视频观看| 91色国产在线| 欧美成人高潮一二区在线看| 在线视频日韩欧美| 手机在线看福利| 久久艹国产精品| 欧美 国产 精品| 亚洲天堂2018av| 999香蕉视频| 日本午夜激情视频| 国产精品igao激情视频| 日本高清久久久| 男女爽爽爽视频| 欧美黄色免费影院| 五十路熟女丰满大屁股| 免费人成在线观看视频播放| 国内国产精品天干天干| 韩国中文字幕av| 北条麻妃av高潮尖叫在线观看| 800av在线免费观看| ijzzijzzij亚洲大全| 欧美成人三级在线播放| www.日本xxxx| 欧美婷婷精品激情| 大香煮伊手机一区| 99视频免费播放| 女性隐私黄www网站视频| 久久精品国产精品亚洲色婷婷| 国产尤物av一区二区三区| 中文字幕免费高| 美女黄色免费看| 高清欧美精品xxxxx| koreanbj精品视频一区| 成人中文字幕在线播放| 播放灌醉水嫩大学生国内精品| 久久久亚洲精品无码| 91丨porny丨探花| 缅甸午夜性猛交xxxx| 欧美 国产 小说 另类| 欧美自拍小视频| 天天综合中文字幕| 男女啪啪的视频| 亚洲天堂第一区| 欧美一级视频在线播放| 日本黄色三级大片| 日本男人操女人| 久久久九九九热| 东北少妇不带套对白| 成人性视频欧美一区二区三区| 国产一级特黄a大片免费| 黄色片免费网址| 人妻av无码专区| 国产无套粉嫩白浆内谢的出处| 国产999免费视频| www.在线观看av| 亚洲男人天堂色|