Apriori算法输出显示FALSE而非TRUE,如何设置使其显示TRUE?
Apriori规则显示FALSE而非TRUE的解决办法
你的问题出在数据格式处理上:当你将所有列设为factor类型后,arules会把每个因子的所有水平(包括FALSE)都作为关联规则的候选项,但实际我们只关心代表“存在/购买”的TRUE项。以下是两种直接的解决方式:
方法一:转换为交易型数据(推荐)
直接将数据转换为arules标准的交易格式,只保留每行中值为TRUE的列名,自动剔除FALSE项:
# 把原数据转换为交易对象,仅保留值为TRUE的项 market_trans <- as(market == TRUE, "transactions") # 基于交易对象运行Apriori rules <- apriori(market_trans, parameter = list(supp=0.1, conf=0.8)) inspect(rules[1:10])
方法二:通过参数过滤FALSE项
在apriori函数中使用appearance参数,指定只考虑值为TRUE的项:
# 生成所有"列名=TRUE"格式的项名 true_items <- paste(colnames(market), "=TRUE", sep="") # 运行Apriori时限定仅使用这些TRUE项 rules <- apriori(market, parameter = list(supp=0.1, conf=0.8), appearance = list(items = true_items)) inspect(rules[1:10])
两种方法都能让规则结果只显示TRUE相关的关联项,其中方法一更符合关联规则分析的常规数据结构,后续可视化或进一步分析也更方便。
内容的提问来源于stack exchange,提问作者Note2102
相关产品推荐
相关产品推荐

