gpt4 book ai didi

R 规则,仅我的规则来自特定列

转载 作者:行者123 更新时间:2023-12-04 10:11:00 27 4
gpt4 key购买 nike

我想挖掘特定的 rhs 规则。文档中有一个示例证明这是可能的,但仅适用于特定情况(如下所示)。先来一个数据集来说明我的问题:

input <- matrix( c( rep(10001,6) , rep(10002,3) , rep(10003,3), 100001,100002,100003,100004,100005,100006,100002,100003,100007,100002,100003,100008,rep('a',6),rep('b',6)), ncol=3)
colnames(input) <- c(letters[1:3])
input <- as.data.frame(input)

现在我可以创建规则了:

 r <- apriori(input)

查看规则:

inspect(r)

我只想挖掘在 rhs 上有 b=... 的规则。对于特定值,这可以通过添加来完成:

appearance = list(rhs = c("b=100001", "b=100002"),default="lhs")

先验命令。当然,如果我想找到它们,我还必须调整信心。问题在于 b 列中的元素数量。在此示例中,我可以手动键入“b=.....”格式的所有元素,但我不能在自己的数据中键入。

我尝试使用 unique() 获取 b 的值,然后将其提供给 rhs,但它会产生错误,因为我提供的值如下:“100001”“100002”而不是“b=100001”“b =100002”。

是否有仅从特定列获取 rhs 规则的方法?

如果没有,是否有一种简单的方法可以从“当前”生成“想要”?

current <- c("100001", "100002", "100003", "100004", "100005", "100006", "100007", "100008")
want <- c("b=100001", "b=100002", "b=100003", "b=100004", "b=100005", "b=100006", "b=100007", "b=100008")

这个问题有点相关:Creating specific rules with arules in r但这对我来说有同样的问题,只是方式不同。

最佳答案

您可以使用子集:

r <- apriori(input, parameter = list(support = 0.1, confidence = 0.1))
inspect( subset( r, subset = rhs %pin% "b=" ) )
# lhs rhs support confidence lift
# 1 {} => {b=100002} 0.2500000 0.2500000 1.000000
# 2 {} => {b=100003} 0.2500000 0.2500000 1.000000
# 3 {c=b} => {b=100002} 0.1666667 0.3333333 1.333333
# 4 {c=b} => {b=100003} 0.1666667 0.3333333 1.333333

对于你的第二个问题,你可以使用paste:

paste0( "b=", current )
# [1] "b=100001" "b=100002" "b=100003" "b=100004" "b=100005" "b=100006" "b=100007"
# [8] "b=100008"

关于R 规则,仅我的规则来自特定列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18314800/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com