Data-Mining

最大和關閉頻率——包括答案

  • November 23, 2013

我想找出最大頻繁項集閉合頻繁項集

  • 頻繁項集如果它沒有任何頻繁的超集,則它是最大的。
  • 頻繁項集 X ∈ F 是的,如果它沒有相同頻率的超集

所以我統計了每個項目集的出現次數。

{A} = 4 ;  {B} = 2  ; {C} = 5  ; {D} = 4  ; {E} = 6

{A,B} = 1; {A,C} = 3; {A,D} = 3; {A,E} = 4; {B,C} = 2; 
{B,D} = 0; {B,E} = 2; {C,D} = 3; {C,E} = 5; {D,E} = 3

{A,B,C} = 1; {A,B,D} = 0; {A,B,E} = 1; {A,C,D} = 2; {A,C,E} = 3; 
{A,D,E} = 3; {B,C,D} = 0; {B,C,E} = 2; {C,D,E} = 3

{A,B,C,D} = 0; {A,B,C,E} = 1; {B,C,D,E} = 0


Min_Support 設置為// 很重要。感謝 steffen 提醒。

最大= _?

是否關閉=?

我在這個來源中找到了一個稍微擴展的定義(其中包括一個很好的解釋)。這是一個更可靠(已發布)的來源:CHARM:Mohammed J. Zaki 和 Ching-jui Hsiao 的封閉項集挖掘的有效算法

根據這個來源:

  • 如果項集的直接超集都沒有與項集相同的支持,則項集是閉合的
  • 一個項目集是最大頻繁的,如果它的直接超集都不是頻繁的

一些備註:

  • 有必要設置一個min_support(支持 = 包含感興趣的子集的項目集的數量除以所有項目集的數量),它定義了哪個項目集是頻繁的。如果一個項集的支持度 >= min_support,則它是頻繁的。
  • 關於算法,當試圖找到最大頻繁項集和閉合項集時,只考慮具有 min_support 的項集。
  • 封閉定義中的重要方面是,是否存在具有更多支持的直接超集並不重要,只有具有完全相同支持的直接超集才重要。
  • 最大頻繁 => 關閉 => 頻繁,但反之則不然。

應用到 OP 的例子

筆記:

  • 沒有檢查支持計數
  • 假設 min_support=0.5。如果 min_support_count >= 3 則滿足
{A} = 4; 由於 {A,E} 未關閉
{B} = 2; 不頻繁 => 忽略
{C} = 5 ; 由於 {C,E} 而未關閉
{D} = 4 ; 由於 {D,E} 而沒有關閉,但由於例如 {A,D} 而不是最大的
{E} = 6 ; 封閉,但不是最大的,例如 {D,E}

{A,B} = 1; 不頻繁 => 忽略
{A,C} = 3; 由於 {A,C,E} 而未關閉
{A,D} = 3; 由於 {A,D,E} 未關閉
{A,E} = 4; 關閉,但由於 {A,D,E} 而不是最大值
{B,C} = 2; 不頻繁 => 忽略
{B,D} = 0; 不頻繁 => 忽略
{B,E} = 2; 不頻繁 => 忽略
{C,D} = 3; 由於 {C,D,E} 而未關閉
{C,E} = 5; 閉合,但由於 {C,D,E} 而不是最大值
{D,E} = 4; 關閉,但由於 {A,D,E} 而不是最大值

{A,B,C} = 1; 不頻繁 => 忽略
{A,B,D} = 0; 不頻繁 => 忽略
{A,B,E} = 1; 不頻繁 => 忽略
{A,C,D} = 2; 不頻繁 => 忽略
{A,C,E} = 3; 最大頻率
{A,D,E} = 3; 最大頻率
{B,C,D} = 0; 不頻繁 => 忽略
{B,C,E} = 2; 不頻繁 => 忽略
{C,D,E} = 3; 最大頻率

{A,B,C,D} = 0; 不頻繁 => 忽略
{A,B,C,E} = 1; 不頻繁 => 忽略
{B,C,D,E} = 0; 不頻繁 => 忽略

引用自:https://stats.stackexchange.com/questions/77465

comments powered by Disqus