天天看點

weka –Apriori算法 關聯規則挖掘實驗 一、Apriori算法參數含義 二、實驗結果及分析

本次共進行了9組實驗,使用了weka安裝目錄data檔案夾下的contact-lenses.arff資料。

toolsàarffviewer,打開contact-lenses,可以看到實驗資料contact-lenses共有24條記錄,5個屬性值。具體内容如下:

weka –Apriori算法 關聯規則挖掘實驗 一、Apriori算法參數含義 二、實驗結果及分析

結合實驗結果闡釋下列12個參數的含義

1.        car 如果設為真,則會挖掘類關聯規則而不是全局關聯規則。

2.        classindex 類屬性索引。如果設定為-1,最後的屬性被當做類屬性。

3.        delta 以此數值為疊代遞減機關。不斷減小支援度直至達到最小支援度或産生了滿足數量要求的規則。

4.        lowerboundminsupport 最小支援度下界。

5.        metrictype 度量類型。設定對規則進行排序的度量依據。可以是:置信度(類關聯規則隻能用置信度挖掘),提升度(lift),杠杆率(leverage),确信度(conviction)。

在 weka中設定了幾個類似置信度(confidence)的度量來衡量規則的關聯程度,它們分别是:

a)        lift : p(a,b)/(p(a)p(b)) lift=1時表示a和b獨立。這個數越大(>1),越表明a和b存在于一個購物籃中不是偶然現象,有較強的關聯度.

b)        leverage :p(a,b)-p(a)p(b)

leverage=0時a和b獨立,leverage越大a和b的關系越密切

c)        conviction:p(a)p(!b)/p(a,!b) (!b表示b沒有發生) conviction也是用來衡量a和b的獨立性。從它和lift的關系(對b取反,代入lift公式後求倒數)可以看出,這個值越大, a、b越關聯。

6.        minmtric 度量的最小值。

7.        numrules 要發現的規則數。

8.        outputitemsets 如果設定為真,會在結果中輸出項集。

9.        removeallmissingcols 移除全部為預設值的列。

10.    significancelevel 重要程度。重要性測試(僅用于置信度)。

11.    upperboundminsupport 最小支援度上界。 從這個值開始疊代減小最小支援度。

12.    verbose 如果設定為真,則算法會以備援模式運作。

weka –Apriori算法 關聯規則挖掘實驗 一、Apriori算法參數含義 二、實驗結果及分析

=== run information ===     // 實驗運作資訊

scheme:       weka.associations.apriori -i -n 10 -t 0 -c 0.9 -d 0.05 -u 1.0 -m 0.5 -s -1.0 -c -1

relation:     contact-lenses       //資料的名稱 contact-lenses

instances:    24         //資料的記錄數 24

attributes:   5         //屬性數目 5以及各屬性名稱

              age

              spectacle-prescrip

              astigmatism

              tear-prod-rate

              contact-lenses

=== associator model (full training set) ===

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%  scheme -所選的關聯規則挖掘方案: apriori算法

%  算法的參數設定:-i -n 10 -t 0 -c 0.9 -d 0.05 -u 1.0 -m 0.5 -s -1.0 -c -1 ;

%  各參數依次表示:

%  i - 輸出項集,若設為false則該值預設;

%  n 10 - 規則數為10;

%  t 0 – 度量機關選為置信度,(t1-提升度,t2杠杆率,t3确信度);

%  c 0.9 – 度量的最小值為0.9;

%  d 0.05 - 遞減疊代值為0.05;

%  u 1.0 - 最小支援度上界為1.0;

%  m 0.5 - 最小支援度下屆設為0.5;

%  s -1.0 - 重要程度為-1.0;

%  c -1 - 類索引為-1輸出項集設為真

%  (由于car, removeallmissingcols, verbose都保持為預設值false,是以在結果的參數設定為預設,若設為true,則會在結果的參數設定資訊中分别表示為a,

r,v)

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

apriori  // apriori算法運作結果

=======

minimum support: 0.5 (12 instances)  //最小支援度0.5,即最少需要12個執行個體

minimum metric <confidence>: 0.9   //最小度量<置信度>:

0.9

number of cycles performed: 10    //進行了10輪搜尋

generated sets of large itemsets:     //生成的頻繁項集

size of set of large itemsets l(1): 7     //頻繁1項集:7個

large itemsets l(1):      //頻繁1項集(outputitemsets設為true, 是以下面會具體列出)

spectacle-prescrip=myope 12

spectacle-prescrip=hypermetrope 12

