第8章 關聯分析 王海.

Slides:



Advertisements
Similar presentations
     第八课 财政与税收      1.国家收入的分配:财政收入与支出;财政的作用 2.征税与纳税:税收及其种类;依法纳税.
Advertisements

第五章 企业所得税、个人所得税.
九十五年國文科命題知能 研習分享.
司 法 考 试 题 2002年——2009年.
2011年会计初级职称全国统考 初级会计实务 教案 主讲:高峰 2010年12月.
人力资源管理资格考证(四级) 总体情况说明.
财经法规与会计职业道德 Company Logo.
2013届高考复习方案(第一轮) 专题课件.
第2讲 中国的文学、艺术、教育 与19世纪以来的世界文艺.
全国一级建造师执业资格考试 《建设工程法规及相关知识》 高 唱
行政诉讼法.
财产行为税 是以纳税人拥有的财产数量或财产价值为征税对象或为了实现某种特定的目的,以纳税人的某些特定行为为征税对象而开征的税种。包括房产税、城镇土地使用税、车船税、土地增值税、资源税、印花税、城市维护建设税、 契税、耕地占用税等九个税种。由于其税收收入基本上为地方政府财政收入,所以又称为地方税。 除财产行为税以外,还有流转税、所得税两大类税收。
第十六专题 近代以来世界的科学 技术和文学艺术
第八章 建设有中国特色的社会主义政治.
第六章 其他税收法律制度.
服务热线: 菏泽教师招聘考试统考Q群: 菏泽教师统考教育基础模拟题解析.
第二单元 生产、劳动与经营.
第一章 运动的描述  .
会计从业资格 主讲:栗银芳.
新准则框架与首次执行 企业会计准则 主讲人:陈清宇.
2011年广西高考政治质量分析 广西师范大学附属外国语学校 蒋 楠.
第23课时 现代中国的科学技术与 文化教育事业.
第二编 著作权法.
知识回顾 1、通过仔细观察酒精灯的火焰,你可以发现火焰可以分为 、 、 。 外焰 内焰 焰心 外焰 2、温度最高的是 。
2016届高三期初调研 分析 徐国民
专题4 地表变化及影响.
主题一 主题二 模块小结与测评 主题三 考点一 主题四 考点二 主题五 考点三 主题六 考点四 命题热点聚焦 考点五 模块综合检测 考点六.
初级会计实务 第十章 事业单位会计基础 主讲人:杨菠.
第二章 股票.
第十章《热力学定律 》 10.5《热力学第二定律 的微观解释》.
频繁模式与关联规则挖掘 林琛 博士、副教授.
会计学 第九章 财务会计报告.
CH3 關聯規則 授課老師:簡禎富 講座教授 簡禎富、許嘉裕©2014 著作權所有.
关联.
第四节 会计监督.
财经法规与会计职业道德 (3) 四川财经职业学院.
企业所得税.
安全系着你我他 安全教育知识竞赛.
(一) 第一单元 (45分钟 100分).
第五章 电流和电路 制作人 魏海军
第一章 民法概述 一、民法概念 P4 二、民法的调整对象 三、民法的分类 四、民法的渊源 P10 五、民法的适用范围(效力范围)
刑法分论5-2 周铭川.
第七章 财务报告 财务报告 第一节 财务报告概述 一、财务报告及其目标: 1、概念:财务报告是指企业对外提供的反映企业某一特定日期
线索一 线索二 复习线索 专题五 线索三 模块二 第二部分 考点一 高考考点 考点二 考点三 配套课时检测.
发展心理学 王 荣 山.
第十章 行政事业单位会计.
2017年9月10日星期日.
第十课 创新意识与社会进步 1.辩证的否定观:辩证否定、形而上学的否定观
第 十一 课  寻觅社会的真谛.
政治第二轮专题复习专题七 辩 证 法.
第二章 负债 1、负债的概念:是指过去的交易或事项形成的、预 期会导致经济利益流出企业的现时义务。 2、负债的分类 流动负债 短期借款
第四章第一节 增值税法律制度2 主讲老师:梁天 经济法基础.
第七章 财务报告 主讲老师:王琼 上周知识回顾.
经济法基础习题课 第7讲 主讲老师:赵钢.
数据挖掘: 概念和技术 — Chapter 6 — ©张晓辉 复旦大学 (国际)数据库研究中心
基于类关联规则的分类 Classification Based on Class-Association Rules
10.2 排列 2006年4月6日.
练习: 由三个不同的英文字母和三个不同的阿拉伯数字组成一个六位号码(每位不能重复),并且3个英文字母必须合成一组出现,3个阿拉伯数字必须合成一组出现,一共有多少种方法?
《2015考试说明》新增考点:“江苏省地级市名称”简析
第二章劳动合同法律制度(2) 主讲老师:梁天 经济法基础.
乘法公式 (1) 乘法分配律 (2) 和的平方公式 (3) 差的平方公式 (4) 平方差公式.
变 阻 器 常州市北郊初级中学 陆 俊.
经济法基础习题课 主讲:赵钢.
第五章 相交线与平行线 三线八角.
会计基础 第二章 会计要素与会计等式 刘颖
基础会计.
 第四章 消费税法律制度 经济法基础 模板来自于
