.freqpatA(
)
: integer
ZDDオブジェクトから最小サポート
以上出現する頻出アイテム集合を全て列挙し、そのZDDオブジェクト
を返す。
同様の関数にlcmがあるが、これはファイルからトランザクションデータを読み込み LCMアルゴリズムにより頻出アイテム集合を列挙するため、本関数に比べて非常に高速である。 しかしながら、アイテム名として整数を用いる必要があり、またアイテム順序についても注意が必要であるため、 さほど効率性が求められないのであれば、本関数を使えばよい。
> require 'zdd' > a=ZDD::itemset("a") > b=ZDD::itemset("b") > c=ZDD::itemset("c") > d=ZDD::itemset("d") > t=a*b*c + a*b + a + b*c*d + a > t.show a b c + a b + 2 a + b c d # t=a*b*c + a*b + a + b*c*d + aにおいて、 # アイテム集合abは第1,2項の2回出現している。 # アイテム集合aは第1,2,3,5項の4回出現している。 > t.freqpatA(2).show a b + a + b c + b + c + 1 # 極大アイテム集合(他のアイテム集合に包含されないアイテム集合) # 上記頻出アイテム集合のうち、aはabに包含され、bとcはbcに包含され、 # 1は他の全てのアイテム集合に包含されていると考えるため、a,b,1は出力されない。 > t.freqpatM(2).show a b + b c # 飽和アイテム集合(出現集合が同じアイテム集合族の中で極大のアイテム集合) # 上記頻出アイテム集合のうち、bcとcのいずれも第1,4項に出現している。 # すなわち出現集合が同じアイテム集合族である。 # そしてそのなかで極大なbcのみが出力される。 # その他に列挙された飽和集合は全て異なる出現集合を持つ。 > t.freqpatC(2).show a b + a + b c + b + 1 # 最小サポートを3にして実行する。 > t.freqpatA(3).show a + b + 1 > t.freqpatM(3).show a + b > t.freqpatC(3).show a + b + 1
freqpatM : 頻出極大アイテム集合の列挙
freqpatC : 頻出飽和アイテム集合の列挙
lcm : LCM over ZDD