首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中lhs的子集设置规则

R中lhs的子集设置规则
EN

Stack Overflow用户
提问于 2017-03-17 04:34:56
回答 3查看 3.1K关注 0票数 3

我想通过以下方式在R中运行apiriori算法生成的规则子集。

规则子集必须具有LHS,LHS必须只包含另一个列表中的任何项(例如项)。不会对RHS应用任何约束。

我尝试了以下代码,但无法获得预期的结果:

代码语言:javascript
复制
> 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))

此子设置操作产生以下结果(这是错误的,因为我只想在规则子集中使用"curd and cereals“作为LHS )

代码语言:javascript
复制
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

我试着在这个网站上找到答案,但没有成功。我还尝试了其他各种方法,但都没有成功。

如果你能帮助我,我将不胜感激。

EN

回答 3

Stack Overflow用户

发布于 2017-03-17 05:02:01

当我尝试这样做时,它起作用了:

rules.subset2 <- subset(rules, lhs %in% c("cereals", "curd"))

多步骤将“谷类”和“凝乳”同时包括在lhs中:

sub_2<- subset(rules, lhs %in% "cereals")

sub_3<- subset(sub_2, lhs %in% "curd")

票数 2
EN

Stack Overflow用户

发布于 2018-02-04 09:43:35

我认为操作符是%ain%,所以应该是这样的:

代码语言:javascript
复制
lhs %oin% c('cereals', 'curd')
票数 1
EN

Stack Overflow用户

发布于 2019-02-19 02:08:16

该文档提供了一个示例

代码语言:javascript
复制
## select only rules with items "age=Young" and "workclass=Private" in
## the left-hand-side
rules.sub <- subset(rules, subset = lhs %ain% 
    c("age=Young", "workclass=Private"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42844279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档