分配律 ~ 觀念 15 × 15 × + 15 × 乘法公式 蘇德宙 老師 台灣數位學習科技股份有限公司
坚持,努力,机会留给有准备的人 第一章 四大金融资产总结 主讲老师:陈嫣.
中级会计实务 ——第一章 总论 主讲:孙文静
Presentation transcript:

第8章 關聯分析 王海

關聯關係: 沃爾瑪啤酒與尿布 一個來自沃爾瑪超市的真實案例,尿布與啤酒這兩種風馬牛不相及的商品居然擺在一起。但這一奇怪的舉措居然使尿布和啤酒的稍量大幅增加了。這可不是一個笑話,而是一直被商家所津津樂道的發生在美國沃爾瑪連鎖超市的真實案例。原來,美國的婦女通常在家照顧孩子,所以她們經常會囑咐丈夫在下班回家的路上為孩子買尿布,而丈夫在買尿布的同時又會順手購買自己愛喝的啤酒。這個發硯為商家帶來了大量的利潤,但是如何從浩如煙海卻又雜亂無章的數據中,發現啤酒和尿布銷售之間的聯繫呢?這又給了我們什麼樣的啟示呢?

“啤酒和尿布”的故事是行銷屆的神話! 關聯分析應用:購物籃分析 “啤酒”和“尿布”兩個看上去沒有關係的商品擺放在一起進行銷售、並獲得了很好的銷售收益,這種現象就是賣場中商品之間的關聯性,研究“啤酒與尿布”關聯的方法就是購物籃分析,購物籃分析是沃爾瑪秘而不宣的獨門武器,購物籃分析可以幫助我們在門店的銷售過程中找到具有關聯關係的商品,並以此獲得銷售收益的增長!   “啤酒和尿布”的故事是行銷屆的神話!

定義:關聯分析(Association Analysis) 關聯分析用於發現隱藏在大型數據集中的令人感 興趣的聯繫,所發現的模式通常用關聯規則或頻 繁項集的形式表示。 關聯分析可以應用於生物資訊學、醫療診斷、網 頁挖掘、科學數據分析等 Rules Discovered: {Diaper} --> {Beer}

定義: 頻繁項集(Frequent Itemset) 包含0個或多個項的集合 例子: {Milk, Bread, Diaper} k-項集 如果一個項集包含k個項 支持度計數(Support count )() 包含特定項集的事務個數 例如: ({Milk, Bread,Diaper}) = 2 支持度(Support) 包含項集的事務數與總事務數的比值 例如: s({Milk, Bread, Diaper}) = 2/5 頻繁項集(Frequent Itemset) 滿足最小支持度閾值( minsup )的所 有項集