astigmatism=no 12

astigmatism=yes 12

tear-prod-rate=reduced 12

tear-prod-rate=normal 12

contact-lenses=none 15

%%%%%%%%%%%%%%%%%%%%%%%%

在上面所示資料界面中,分别點選标簽spectacle-prescrip,astigmatism,tear-prod-rate和contact-lenses,該列的值會自動進行分類排序,可以很友善的對上面結果進行。點選age标簽,其值按pre-presbiopic、presbiopic和young分類排序,可以看到各屬性值的記錄數均為8<12,不滿足最小支援度,是以age屬性的所有取值都沒有列在上面結果中。

size of set of large itemsets l(2): 1    //頻繁2項集: 1個

large itemsets l(2):

tear-prod-rate=reduced contact-lenses=none 12

//tear-prod-rate取值為reduced且 contact-lenses取值為none 的記錄數共有12個

best rules found:    //最佳關聯規則

 1. tear-prod-rate=reduced 12 ==> contact-lenses=none 12    conf:(1)

// 若tear-prod-rate取值為reduced可以推出 contact-lenses的取值為none,該關聯規則置信度為100%

1. 實驗中,若其它參數保持為預設值,将最小支援度下界設為0.8,則運作結果會顯示”no large itemsets and rules found!”,即找不到滿足條件的關聯規則。

2. 若其它參數保持為預設值,将最小支援度下界設為0.25,上界設為0.8,度量選為置信度,最小值為0.8,則運作結果找到:頻繁1項集10個,頻繁2項集18個,頻繁3項集4個,找到的最佳關聯規則為:

1. tear-prod-rate=reduced 12 ==> contact-lenses=none 12    conf:(1)

 2. spectacle-prescrip=myope tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1)

 3. spectacle-prescrip=hypermetrope tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1)

 4. astigmatism=no tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1)

 5. astigmatism=yes tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1)

 6. spectacle-prescrip=myope contact-lenses=none 7 ==> tear-prod-rate=reduced 6    conf:(0.86)

 7. astigmatism=no contact-lenses=none 7 ==> tear-prod-rate=reduced 6    conf:(0.86)

3. 若其它參數保持為預設值,将最小支援度下界設為0.25,上界設為0.8,度量選為提升度(lift : p(a,b)/(p(a)p(b))),最小值為1.1,則運作結果找到10條最佳關聯規則,前3條如下:

1. tear-prod-rate=reduced 12 ==> spectacle-prescrip=myope contact-lenses=none 6    conf:(0.5) < lift:(1.71)> lev:(0.1) [2] conv:(1.21)

 2. spectacle-prescrip=myope contact-lenses=none 7 ==> tear-prod-rate=reduced 6    conf:(0.86) < lift:(1.71)> lev:(0.1) [2] conv:(1.75)

 3. tear-prod-rate=reduced 12 ==> astigmatism=no contact-lenses=none 6    conf:(0.5) < lift:(1.71)> lev:(0.1) [2] conv:(1.21)

4. 若其它參數保持為預設值,将最小支援度下界設為0.25,上界設為0.8,度量選為杠杆率(leverage:p(a,b)-p(a)p(b),在下面第一條規則中,[4]表示滿足lev:(0.19)的執行個體數目),最小值為0.1,則運作結果找到6條最佳關聯規則,前3條如下:

1. tear-prod-rate=reduced 12 ==> contact-lenses=none 12    conf:(1) lift:(1.6) < lev:(0.19) [4]> conv:(4.5)

2. contact-lenses=none 15 ==> tear-prod-rate=reduced 12    conf:(0.8) lift:(1.6) < lev:(0.19) [4]> conv:(1.88)

3. tear-prod-rate=reduced 12 ==> spectacle-prescrip=myope contact-lenses=none 6   

5. 若其它參數保持為預設值,将最小支援度下界設為0.25,上界設為0.8,度量選為确信度(conviction:p(a)p(!b)/p(a,!b)),最小值為1.1,則運作結果找到10條最佳關聯規則,前3條如下:

1. tear-prod-rate=reduced 12 ==> contact-lenses=none 12    conf:(1) lift:(1.6) lev:(0.19) [4] < conv:(4.5)>

2. spectacle-prescrip=myope tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1) lift:(1.6) lev:(0.09) [2] < conv:(2.25)>

3. spectacle-prescrip=hypermetrope tear-prod-rate=reduced 6 ==> contact-lenses=none 6    conf:(1) lift:(1.6) lev:(0.09) [2] < conv:(2.25)>

繼續閱讀