2
rules <- apriori(table2, parameter = list(minlen=1, sup=s))
itemsets <- unique(generatingItemsets(rules))
itemsets.df <- as(itemsets, "data.frame")
F <- as.matrix(itemsets.df[with(itemsets.df, order(-support,items)),])

出力:

# items            support
"{a,b}"              "1.0"  
"{a}"                "1.0"  
"{b}"                "1.0"  
"{c,a,b}"            "0.5"  
"{c,a}"              "0.5"  
"{c,b}"              "0.5"  
"{a,b,d}"            "0.5"  
"{a,d}"              "0.5"  
"{b,d}"              "0.5"

「アイテム」に示すように、apriori と generatedItemsets を使用して、頻繁に発生するイベント セットを取得します。しかし、出力にはスーパーセットのみが必要です。つまり、この場合は "{c,a,b}" と "{a,b,d}" です。Rでのみスーパーセットを取得するにはどうすればよいですか?

4

2 に答える 2

1

これは古い質問であることは知っていますが、 arules パッケージの is.maximal 関数を使用して非常に単純な解決策を見つける前に、かなり長い間調査したアプリオリ ルールのスーパーセットに関する Google での最初のヒットです。

目前の質問については、ルールを生成した直後に、is.maximal を使用してそれらをサブセット化します。

rules <- apriori(table2, parameter = list(minlen=1, sup=s))
maximal_rules <- rules[is.maximal(rules)]

次に、必要に応じて一意のアイテムセットだけを取得できます。

itemsets <- unique(generatingItemsets(maximal_rules))

Vincent の回答のサンプル データを使用した再現可能な例を次に示します。

library(arules)
example(apriori)
inspect(rules)
maximal_rules<-rules[is.maximal(rules)]
inspect(maximal_rules)
itemsets <- unique(generatingItemsets(maximal_rules))
inspect(itemsets)
于 2016-04-15T15:21:05.123 に答える