R package arules选择所有rhs = 1且所有lhs = 1的规则

时间:2015-11-22 15:21:41

标签: r rules apriori arules

我有一个大数据集(矩阵为0和1),有20个变量(每个变量是一个项目)和大约100行(每行是一个事务)。我使用" arules" R中的包用于关联规则挖掘。

我只对rhs = 1和lhs = 1的规则感兴趣(我的意思是如果我想稍后使用数据,那么所有项都必须为真)。 我不知道如何选择或分类我的规则以仅保留我需要的规则。

例如我的数据:

{hautvert=1,basintermediaire=1}  => {basvert=1}  0.1190476 1.0000000   4.941176
1235 {hautlarge=1,basbleu=0}          => {basvert=1}  0.1309524 0.9166667  4.529412
1274 {hautvert=1,basblanc=0}          => {basvert=1}  0.2023810 0.8947368  4.421053
1808 {hautlarge=1,pantalon=1}         => {baslarge=1} 0.1071429 1.0000000  4.421053
1811 {hautbleu=1,hautlarge=1}         => {baslarge=1} 0.1071429 1.0000000  4.421053
1889 {basbleu=1,pantalon=1}           => {baslarge=1} 0.1071429 1.0000000  4.421053
2261 {hautintermediaire=1,pantalon=1} => {basblanc=1} 0.1428571 1.0000000  4.200000
2291 {basserre=1,pantalon=1}          => {basblanc=1} 0.1428571 1.0000000  4.200000
2294 {hautbleu=0,pantalon=1}          => {basblanc=1} 0.1428571 1.0000000  4.200000
1256 {hautvert=1,basserre=0}          => {basvert=1}  0.2023810 0.8095238  4.000000

我需要只有第一行的规则,其中两个项目在lhs上等于1,而rhs也等于1。

非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

请查看详情部分中的?arules::subset?`%pin%`?aprioriminlen):

library(arules)
data("Adult")
rules <- apriori(Adult, parameter = list(minlen = 2)) 
rules.sub <- subset(rules, subset = lhs %pin% "relationship" & rhs %pin% "sex" & lift > 1.4 & support > 0.4)
as(rules.sub, "data.frame")
#                                                                      rules   support confidence     lift
# 80                                    {relationship=Husband} => {sex=Male} 0.4036485  0.9999493 1.495851
# 550 {marital-status=Married-civ-spouse,relationship=Husband} => {sex=Male} 0.4034028  0.9999492 1.495851