第三章 潛藏殭屍電腦偵測方法與系統架構
第四節 Apriori演算法
Apriori 演算法是由 Agrawal 等人 (1994)[3]所提出,且 Apriori 演算法為資 料探勘領域中,用來找尋關聯法則的經典演算法之一,因此對於關聯法則的運算 部分,本研究採用 Apriori 演算法進行網路連線資料的關聯性探勘。Apriori 演算 法主要是從龐大的交易資料庫中,建立可能成為關聯規則的候選項目集合 (Candidate Itemset),並計算各候選項目在交易資料庫中出現次數,然後依據自定 義的支持度來衡量該候選項目是否足夠成為關聯規則。Apriori 演算法中常用的 名詞之定義如下所示:
k-itemset:一個項目集合內有 k 個項目。
L
k:k-itemset中通過支持度門檻值的項目集合。27
C
k:k-itemset中的候選項目集合,該集合內的每個項目都包含項目名稱與出現次 數兩個欄位。以下以表 7 為例來介紹Apriori演算法的運作過程,首先將所有在流量交易資 料庫的資料轉換為 1-itemset的候選項目集合,並且計算每一個候選項目的出現次 數,將此候選項目集合稱為C1,如表 7 所示。當計算完後,Apriori演算法會根據 事前定義的最少出現次數,從候選項目集合中挑出符合的項目,假若最小出現次 數為 2,代表當候選項目的出現次數大於等於 2 時,會被挑選出來,而這些被挑 選出來的項目所形成之集合稱為L1。
表 7 Apriori演算法C1與L1之範例
C
1L
1項目 出現次數 項目 出現次數
<IPA,
IP
B> 3 <IPA,IP
B> 3<IPA,
IP
C> 2 <IPA,IP
C> 2<IPB,
IP
D> 2 <IPB,IP
D> 2<IPB,
IP
E> 1<IPC,
IP
F> 1挑選完L1後,Apriori演算法接下來會對流量交易資料庫進行第二次運算,第 二次運算處理會根據項目集合並由 1-itemset擴張為 2-itemset,擴張方式為內各項 目的排列組合,所以在 2-itemset內的項目代表在一筆流量交易記錄中同時出現這 兩個項目,且在所剃除的項目將不會在 2-itemset中出現,如表 8 所示。由於<IPB,
IP
E>與<IPC,IP
F>項目在第一次運算處理後已遭到剃除,所以將不會有任何包含<IPB,
IP
E>與<IPC,IP
F>的項目出現在候選項目集合中,此時從挑選項目至L2的 方法與第一次運算處理相仿,皆是判斷候選項目集合內的每個項目是否大於等於 最小出現次數。28
表 8 Apriori演算法C2與L2之範例
C
2L
2項目 出現次數 項目 出現次數
<IPA,
IP
B>, <IPA,IP
C> 2 <IPA,IP
B>, <IPA,IP
C> 2<IPA,
IP
B>, <IPB,IP
D> 2 <IPA,IP
B>, <IPB,IP
D> 2<IPA,
IP
C>, <IPB,IP
D> 1Apriori演算法會不斷重複上述方法,持續地建立候選項目集合和挑選最大項 目集合,直到最大項目集合Lk為空集合,此範例的最後結果為例,候選集合內的 項目{<IPA,
IP
B>, <IPA,IP
C>, <IPB,IP
D>}在流量交易資料庫中僅共同出現一次,因此無法通過最小出現次數的門檻值,故最大項目集合L3為空集合,所以最終 Apriori 演算法產 出的 可能關 聯 規則為 <IPA,
IP
B> ⇒<IPA,IP
C> 和 <IPA,IP
B>⇒<IPB,
IP
D>。以下為 Agrawal & Srikant(1994)[3]所提出 Apriori 核心演算法,其步驟如前 所述,找出頻繁出現的項目建立成候選項目集合,藉由自定義的支持度門檻值進 行篩選,從候選項目集合中挑選出大於等於門檻值的最大項目集合,直到進行至 第 k 次時,該次的最大項目集合為空,便停止運算。
29 forall transactions t D do begin