1 / 98

第七章 網路資料庫之關連法則探勘

第七章 網路資料庫之關連法則探勘. 內容概要. 簡介 關連法則探勘 (Association Rule Mining) 多層次關連法則探勘 (Multilevel Association Rule Mining) 數量化關連法則探勘 (Quantitative Association Rule Mining) 關連分析 (Correlation Analysis) 總結. 簡介 (1). 單一購物車告訴我們個別顧客的消費行為,但是累積大量的購物車資料之後,可以分析整體顧客的消費習慣。

zahur
Download Presentation

第七章 網路資料庫之關連法則探勘

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 網路資料庫之關連法則探勘

  2. 內容概要 • 簡介 • 關連法則探勘 (Association Rule Mining) • 多層次關連法則探勘 (Multilevel Association Rule Mining) • 數量化關連法則探勘 (Quantitative Association Rule Mining) • 關連分析(Correlation Analysis) • 總結

  3. 簡介(1) • 單一購物車告訴我們個別顧客的消費行為,但是累積大量的購物車資料之後,可以分析整體顧客的消費習慣。 • 例如,顧客購買印表機時,他們是否也會購買報表紙?購買IBM PC主機的顧客是否會傾向於搭配ViewSonic螢幕?顧客購買碳粉匣的數量是否和同時購買的報表紙數量有關係? • 這些分析過的資訊可以幫助我們設計更好的網路購物環境,制訂更有效的行銷策略,提供顧客客製化的服務,進而提升整體的銷售業績。

  4. 簡介(2) • 關連法則探勘的目的是找出交易中可能相關連的產品項目。 • 例如,根據商店中消費者每次交易所購買的產品資料,可以發掘出類似下列的關連法則:“80%的顧客如果購買碳粉匣,則也會購買報表紙”。

  5. 內容概要 • 簡介 • 關連法則探勘 (Association Rule Mining) • 多層次關連法則探勘 (Multilevel Association Rule Mining) • 數量化關連法則探勘 (Quantitative Association Rule Mining) • 關連分析(Correlation Analysis) • 總結

  6. 交易編號 商品編號 1 2, 5, 7 2 1, 3, 4, 6 3 2, 6, 7 4 2, 4, 5 5 3, 6 6 2, 4, 6 7 1, 4, 5 8 1, 3, 5 9 2, 3, 5 10 1, 3, 5 表7-1:網路交易資料庫

  7. 關連法則探勘的相關定義(1) • 在交易資料庫中,每一筆交易包含交易編號與一組被購買的商品項目;而一組商品項目所成的集合稱之為 “項目集” (itemset)。 • 假設X是一個項目集,若所有在X中的項目皆被包含在交易T之中,則稱交易T支持 (support) 項目集X。

  8. 關連法則探勘的相關定義(2) • 項目集X的 “支持個數” (support count) 被定義為“支持項目集X的交易總數”。 • 項目集X的 “支持度” (support) 則是 “支持項目集X的交易個數佔全部交易總數的比例”。 • 考慮表7-1的網路交易資料庫。商品編號為 “2” 的物品之 “支持個數” 為 5,亦即 “支持度” 為5/10=0.5;而項目集{2,5}的 “支持個數” 為 3,“支持度” 為3/10=0.3。 • 關連法則的形式為 “XY [支持度,信心水準]”,其中 X和 Y代表項目集,X 被稱為 “條件句”,Y為 “結論句”。 • 法則XY的支持度定義為項目集 的支持 度。

  9. 關連法則探勘的相關定義(3) • 法則XY的 “信心水準” (confidence) 是符合條件句與結論句的交易個數佔全體符合條件句的交易個數之比例,亦即 信心水準 ﹦

  10. 關連法則探勘的相關定義(4) • 關連法則必須滿足事先設定的兩個參數值:最小支持度(minimum support) 與最小信心水準(minimum confidence)。 • 最小支持度和資料庫中交易總數的乘積即是最小支持個數(minimum support count)。 • 考慮表7-1,假設最小支持度與最小信心水準分別為0.2和0.5。關連法則{1,3}  {5}的支持個數為2,所以支持度為0.2,且項目集{1,3}的支持度為0.3,因此關連法則{1,3}  {5}的信心水準為0.2/0.3=0.67。

  11. 關連法則探勘的相關定義(5) • 關連法則探勘的問題可以再細分為兩個子問題。 • 首先,找出所有支持度大於或等於最小支持度的項目集,稱之為 “大型項目集” (large itemset)。 • 接著,從大型項目集中產生信心水準大於或等於最小信心水準的關連法則。 • 假設Z為大型項目集,所有形式為XY,滿足 、 以及信心水準大於或等於最小信心水準的關連法則都應該被產生。 • 很明顯的,一旦所有大型項目集被發掘之後,關連法則的產生將變得非常直接。

  12. 關連法則探勘的相關定義(6) • 考慮表7-1的網路交易資料庫,若最小支持度與最小信心水準分別為0.2和0.7,則項目集{1,3}是大型項目集,因此可以考慮下列這兩條法則:{1}{3}和{3}{1} • 法則{1}{3}的信心水準為0.3/0.4=0.75 • 法則{3}{1}的信心水準為0.3/0.5=0.6 • 其中只有法則{1}{3}才是我們所想要的關連法則。

  13. Apriori 演算法的基本精神 • 一個包含k個項目的項目集被稱為k-項目集(k-itemset)。 • 符號Lk表示所有大型k-項目集(large k-itemset) 所成的集合。 • Apriori的基本精神是使用前一個階段所發掘的大型項目集來產生下一個階段的大型項目集。 • 也就是說,先找出所有大型1-項目集L1,再利用L1找出L2,然後利用L2找出L3,依此類推下去,直到下一個階段無任何大型項目集產生為止。

  14. Apriori 性質 • 為了減少產生大型項目集所花費的計算時間,Apriori 使用一個重要的性質來減少搜尋的空間: • Apriori 性質:一個大型項目集的任何子集合也必定是大型項目集。 • 假設{A,B}是一個大型項目集,根據大型項目集的定義,它的支持個數必定大於或等於最小支持個數。考慮{A,B}的兩個子集合{A}和{B}。 • 在交易資料庫中,項目集{A}的支持個數必大於或等於項目集{A,B}的支持個數,因此項目集{A}必定是大型項目集。 • 同理,項目集{B}也必定是大型項目集。

  15. 候選項目集產生程序的主要步驟 • Apriori演算法使用Apriori 性質產生候選項目集(candidate itemsets),候選項目集的產生程序主要包含兩個步驟: • “結合” (join) 步驟 • “刪除” (prune) 步驟

  16. “結合”步驟 • 結合大型(k-1)-項目集來產生候選k-項目集(candidate k-itemsets)。符號Ck表示所有候選k-項目集所成的集合。 • 令X1和X2是兩個大型(k-1)-項目集,Xi[j]代表項目集Xi中的第j個項目。假設項目集中的項目已依遞增的方式排序完成。 • 若X1和X2的前k-2個項目皆相同,且X1[k-1]<X2[k-1],則X1和X2將被結合成一個候選k-項目集,亦即{X1[1],X1[2], …,X1[k-1],X2[k-1]}。 • 其中,結合條件X1[k-1]<X2[k-1]的目的是為了避免產生重複的候選k-項目集。

  17. 範例7-1 • 假設X1和X2是兩個大型3-項目集,X1={1,3,5}且X2={1,3,6}。 • X1[1]=X2[1]=1,X1[2]=X2[2]=3且X1[3]<X2[3],完全符合結合的條件,因此X1和X2被結合成一個候選4-項目集,亦即{1,3,5,6}。 • 在集合中的元素,它們的先後次序並不代表任何意義,因此,集合{1,3,5,6}和{1,3,6,5}被視為是相同的集合,故為了避免重複,結合條件必須要考慮 “X1[3]<X2[3]”。

  18. “刪除” 步驟 • 刪除不滿足Apriori 性質的候選項目集。候選k-項目集Ck包含Lk,但不一定和Lk相等。 • 假設XCk,Apriori 演算法在讀取資料庫中的每一筆交易時,若交易支持項目集X,則X的支持個數將會增加1。 • 應用Apriori 性質來減少Ck的大小。 • 若項目集X有任何一個大小為k-1的子集合不是大型(k-1)-項目集,則X必定不是大型k-項目集,因此就可以將X從Ck中刪除。

  19. 範例7-2 • 假設X1和X2是兩個大型3-項目集,X1={1,3,5}且X2={1,3,6}。X1和X2被結合成一個候選4-項目集{1,3,5,6}。 • 應用Apriori 性質對候選4-項目集{1,3,5,6}做初步的檢驗。項目集{1,3,5,6}的大小為3的子集合包括{1,3,5}、{1,3,6}、{1,5,6}和{3,5,6}。已知{1,3,5}和{1,3,6}是大型3-項目集: • 若{1,5,6}和{3,5,6}其中任何一個不是大型3-項目集,則{1,3,5,6}必定不是大型4-項目集。 • 若{1,5,6}和{3,5,6}都是大型3-項目集,則藉由讀取資料庫來計算{1,3,5,6}的支持度之後,就可以決定它是否為大型4-項目集。

  20. Apriori 演算法 步驟1:L1 = 大型1-項目集所成的集合; 步驟2:for (k = 2; Lk-1≠; k++) do begin 步驟3:Ck= Candidate_gen (Lk-1); 步驟4:for each 交易t 步驟5:對於Ck中的每一個候選項目集c,若t包含c, 則將c的支持個數增加1; 步驟6:Lk = 在Ck中滿足最小支持個數的候選項目集 所成的集合; 步驟7:end 步驟8:return L = 所有大型項目集的集合

  21. 候選項目集產生程序 Candidate_gen Procedure 步驟1:for each 項目集X1Lk-1 /* X1[1],X1[2], …, X1[k-1]表示在X1中的k-1個項目*/ 步驟2:for each 項目集X2Lk-1 /* X2[1],X2[2], …, X2[k-1]表示在X2中的k-1個項目*/ 步驟3:if (X1[1]=X2[1])  (X1[2]=X2[2])  … (X1[k-2]=X2[k-2])  (X1[k-1]<X2[k-1]) 步驟4:then { c = {X1[1], X1[2], …, X1[k-2], X1[k-1], X2[k-1]}; 步驟5:if 所有c的大小為k-1的子集合都是大型(k-1)-項目集 步驟6:then 將c加入Ck; 步驟7:else 刪除c;} 步驟8:return Ck =所有候選k-項目集的集合

  22. 項目集 支持個數 {1} 4 {2} 5 {3} 5 {4} 4 {5} 6 {6} 4 {7} 2 範例7-3 (1) • 使用表7-1的網路交易資料庫來說明Apriori演算法如何找到所有大型項目集。假設最小支持個數為3。 • 讀取資料庫並且計算每一個候選1-項目集的支持個數。 C1

  23. 項目集 支持個數 {1} 4 {2} 5 {3} 5 {4} 4 {5} 6 {6} 4 範例7-3 (2) • 刪除支持個數小於最小支持個數的項目集。 L1

  24. 項目集 {1,2} {1,3} {1,4} {1,5} {1,6} {2,3} {2,4} {2,5} {2,6} {3,4} {3,5} {3,6} {4,5} {4,6} {5,6} 範例7-3 (3) • 從L1產生候選項目集C2。

  25. 項目集 支持個數 {1,2} 0 {1,3} 3 {1,4} 2 {1,5} 3 {1,6} 1 {2,3} 1 {2,4} 2 {2,5} 3 {2,6} 2 {3,4} 1 {3,5} 3 {3,6} 2 {4,5} 2 {4,6} 2 {5,6} 0 範例7-3 (4) • 讀取資料庫,並且計算每一個候選2-項目集的支持個數。

  26. 項目集 支持個數 {1,3} 3 {1,5} 3 {2,5} 3 {3,5} 3 範例7-3 (5) • 刪除支持個數小於最小支持個數的項目集 。 L2

  27. 項目集 項目集 支持個數 {1,3,5} {1,3,5} 2 範例7-3 (6) • 從L2產生候選項目集C3。 • 計算候選3-項目集的支持個數。

  28. 範例7-3 (7) • 所有大型項目集的集合為{{1},{2},{3},{4},{5},{6},{1,3},{1,5},{2,5},{3,5}}。假設最小信心水準為0.7,可能產生的關連法則如下: {1}  {3} 信心水準=3/4=0.75 {3}  {1} 信心水準=3/5=0.6 {1}  {5} 信心水準=3/4=0.75 {5}  {1} 信心水準=3/6=0.5 {2}  {5} 信心水準=3/5=0.6 {5}  {2} 信心水準=3/6=0.5 {3}  {5} 信心水準=3/5=0.6 {5}  {3} 信心水準=3/6=0.5 • 只有第1和第3條法則才是真正符合條件的關連法則。

  29. 內容概要 • 簡介 • 關連法則探勘 (Association Rule Mining) • 多層次關連法則探勘 (Multilevel Association Rule Mining) • 數量化關連法則探勘 (Quantitative Association Rule Mining) • 關連分析(Correlation Analysis) • 總結

  30. 多層次關連法則探勘 • 在許多應用中,使用不同的概念階層來發掘關連法則是非常有用的。 • 法則一:80%的顧客如果購買PC主機,也會同時購買螢幕。 • 法則二:70%的顧客如果購買IBM PC主機,也會同時購買ViewSonic螢幕。 • 法則二是以一個較低的概念層次 (lower concept level) 來表示,但是它可以比法則一提供更細部的資訊。

  31. 圖7-5:個人電腦的概念階層 個人電腦 桌上型電腦攜帶型電腦 家用電腦商用電腦筆記型電腦平板電腦 IBM COMPAQ ASUS HP IBM Acer IBM Acer Toshiba

  32. 圖7-14:螢幕分類的概念階層 螢幕 CRT LCD 17吋19吋15吋17吋 優派宏碁飛利浦優派聲寶奇美優派三星優派三星

  33. 圖7-15:印表機分類的概念階層 印表機 彩色噴墨雷射 A4尺寸A3+尺寸黑白彩色 佳能利盟惠普愛普生惠普利盟惠普愛普生

  34. 概念階層 • 雖然以 “較低” (lower) 的概念層次所表示的關連法則可以比 “較高” (higher) 的概念層次呈現更多的資訊,但是可能產生“在較低的概念層次的項目之支持度偏低”的情況。 • 若想要在較低的概念層次發掘關連法則,最小支持度相對的就必須被降低。 • 例如,HP商用電腦ViewSonic液晶螢幕(支持度=0.01),但這種作法可能會造成所產生的法則之實際效益大為降低。 • 在較高的概念層次所產生的關連法則雖然具有較高的支持度,但可能是一般根據經驗即可預測出來的明顯的結果。 • 例如,個人電腦螢幕(支持度=0.95),這種明顯的結果之實際效益亦不高。

  35. 多層次關連法則 • 使用概念階層來進行跨層次的探勘,並且給予不同層次設定不同最小支持度的彈性。 • 例如,商用電腦ViewSonic液晶螢幕(支持度=0.7,信心水準=0.9)。這種使用概念階層所發掘出來的關連法則稱之為 “多層次關連法則” (multilevel association rules)。

  36. 多層次關連法則探勘的基本精神 • 使用由上而下(top-down) 的處理方式,先計算在層次1 (level-1) 的大型項目集,接著計算在層次2 (level-2) 的大型項目集,依此類推下去,直到沒有其它的大型項目集產生為止。 • 在每一個層次中,可以使用Apriori演算法來產生大型項目集。

  37. 限制條件(1) • 在進行多層次關連法則探勘時,可以讓不同的層次有不同的最小支持度,也可以增加下列條件加以限制: • 在層次i的項目x,只有當x在層次i-1的父節點所代表的項目是大型項目時,x才需要被考慮。 • 例如,在概念階層中,若 “桌上型電腦” 是一個大型項目,則 “家用電腦” 和 “商用電腦” 才需要被考慮。反之,若 “桌上型電腦” 不是大型項目,則 “家用電腦” 和 “商用電腦” 就不用被考慮。

  38. 限制條件(2) • 考慮父節點支持度的多層次探勘:考慮層次i的項目x 時,只有當它在層次i-1 的父節點是大型1-項目集的時候,項目x才會被考慮,否則就忽略不予考慮。 最小支持度= 0.25 桌上型電腦[支持度=0.2] 家用電腦(不考慮) 商用電腦(不考慮)

  39. 不同的限制條件(1) • 忽略父節點支持度的多層次探勘:每一個節點都被檢查,不管它的父節點是否為大型項目。 最小支持度= 0.3 桌上型電腦[支持度=0.2] 最小支持度= 0.06 家用電腦[支持度=0.12] 商用電腦[支持度=0.08]

  40. 不同的限制條件(2) • 考慮父節點k-項目集支持度的多層次探勘:考慮層次i的k-項目集X時,只有當它在層次i-1 所對應的父節點之k-項目集是大型k-項目集的時候,X才需要被考慮,否則就忽略不予檢查。 {桌上型電腦,LCD螢幕} [支持度= 0.2] 最小支持度= 0.15 {家用電腦,15吋LCD螢幕} [支持度= 0.12] {家用電腦,17 吋LCD螢幕} [支持度= 0.02] {商用電腦,15 吋LCD螢幕} [支持度= 0.03] {商用電腦,17吋LCD螢幕} [支持度= 0.03] 最小支持度= 0.03

  41. 項目編碼的方式 • 對於個人電腦分類階層中的項目,可以用下列的編碼方式來表示: • IBM商用電腦被表示為 “1122”,其中第一個數字 “1” 代表在層次1的 “個人電腦”,第二個數字 “1” 代表往下在層次2的第一個分支 “桌上型電腦”,第三個數字 “2” 代表往下在層次3的第二個分支 “商用電腦”,第四個數字 “2” 代表往下在層次4的第二個分支 “IBM電腦”。

  42. 商品編號 層次2 層次3 品牌 1600 桌上型電腦 家用電腦 IBM 1601 桌上型電腦 家用電腦 COMPAQ 1602 桌上型電腦 家用電腦 ASUS 1603 桌上型電腦 商用電腦 HP 1604 桌上型電腦 商用電腦 IBM 1605 攜帶型電腦 筆記型電腦 Acer 1606 攜帶型電腦 筆記型電腦 IBM 1607 攜帶型電腦 平板電腦 Acer 1608 攜帶型電腦 平板電腦 Toshiba 表7-2:個人電腦分類描述

  43. 交易編號 商品編號 1 {1600,2301} 2 {1602,3457,4563} 3 {1601,2305,4563} 4 {1606,2302} 5 {1605,2302,4623} 6 {1607,2307,5457} 7 {1608,2306} 8 {1606,2302,4563} 9 {3001,5453} 10 {5455} 表7-3:網路交易資料庫

  44. 交易編號 編碼後的項目集 1 {1111,2111} 2 {1113,3214,4111} 3 {1112,2211,4111} 4 {1212,2112} 5 {1211,2112,4212} 6 {1221,2231,5214} 7 {1222,2223} 8 {1212,2112,4111} 9 {3112,5211} 10 {5213} 表7-4:編碼後的交易資料庫T[1]

  45. 相關定義 • T為原始的交易資料庫。 • T[1]是將交易中購買的項目使用項目編碼方式轉換而成的資料庫。 • L[j,k]表示在層次j的大型k-項目集所成的集合。 • LL[j]則表示在層次j的所有大型項目集所成的集合。 • minsup[j]表示層次j的最小支持個數。

  46. 範例7-4 • 假設有關商品編號中第一個數字的意義為:數字 “1” 代表 “個人電腦”,數字 “2” 代表 “螢幕”,數字 “3” 代表 “網路設備”,數字 “4” 代表 “印表機”,數字 “5” 代表 “掃描器”。 • 根據商品編號,將商品項目依其所對應的概念階層重新編碼,編碼後的交易資料庫為T[1](如表7-4)。 • 例如,在表7-3的第一筆交易中包含商品編號為 “1600” 的物品,根據表7-2的個人電腦分類描述,它對應到IBM家用電腦,再依據個人電腦的分類階層,則可得到對應的編碼為 “1111”。

  47. 多層次關連法則探勘演算法(1) 步驟1:for (j=1;L[j,1]≠ and j最大層次;j++) do begin /* 從層次1開始依序產生各層次的大型項目集 */ 步驟2:if j=1 then { 步驟3:L[j,1] = Large_item_gen(T[1],j); /* 從交易資料庫T[1]中找出在層次1的大 型1-項目集 */ 步驟4:T[2] = Filtered_table(T[1],L[1,1]); /* 使用L[1,1]對T[1]進行過濾的動作 */ 步驟5:} 步驟6:else L[j,1] = Large_item_gen(T[2],j);

  48. 多層次關連法則探勘演算法(2) 步驟7:for (k = 2;L[j,k-1]≠; k++) do begin /* 產生層次j的大型k-項目集 */ 步驟8:Ck= Candidate_gen(L[j,k-1]); 步驟9:for each 在T[2]中的交易t 步驟10:對於Ck中的每一個候選項目集c,若t包含c,則將c的 支持個數增加1; 步驟11:L[j,k] = 在Ck中滿足最小支持個數minsup[j]的候選k-項 目集所成的集合; 步驟12:end 步驟13:return LL[j] = 所有在層次j的大型項目集的集合 步驟14:end

  49. 多層次關連法則探勘演算法(3) • 在步驟3,Large_item_gen (T[1],j) 程序的目的是從交易資料庫T[1]中,找出在層次j的大型1-項目集,亦即L[j,1]。 • 當考慮層次1時,使用Large_item_gen(T[1],1) 產生大型1-項目集L[1,1]。 • 在步驟6的其它層次j(j>1),使用Large_item_gen(T[2],j) 來產生大型1-項目集L[j,1]。 • 在這裡我們限制只有在L[j-1,1]的項目才可以被考慮在L[j,1]中。以個人電腦分類階層為例,在層次2的 “桌上型電腦” 被表示為 “11**”,若 “桌上型電腦” 不是大型1-項目集,則在層次3的 “家用電腦”(“111*”) 和 “商用電腦”(“112*”) 就不被考慮。

  50. 多層次關連法則探勘演算法(4) • 在步驟4,Filtered_table(T[1],L[1,1]) 程序的目的是使用L[1,1] 來檢查T[1] 中的每一筆交易t,並且執行下列過濾的動作: • 刪除t中任何支持個數小於最小支持個數的項目。 • 若t不包含任何大型項目,則將t從T[1]中刪除。 • Filtered _table(T[1],L[1,1]) 的目的是縮減資料庫的大小,它執行完的結果則儲存在資料庫T[2]中。

More Related