我有一个大数据集(矩阵为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。
非常感谢你的帮助。
答案 0 :(得分:0)
请查看详情部分中的?arules::subset
,?`%pin%`
和?apriori
(minlen
):
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