我想通過以下方式在R中運行apiriori算法產生的規則的子集。R子集arules由lhs
規則子集必須具有隻有其他列表(如項目)中的任何項目的LHS。 RHS沒有限制。
我嘗試下面的代碼,但我無法得到預期的結果:
> library(arules)
> library(datasets)
> data(Groceries)
> rules <- apriori(Groceries, parameter = list(supp = 0.001, conf = 0.8))
inspect(head(rules))
lhs rhs support confidence lift
[1] {liquor,red/blush wine} => {bottled beer} 0.001931876 0.9047619 11.235269
[2] {curd,cereals} => {whole milk} 0.001016777 0.9090909 3.557863
[3] {yogurt,cereals} => {whole milk} 0.001728521 0.8095238 3.168192
[4] {butter,jam} => {whole milk} 0.001016777 0.8333333 3.261374
[5] {soups,bottled beer} => {whole milk} 0.001118454 0.9166667 3.587512
[6] {napkins,house keeping products} => {whole milk} 0.001321810 0.8125000 3.179840
items = c("curd","cereals")
rules.subset2 <- subset(rules, subset = all(lhs %in% items))
此子設定操作結果如下(這是錯誤的,因爲我只希望有「豆腐和穀類食品「作爲規則子集中的LHS)
inspect(head(rules.subset2))
lhs rhs support confidence lift
[1] {liquor,red/blush wine} => {bottled beer} 0.001931876 0.9047619 11.235269
[2] {curd,cereals} => {whole milk} 0.001016777 0.9090909 3.557863
[3] {yogurt,cereals} => {whole milk} 0.001728521 0.8095238 3.168192
[4] {butter,jam} => {whole milk} 0.001016777 0.8333333 3.261374
[5] {soups,bottled beer} => {whole milk} 0.001118454 0.9166667 3.587512
[6] {napkins,house keeping products} => {whole milk} 0.001321810 0.8125000 3.179840
我試圖在本網站上找到答案,但沒有運氣。我也嘗試了其他各種方法,但我沒有成功。
我將不勝感激您的任何幫助。
謝謝@jiayao。這個給出了至少有LHS中的一個項目的所有規則。這裏是你建議的陳述的輸出:hs rhs支持信心 [1] {curd,cereals} => {whole milk} 0.001016777 0.9090909 [2] {酸奶,穀物} => {全脂牛奶} 0.001728521 0.8095238 [3] {turkey,curd} => {其他蔬菜} 0.001220132 0.8000000'。但是我需要R命令來獲得只有「items」中的項目的規則,而不是任何項目 – sri
哦好吧,所以你只需要在lhs中同時「穀物」和「凝乳」。我在rstudio中玩了一下,但沒有找到一種方法來做到這一點,但我認爲你可以通過多個步驟來做到這一點。 'sub_2 < - subset(規則,lhs%in%「cereals」)''sub_3 < - subset(sub_2,lhs%in%「curd」)'我會繼續搜索。 –