Apriori算法(關聯規則)

1、關聯規則算法

  一、是數據中所蘊含的一類重要規律,對關聯規則挖掘的目標是在數據項目中找出全部的併發關係,這種搞關係也稱爲關聯。數據庫

  eg、奶酪->啤酒[支持度 = 10%,置信度 = 80%]併發

  二、關聯規則的基本概念spa

  設一個項目集合I = {i1,i2,i3,……,im},一個(數據庫)事務集合T = {t1,t2,t3,,,tn},其中每一個事務ti是一個項目集合,而且blog

  一個關聯規則是以下形式的蘊涵關係:排序

  

  三、關聯規則強度指標:支持度和置信度事務

    (1)支持度:規則X->Y的支持度是指,T中包含的事務的百分比。支持度是一個頗有用的評價指標,若是他的值過於的小,則代表時間可能只是偶然發生io

  

     (2)置信度:決定了規則的可預測度,表示在全部發生了X的事務中一樣發生了Y的機率。原理

   

2、Apriori算法搜索

  一、Apriori原理:Apriori算法基於演繹Apriori原理(向下封閉屬性)

    向下封閉屬性(Downward  Closure Property):若是一個項目集知足某個最小支持的度要求,那麼這個項集的任何非空子集必需都知足這個最小支持度。

    爲了確保頻繁項目集成的高效性,Apriori算法假定I中的項目都是排序好的。

   二、描述

    就是對於數據集D,遍歷它的每一條記錄T,獲得T的全部子集,而後計算每個子集的支持度,最後的結果再與最小支持度比較。且不論這個數據集D中有多少條記錄(十萬?百萬?),就說每一條記錄T的子集個數({1,2,3}的子集有{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3},即若是記錄T中含有n項,那麼它的子集個數是2^n-1)。計算量很是巨大,天然是不可取的。

    因此Aprior算法提出了一個逐層搜索的方法,如何逐層搜索呢?包含兩個步驟:

      1.自鏈接獲取候選集。第一輪的候選集就是數據集D中的項,而其餘輪次的候選集則是由前一輪次頻繁集自鏈接獲得(頻繁集由候選集剪枝獲得)。

      2.對於候選集進行剪枝。如何剪枝呢?候選集的每一條記錄T,若是它的支持度小於最小支持度,那麼就會被剪掉;此外,若是一條記錄T,它的子集有不是頻繁集的,也會被剪掉。

      算法的終止條件是,若是自鏈接獲得的已經再也不是頻繁集,那麼取最後一次獲得的頻繁集做爲結果。

相關文章
相關標籤/搜索