定義: 關聯規則(Association Rule) 關聯規則是形如 X  Y的蘊含運算式, 其中 X 和 Y 是不相交的項集 例子: {Milk, Diaper}  {Beer} 關聯規則的強度 支持度 Support (s) 確定項集的頻繁程度 置信度 Confidence (c) 確定Y在包含X的事 務中出現的頻繁程度 Example:

關聯規則挖掘問題 關聯規則挖掘問題:給定事務的集合 T, 關聯規則 發現是指找出支持度大於等於 minsup並且置信度 大於等於minconf的所有規則, minsup和minconf是 對應的支持度和置信度閾值 挖掘關聯規則的一種原始方法是:Brute-force approach: 計算每個可能規則的支持度和置信度 這種方法計算代價過高,因為可以從數據集提取的規則 的數量達指數級 從包含d個項的數據集提取的可能規則的總數R=3d- 2d+1+1,如果d等於6,則R=602

For rule A  C: Min. support 50% Min. confidence 50% Transaction-id Items bought 10 A, B, C 20 A, C 30 A, D 40 B, E, F Frequent pattern Support {A} 75% {B} 50% {C} {A, C} For rule A  C: support = support({A}{C}) = 50% confidence = support({A}{C})/support({A}) = 66.6%

挖掘關聯規則(Mining Association Rules) 大多數關聯規則挖掘演算法通常採用的一種策略 是,將關聯規則挖掘任務分解為如下兩個主要的 子任務: 頻繁項集產生(Frequent Itemset Generation) 其目標是發現滿足最小支持度閾值的所有項集,這些項集稱 作頻繁項集。 規則的產生(Rule Generation) 其目標是從上一步發現的頻繁項集中提取所有高置信度的規 則,這些規則稱作強規則(Strong Rule)。

頻繁項集產生(Frequent Itemset Generation) 格結構(Lattice Structure)

頻繁項集產生(Frequent Itemset Generation) Brute-force 方法: 把格結構中每個項集作為候選項集 將每個候選項集和每個事務進行比較,確定每個候選項集 的支持度計數。 時間複雜度 ~ O(NMw),這種方法的開銷可能非常大。

降低產生頻繁項集計算複雜度的方法 減少候選項集的數量 (M) 減少比較的次數 (NM) 先驗(Apriori)原理 替代將每個候選項集與每個事務相匹配,可以使用更高 級的數據結構,或存儲候選項集或壓縮數據集,來減少 比較次數

先驗原理( Apriori principle) 先驗原理: 如果一個項集是頻繁的,則它的所有子集一定也是頻繁 的 相反,如果一個項集是非頻繁的,則它的所有超集 合也一定是非頻繁的: 這種基於支持度度量修剪指數搜索空間的策略稱為基於 支持度的剪枝(Support-based pruning) 這種剪枝策略依賴於支持度度量的一個關鍵性質,即一 個項集的支持度決不會超過它的子集的支持度。這個性 質也稱為支持度度量的反單調性(Anti-monotone)。

先驗原理的圖示 發現是非頻繁的 被剪枝的超集合

Apriori演算法的頻繁項集產生

Apriori演算法的頻繁項集產生 支持度閾值=60% 最小支持度計數 = 3 Items (1-itemsets) Pairs (2-itemsets) 支持度閾值=60% 最小支持度計數 = 3 Triplets (3-itemsets) 枚舉所有項集將產生 C61+ C62 + C63 = 41個候選 而使用先驗原理,將較少為 6 + 6 + 1 = 13

