關聯規則是形如X→Y的蘊涵式,其中, X和Y分別稱為關聯規則的先導(antecedent或left-hand-side, LHS)和後繼(consequent或right-hand-side, RHS ) 。其中,關聯規則XY,存在支持度與信任度。
關聯規則挖掘過程主要包含兩個階段:第一階段必須先從資料集合中找出所有的高頻項目組(Frequent Itemsets),第二階段再由這些高頻項目組產生關聯規則(Association Rules)。 (推薦學習:PHP影片教學)
關聯規則挖掘的第一階段必須從原始資料集合中,找出所有高頻項目組(Large Itemsets)。
高頻的意思是指某一項目組出現的頻率相對於所有記錄而言,必須達到某一水準。一項目組出現的頻率稱為支持度(Support),以一個包含A與B兩個項目的2-itemset為例,我們可以經由公式(1)求得包含{A,B}項目組的支持度,若支持度大於等於所設定的最小支持度(Minimum Support)門檻值時,則{A,B}稱為高頻項目組。
一個滿足最小支持度的k-itemset,則稱為高頻k-項目組(Frequent k-itemset),一般表示為Large k或Frequent k。演算法並從Large k的專案組再產生Large k 1,直到無法再找到更長的高頻項目組。
關聯規則挖掘的第二階段是要產生關聯規則(Association Rules)。從高頻專案組產生關聯規則,是利用前一步驟的高頻k-專案組產生規則,在最小信賴度(Minimum Confidence)的條件門檻下,若一規則所求得的信賴度滿足最小信賴度,稱此規則為關聯規則。
例如:經由高頻k-專案組{A,B}所產生的規則AB,其信賴度可經由公式(2)求得,若信賴度大於等於最小信賴度,則稱AB為關聯規則。
基於規則中處理的變數的類別
關聯規則處理的變數可以分為布林型和數值型。布林型關聯規則處理的值都是離散的、種類化的,它顯示了這些變數之間的關係;而數值型關聯規則可以和多維關聯或多層關聯規則結合起來,對數值型欄位進行處理,將其進行動態的分割,或直接對原始的資料進行處理,當然數值型關聯規則中也可以包含種類變數。例如:性別=「女」=>職業=「秘書」 ,是布林型關聯規則;性別=「女」=>avg(收入)=2300,涉及的收入是數值類型,所以是數值類型關聯規則。
基於規則中資料的抽象層次
基於規則中資料的抽象層次,可以分為單層關聯規則和多層關聯規則。在單層的關聯規則中,所有的變數都沒有考慮到現實的資料是具有多個不同的層次的;而在多層的關聯規則中,對資料的多層性已經進行了充分的考慮。例如:IBM桌上型電腦=>Sony印表機,是一個細節資料上的單層關聯規則;桌上型電腦=>Sony印表機,是一個較高層次和細節層次之間的多層關聯規則。
基於規則中涉及到的資料的維數
關聯規則中的數據,可以分為單一維度的和多維的。在單一維度的關聯規則中,我們只涉及資料的一個維,例如使用者購買的物品;而在多維的關聯規則中,要處理的資料將會涉及多個維。換成另一句話,單維關聯規則是處理單一屬性中的一些關係;多維關聯規則是處理各個屬性之間的某些關係。例如:啤酒=>尿布,這條規則只涉及到用戶的購買的物品;性別=“女”=>職業=“秘書”,這條規則就涉及到兩個字段的信息,是兩個維上的一條關聯規則。
更多PHP相關技術文章,請造訪PHP圖文教學欄位進行學習!
以上是關聯規則挖掘的詳細內容。更多資訊請關注PHP中文網其他相關文章!