R package arules Select 规则所有的 rhs=1 和所有的 lhs=1
R package arules Select rules which all the rhs=1 and all the lhs=1
我有一个大数据集(0 和 1 的矩阵),有 20 个变量(每个变量是一个项目)和大约 100 行(每行是一个事务)。我在 R 中使用 "arules" 包进行关联规则挖掘。
我只对 rhs=1 和 lhs=1 的规则感兴趣(我的意思是如果以后要使用数据,所有项目都必须为真)。
我不知道如何 select 或对我的规则进行分类以仅保留我需要的规则。
例如我的数据:
{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。
非常感谢您的帮助。
查看 ?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
我有一个大数据集(0 和 1 的矩阵),有 20 个变量(每个变量是一个项目)和大约 100 行(每行是一个事务)。我在 R 中使用 "arules" 包进行关联规则挖掘。
我只对 rhs=1 和 lhs=1 的规则感兴趣(我的意思是如果以后要使用数据,所有项目都必须为真)。 我不知道如何 select 或对我的规则进行分类以仅保留我需要的规则。
例如我的数据:
{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。
非常感谢您的帮助。
查看 ?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