Apriori偽代碼(一) 演算法:Apriori。使用逐層反覆運算方法基於候選產生找出頻繁項集。 return L=UkLk; 輸入: D:實物數據庫; Min_sup:最小支持度計數閾值。 輸出:L:D中的頻繁項集。 方法: L1=find_frequent_1-itemsets(D); for(k=2;Lk-1 !=¢;k++){ Ck=apriori_gen(Lk-1); For each 事務 t∈D{//掃描D用於計數 Ct=subset(Ck,t);//得到t的子集,它們是候選 for each候選c∈C; C.count++; } Lk={c∈C|c.count>=min_stp} return L=UkLk;

Apriori偽代碼 Procedure apriori_gen(Lk-1:frequent(k-1)-itemsets) for each項集l1∈Lk-1 for each項集l2∈Lk-1 If (l1[1]=l2[1]) ^ (l1[2]=l2[2]) ^… (l1[k-2]=l2[k-2]) ^ (l1[k-1]=l2[k-1]) then{ c=l1∞l2//連接步:產生候選 if has_infrequent_subset(c,Lk-1)then delete c;//剪枝部;刪除非頻繁的候選 else add c to Ck; } return Ck; procedure has_infrequent_subset (c:candidate k-itemset; Lk-1:frequent (k-1)-itemset)//使用先驗知識 for each(k-1)-subset s of c If s∉ Lk-1then return TRUE; return FALSE;

Apriori 演算法 Apriori演算法的頻繁項集產生的部分有兩個重要的 特點: 它是一個逐層演算法。即從頻繁1-項集到最長的頻繁項 集,它每次遍歷項集格中的一層 它使用產生-測試策略來發現頻繁項集。在每次反覆運 算,新的候選項集由前一次反覆運算發現的頻繁項集產 生,然後對每個候選的支持度進行計數,並與最小支持 度閾值進行比較。 該演算法需要的總反覆運算次數是kmax+1,其中kmax是 頻繁項集的最大長度

候選的產生與剪枝(構造apriori-gen函數) 蠻力方法 蠻力方法把所有的k-項集都看作可能的候選,然後使用 候選剪枝除去不必要的候選 第k層產生的候選項集的數目為 雖然候選產生是相當簡單的,但是候選剪枝的開銷極大 ,因為必須考察的項集數量太大。 設每一個候選項集所需的計算量為O(k),這種方法 的總複雜度為

候選的產生與剪枝 候選產生 項 圖 產生候選3-項集的蠻力方法 項集 {啤酒、麵包、可樂} {啤酒、麵包、尿布} {啤酒、麵包、牛奶} 項集 {啤酒、麵包、雞蛋} {啤酒、可樂、尿布} {啤酒、可樂、牛奶} {啤酒、可樂、雞蛋} {啤酒、尿布,牛奶} {啤酒、尿布、雞蛋} {啤酒、牛奶、雞蛋} {麵包、可樂、尿布} {麵包、可樂、牛奶} {麵包、可樂、雞蛋} {麵包、尿布、牛奶} {麵包、尿布、雞蛋} {麵包、牛奶、雞蛋} {可樂、尿布、牛奶} {可樂、尿布、雞蛋} {可樂、牛奶、雞蛋} {尿布、牛奶、雞蛋} 項 項 啤酒 麵包 可樂 尿布 牛奶 雞蛋 候選剪枝 項集 {麵包、尿布、牛奶} 圖 產生候選3-項集的蠻力方法

候選的產生與剪枝 這種方法用其他頻繁項來擴展每個頻繁(k-1)-項集 這種方法將產生 個候選k-項集,其中|Fj|表示頻繁j-項 集的個數。這種方法總複雜度是 這種方法是完全的,因為每一個頻繁k-項集都是由一個頻繁(k-1 )-項集和一個頻繁1-項集組成的。因此,所有的頻繁k-項集是這 種方法所產生的候選k-項集的一部分。 然而,這種方法很難避免重複地產生候選項集。 如:{麵包,尿布,牛奶}不僅可以由合併項集{麵包,尿布}和{牛奶 }得到,而且還可以由合併{麵包,牛奶}和{尿布}得到,或由合併{ 尿布,牛奶}和{麵包}得到。

候選的產生與剪枝 圖 通過合併頻繁(k-1)-項集和頻繁1-項集生成和剪枝候選k-項集。 注意:某些候選是不必要,因為它們的子集是非頻繁的 頻繁2-項集 項 {啤酒、尿布} {麵包、尿布} {麵包、牛奶} {尿布、牛奶} 候選產生 項集 {啤酒、尿布、麵包} {啤酒、尿布、牛奶} {麵包、尿布、牛奶} {麵包、牛奶、啤酒} 候選剪枝 項集 {麵包、尿布、牛奶} 頻繁1-項集 項 啤酒 麵包 尿布 牛奶 圖 通過合併頻繁(k-1)-項集和頻繁1-項集生成和剪枝候選k-項集。 注意:某些候選是不必要,因為它們的子集是非頻繁的

候選的產生與剪枝 避免產生重複的候選項集的一種方法是確保每個頻繁項集中的項 以字典序存儲,每個頻繁(k-1)-項集X只用字典序比X中所有的 項都大的頻繁項進行擴展 如:項集{麵包,尿布}可以用項集{牛奶}擴展,因為“牛奶”( Milk)在字典序下比“麵包”(Bread)和“尿布”(Diapers)都 大。 儘管這種方法比蠻力方法有明顯改進,但是仍然產生大量不必要 的候選。 例如,通過合併{啤酒,尿布}和{牛奶}而得到的候選是不必要的。 因為它的子集{啤酒,牛奶}是非頻繁的。

候選的產生與剪枝 這種方法合併一對頻繁(k-1)-項集,僅當它們的前k-2 個項都相同。 如頻繁項集{麵包,尿布}和{麵包,牛奶}合併,形成了 候選3-項集{麵包,尿布,牛奶}。演算法不會合併項集 {啤酒,尿布}和{尿布,牛奶},因為它們的第一個項不 相同。 然而,由於每個候選都由一對頻繁(k-1)-項集合並而 成,因此,需要附加的候選剪枝步驟來確保該候選的 其餘k-2個子集是頻繁的。

候選的產生與剪枝 圖 通過合併一對頻繁(k-1)-項集生成和剪枝候選k-項集 項 {啤酒、尿布} {麵包、尿布} 頻繁2-項集 {麵包、牛奶} {尿布、牛奶} 候選剪枝 候選產生 項集 {麵包、尿布、牛奶} 項集 {麵包、尿布、牛奶} 頻繁2-項集 項 {啤酒、尿布} {麵包、尿布} {麵包、牛奶} {尿布、牛奶} 圖 通過合併一對頻繁(k-1)-項集生成和剪枝候選k-項集

支持度計數 支持度計數過程確定在apriori-gen函數的候選項剪 枝步驟保留下來的每個候選項集出現的頻繁程度。 計算支持度的主要方法: 一種方法是將每個事務與所有的候選項集進行比較,並且更新包 含在事務中的候選項集的支持度計數。這種方法是計算昂貴的, 尤其當事務和候選項集的數目都很大時。 另一種方法是枚舉每個事務所包含的項集,並且利用它們更新對 應的候選項集的支持度。

枚舉事務t的所有包含3個項的子集

產生Hash樹 Hash函數h(p)=p mod 3 假設有15個候選3-項集: {1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}, {1 5 9}, {1 3 6}, {2 3 4}, {5 6 7}, {3 4 5}, {3 5 6}, {3 5 7}, {6 8 9}, {3 6 7}, {3 6 8} 2 3 4 5 6 7 1 4 5 1 3 6 1 2 4 4 5 7 1 2 5 4 5 8 1 5 9 3 4 5 3 5 6 3 5 7 6 8 9 3 6 7 3 6 8 1,4,7 2,5,8 3,6,9 Hash function

Hash樹結構 Hash Function Candidate Hash Tree 1 5 9 1 4 5 1 3 6 3 4 5 3 6 7 3 6 8 3 5 6 3 5 7 6 8 9 2 3 4 5 6 7 1 2 4 4 5 7 1 2 5 4 5 8 1,4,7 3,6,9 2,5,8 Hash on 1, 4 or 7

Hash樹結構 Hash Function Candidate Hash Tree 1 5 9 1 4 5 1 3 6 3 4 5 3 6 7 3 6 8 3 5 6 3 5 7 6 8 9 2 3 4 5 6 7 1 2 4 4 5 7 1 2 5 4 5 8 1,4,7 3,6,9 2,5,8 Hash on 2, 5 or 8

Hash樹結構 Hash Function Candidate Hash Tree 1 5 9 1 4 5 1 3 6 3 4 5 3 6 7 3 6 8 3 5 6 3 5 7 6 8 9 2 3 4 5 6 7 1 2 4 4 5 7 1 2 5 4 5 8 1,4,7 3,6,9 2,5,8 Hash on 3, 6 or 9

使用Hash樹進行支持度計數 1 2 3 5 6 1 + 2 3 5 6 3 5 6 2 + 5 6 3 + transaction 1,4,7 2,5,8 3,6,9 Hash Function 1 2 3 5 6 transaction 1 + 2 3 5 6 3 5 6 2 + 1 5 9 1 4 5 1 3 6 3 4 5 3 6 7 3 6 8 3 5 6 3 5 7 6 8 9 2 3 4 5 6 7 1 2 4 4 5 7 1 2 5 4 5 8 5 6 3 +

使用Hash樹進行支持度計數 1,4,7 2,5,8 3,6,9 Hash Function 1 2 3 5 6 transaction 1 + 2 3 5 6 3 5 6 2 + 3 5 6 1 2 + 5 6 3 + 5 6 1 3 + 2 3 4 6 1 5 + 5 6 7 1 4 5 1 3 6 3 4 5 3 5 6 3 5 7 3 6 7 3 6 8 6 8 9 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8

使用Hash樹進行支持度計數 1,4,7 2,5,8 3,6,9 Hash Function 1 2 3 5 6 transaction 1 + 2 3 5 6 3 5 6 2 + 3 5 6 1 2 + 5 6 3 + 5 6 1 3 + 2 3 4 6 1 5 + 5 6 7 1 4 5 1 3 6 3 4 5 3 5 6 3 5 7 3 6 7 3 6 8 6 8 9 1 2 4 1 2 5 1 5 9 4 5 7 4 5 8 15個項集中的9個與事務進行比較

使用Hash樹進行支持度計數 存放在被訪問的葉結點中的候選項集與事務進行比 較,如果候選項集是該事務的子集,則增加它的支 持度計數; 在該例子中 ,訪問了9個葉子結點中的5個; 15個項集中的9個與事務進行比較。

計算複雜性 支持度閾值 項數 事務數 事務的平均寬度 降低支持度閾值通常將導致更多的項集是頻繁的。計算複雜度增加 隨著支持度閾值的降低,頻繁項集的最大長度將增加,導致演算法 需要掃描數據集的次數也將增多 項數 隨著項數的增加,需要更多的空間來存儲項的支持度計數。如果頻 繁項集的數目也隨著數據項目數增加而增長,則由於演算法產生的 候選項集更多,計算量和I/O開銷將增加 事務數 由於Apriori演算法反復掃描數據集,因此它的執行時間隨著事務數 增加而增加 事務的平均寬度 頻繁項集的最大長度隨事務平均寬度增加而增加 隨著事務寬度的增加,事務中將包含更多的項集,這將增加支持度 計數時Hash樹的遍歷次數

規則產生 忽略那些前件或後件為空的規則,每個頻繁k-項集 能夠產生多達2k-2個關聯規則 關聯規則的提取:將一個項集 Y劃分成兩個非空的 子集 X 和Y-X,使得X  Y–X滿足置信度閾值。 如果 {A,B,C,D} 是頻繁項集, 候選項集為: ABC D, ABD C, ACD B, BCD A, A BCD, B ACD, C ABD, D ABC AB CD, AC  BD, AD  BC, BC AD, BD AC, CD AB, 這樣的規則必然已經滿足支持度閾值,因為它們是 由頻繁項集產生的。

規則產生 怎樣有效的從頻繁項集中產生關聯規則? 一般,計算關聯規則的置信度並不需要再次掃描交易數 據集。規則{A,B,C} {D}的置信度為σ(ABCD)/ σ(ABC)。 因為這兩個項集的支持度計數已經在頻繁項 集產生時得到,因此不必再掃描整個數據集 如果規則X Y-X不滿足置信度閾值,則形如X‘Y-X’ 的規則一定也不滿足置信度閾值,其中X‘是X的子集。 例如:c(ABC  D)  c(AB  CD)  c(A  BCD) 因為σ(AB) σ(ABC),則σ(ABCD)/ σ(ABC)  σ(ABCD)/ σ(AB) ,則c(ABC  D)  c(AB  CD)

規則產生的Apriori演算法 規則格 剪掉的規則 低置信度規則

Apriori偽代碼(三) H1 = ∅ //Initialize foreach; frequent k-itemset fk , k ≥ 2 do begin A = (k − 1)-itemsets ak−1 such that ak−1 ⊂ fk ; foreach ak−1 ∈ A do begin con f = support( fk)/support(ak−1); if (con f ≥ mincon f ) then begin output the rule ak−1 ⇒ ( fk − ak−1) with confidence = conf and support = support( fk ); add ( fk − ak−1) to H1; end call ap-genrules( fk , H1);

Apriori偽代碼(四)

設定minsup=3/7,misconf=5/7。 關聯分析:舉例 假如有項目集合I={1,2,3,4,5},有事務集T: Tid Items 1 1,2,3 2 1,2,4 3 1,3,4 4 1,2,3,5 5 1,3,5 6 2,4,5 7 1,2,3,4 設定minsup=3/7,misconf=5/7。

關聯分析:舉例 首先:生成頻繁項目集: 1-頻繁項目集:{1},{2},{3},{4},{5} 生成2-頻繁項目集:   1-頻繁項目集:{1},{2},{3},{4},{5}   生成2-頻繁項目集:   根據1-頻繁項目集生成所有的包含2個元素的項目集:任意取兩個只有最後一個元素不同的1-頻繁項目集,求其並集,由於每個1-頻繁項目集元素只有一個,所以生成的項目集如下:   {1,2},{1,3},{1,4},{1,5}   {2,3},{2,4},{2,5}   {3,4},{3,5}   {4,5}   計算它們的支持度,發現只有{1,2},{1,3},{1,4},{2,3},{2,4},{2,5}的支持度滿足要求,因此求得2-頻繁項目集:   {1,2},{1,3},{1,4},{2,3},{2,4}   生成3-頻繁項目集:   因為{1,2},{1,3},{1,4}除了最後一個元素以外都相同,所以求{1,2},{1,3}的並集得到{1,2,3}, {1,2}和{1,4}的並集得到{1,2,4},{1,3}和{1,4}的並集得到{1,3,4}。但是由於{1,3,4}的子集{3,4}不在2-頻繁項目集中,所以需要把{1,3,4}剔除掉。然後再來計算{1,2,3}和{1,2,4}的支持度,發現{1,2,3}的支持度為3/7 ,{1,2,4}的支持度為2/7,所以需要把{1,2,4}剔除。同理可以對{2,3},{2,4}求並集得到{2,3,4} ,但是{2,3,4}的支持度不滿足要求,所以需要剔除掉。   因此得到3-頻繁項目集:{1,2,3}。

關聯分析:舉例 到此頻繁項目集生成過程結束。注意生成頻繁項目集的時候,頻繁項目集中的元素個數最大值為事務集中事務中含有的最大元素個數,即若事務集中事務包含的最大元素個數為k,那麼最多能生成k-頻繁項目集,這個原因很簡單,因為事務集合中的所有事務都不包含(k+1)個元素,所以不可能存在(k+1)-頻繁項目集。在生成過程中,若得到的頻繁項目集個數小於2,生成過程也可以結束了。   現在需要生成強關聯規則:   這裡只說明3-頻繁項目集生成關聯規則的過程:   對於集合{1,2,3}   先生成1-後件的關聯規則:   (1,2)—>3,   置信度=3/4   (1,3)—>2, 置信度=3/5   (2,3)—>1      置信度=3/3   (1,3)—>2的置信度不滿足要求,所以剔除掉。因此得到1後件的集合{1},{3},然後再以{1,3}作為後件        2—>1,3       置信度=3/5不滿足要求,所以對於3-頻繁項目集生成的強關聯規則為:(1,2)—>3和(2,3)—>1。

R實戰-Apriori library(arules) data(Groceries) library(arulesViz) rules = apriori(Groceries,parameter = list(support = 0.01,confidence = 0.2)) inspect(sort(rules,by="support")[1:6]) #按支持度查看前6條規則 inspect(sort(rules,by="confidence")[1:6]) #按置信度查看前6條規則 itemFrequencyPlot(Groceries,support = 0.05,cex.names =0.8) #數據畫頻繁項的圖 plot(rules, shading="order", control=list(main = "Two-key plot")) plot(rules, method="grouped") plot(rules, method="graph") lhs rhs support confidence lift 1 {} => {whole milk} 0.25551601 0.2555160 1.000000 151 {other vegetables} => {whole milk} 0.07483477 0.3867578 1.513634 152 {whole milk} => {other vegetables} 0.07483477 0.2928770 1.513634 149 {rolls/buns} => {whole milk} 0.05663447 0.3079049 1.205032 150 {whole milk} => {rolls/buns} 0.05663447 0.2216474 1.205032 145 {yogurt} => {whole milk} 0.05602440 0.4016035 1.571735

謝 謝!

附:產生頻繁項集的其他方法 交易數據庫的表示 水準數據佈局 vs 垂直數據佈局

FP增長演算法 使用交易數據庫的緊湊數據結構 - FP樹 一旦FP樹構建完成,該演算法使用一個遞迴的分 而治之的方法挖掘頻繁項集

FP樹的構建 null 讀入 TID=1 後: A:1 B:1 讀入 TID=2 後: null B:1 A:1 B:1 C:1 交易數據庫中已經去掉非頻 繁的項,並且事務中餘下的 項已按照支持度遞減排序 D:1

FP樹的構建 null B:3 A:7 B:5 C:3 C:1 D:1 D:1 C:3 E:1 D:1 E:1 D:1 E:1 D:1 交易數據庫 null B:3 A:7 B:5 C:3 C:1 D:1 頭指針表 D:1 C:3 E:1 D:1 E:1 D:1 E:1 D:1 指針用於輔助頻繁項集生成

FP增長過程 從D開始開始直到A逐個處理條件模式庫 關於D的條件模式庫是D的所有首碼路徑的集合: P = {(A:1,B:1,C:1), (A:1,B:1), (A:1,C:1), (A:1), (B:1,C:1)} 對P遞迴應用FP增長過程 發現頻繁項集 (sup > 1): AD, BD, CD, ACD, BCD null A:7 B:1 B:5 C:1 C:1 D:1 D:1 C:3 D:1 D:1 D:1

ECLAT演算法 使用垂直數據佈局:對於每個項,保存事務ID列 表 (TID列表) TID列表

  ECLAT演算法 通過計算兩個k-1子集的TID列表的交集,決定k-項集的TID 列表 三種遍歷方法: 優點: 計算支持度很快 自頂向下、自底向上和混合方法 優點: 計算支持度很快 缺點: 計算過程產生的TID清單可能佔用很大記憶體  