感謝紅蘭整理的PPT,簡單易懂,如今將其中精彩之處整理,與你們分享。mysql
1、Apriori算法簡介: Apriori算法是一種挖掘關聯規則的頻繁項集算法,其核心思想是經過候選集生成和情節的向下封閉檢測兩個階段來挖掘頻繁項集。 Apriori(先驗的,推測的)算法應用普遍,可用於消費市場價格分析,猜想顧客的消費習慣;網絡安全領域中的入侵檢測技術;可用在用於高校管理中,根據挖掘規則能夠有效地輔助學校管理部門有針對性的開展貧困助學工做;也可用在移動通訊領域中,指導運營商的業務運營和輔助業務提供商的決策制定。算法
2、挖掘步驟:sql
1.依據支持度找出全部頻繁項集(頻度)數據庫
2.依據置信度產生關聯規則(強度)安全
3、基本概念網絡
對於A->B.net
①支持度:P(A ∩ B),既有A又有B的機率網絡安全
②置信度:事件
P(B|A),在A發生的事件中同時發生B的機率 p(AB)/P(A) 例如購物籃分析:牛奶 ⇒ 麪包get
例子:[支持度:3%,置信度:40%]
支持度3%:意味着3%顧客同時購買牛奶和麪包
置信度40%:意味着購買牛奶的顧客40%也購買麪包
③若是事件A中包含k個元素,那麼稱這個事件A爲k項集事件A知足最小支持度閾值的事件稱爲頻繁k項集。
④同時知足最小支持度閾值和最小置信度閾值的規則稱爲強規則
4、實現步驟
Apriori算法是一種最有影響的挖掘布爾關聯規則頻繁項集的算法Apriori使用一種稱做逐層搜索的迭代方法,「K-1項集」用於搜索「K項集」。
首先,找出頻繁「1項集」的集合,該集合記做L1。L1用於找頻繁「2項集」的集合L2,而L2用於找L3。如此下去,直到不能找到「K項集」。找每一個Lk都須要一次數據庫掃描。
核心思想是:鏈接步和剪枝步。鏈接步是自鏈接,原則是保證前k-2項相同,並按照字典順序鏈接。剪枝步,是使任一頻繁項集的全部非空子集也必須是頻繁的。反之,若是某
個候選的非空子集不是頻繁的,那麼該候選確定不是頻繁的,從而能夠將其從CK中刪除。
簡單的講,一、發現頻繁項集,過程爲(1)掃描(2)計數(3)比較(4)產生頻繁項集(5)鏈接、剪枝,產生候選項集 重複步驟(1)~(5)直到不能發現更大的頻集
二、產生關聯規則,過程爲:根據前面提到的置信度的定義,關聯規則的產生以下:
(1)對於每一個頻繁項集L,產生L的全部非空子集;
(2)對於L的每一個非空子集S,若是
P(L)/P(S)≧min_conf
則輸出規則「SàL-S」
注:L-S表示在項集L中除去S子集的項集