Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 有没有办法通过提升来限制先验规则?_R_Apriori - Fatal编程技术网

R 有没有办法通过提升来限制先验规则?

R 有没有办法通过提升来限制先验规则?,r,apriori,R,Apriori,我正在查看以下数据集: 我对数据进行了预处理: ca.1<-read.csv("CreditApproval.csv",T,",") # From http://stackoverflow.com/q/4787332/ remove_outliers <- function(x, na.rm = TRUE, ...) { qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...) H <- 1.5 * IQ

我正在查看以下数据集:

我对数据进行了预处理:

ca.1<-read.csv("CreditApproval.csv",T,",")

# From http://stackoverflow.com/q/4787332/
remove_outliers <- function(x, na.rm = TRUE, ...) {
  qnt <- quantile(x, probs=c(.25, .75), na.rm = na.rm, ...)
  H <- 1.5 * IQR(x, na.rm = na.rm)
  y <- x
  y[x < (qnt[1] - H)] <- NA
  y[x > (qnt[2] + H)] <- NA
  y
}

ca.1$A2<-remove_outliers(ca$A2)
ca.1$A3<-remove_outliers(ca$A3)
ca.1$A8<-remove_outliers(ca$A8)
ca.1$A11<-remove_outliers(ca$A11)
ca.1$A14<-remove_outliers(ca$A14)
ca.1$A15<-remove_outliers(ca$A15)
ca.1$A2<-discretize(ca.1$A2,"frequency",categories = 6)
ca.1$A3<-discretize(ca.1$A3,"frequency",categories = 6)
ca.1$A8<-discretize(ca.1$A8,"frequency",categories = 6)
ca.1$A11<-discretize(ca.1$A11,"frequency",categories = 6)
ca.1$A14<-discretize(ca.1$A14,"frequency",categories = 6)
ca.1$A15<-discretize(ca.1$A15,"frequency",categories = 6)

ca.1<-na.omit(ca.1)
ca.1如果您尝试:

apriori(df, parameter = list(lift = 0.3, minlen =2))
在这种情况下,您可以将最小升力设置为任何值,只需选择0.3

如果您尝试:

apriori(df, parameter = list(lift = 0.3, minlen =2))

在这种情况下,您可以将最小升力设置为任何值,只需选择0.3

我认为apriori函数不把升力作为参数之一。如果我试图设置升力,就会出现此错误

错误: 无效参数:lift

相反,我可以按升力对规则进行排序,并根据升力值选择规则,如下所示

排序(规则,按=“提升”,递减=真)


这不是一个简单的解决方案,而是一个很好的解决方案

我认为apriori函数没有将提升作为参数之一。如果我试图设置升力,就会出现此错误

错误: 无效参数:lift

相反,我可以按升力对规则进行排序,并根据升力值选择规则,如下所示

排序(规则,按=“提升”,递减=真)


这不是一个简单的解决方案,而是一个体面的解决办法,在arules中,为子集定义了一个特殊函数。 要筛选出提升值小于2的规则,可以尝试以下操作:

subset(rules, subset = lift > 2)

arules中,将一个特殊函数打包到子集定义此对象类型。 要筛选出提升值小于2的规则,可以尝试以下操作:

subset(rules, subset = lift > 2)

你不能单靠提升来限制先验规则。你必须先通过支持信心来获得一个限制,你在这里做的就是:

 rules<-apriori(ca.1, parameter= list(supp=0.15, conf=0.89, minlen=3, maxlen=4)

规则你不能单靠提升来限制先验规则。你必须先通过支持信心来获得一个限制,你在这里做的就是:

 rules<-apriori(ca.1, parameter= list(supp=0.15, conf=0.89, minlen=3, maxlen=4)

规则另一种方法是使用
arules::quality()
。例如:

association.rules <- apriori(tr, parameter = list(support=0.005, confidence=0.25, minlen=3, maxlen=10))

subRules<-association.rules[quality(association.rules)$lift > 1]

association.rules另一种方法是使用
arules::quality()
。例如:

association.rules <- apriori(tr, parameter = list(support=0.005, confidence=0.25, minlen=3, maxlen=10))

subRules<-association.rules[quality(association.rules)$lift > 1]

association.rules你在找吗?子规则(阈值)此示例不可复制@MFR我想知道apriori方法是否提供了实现这一点的方法。我的意思是这不是一个常见的问题吗?@Hack-R我添加了数据集和预处理代码。你在找吗?子规则(阈值)此示例不可复制@MFR我想知道apriori方法是否提供了实现这一点的方法。我的意思是这不是一个常见的问题吗?@Hack-R我添加了数据集和预处理代码。嗨。没有可设置为parameter.Hi的提升选项。没有可设置为参数的提升选项。