2016-12-29 27 views
0

我正在使用Apriori算法研究关联问题。尽管我得到的是输出结果,但是存在自相关或者说出自相关问题。车模应该与其他车模展现关系,但它展示了与同样的车模的关系。输入列有重复。我刚刚从大型数据集中输入了一大块输入。 有没有办法从输出中去除自相关问题。R编程。 apriori算法中的自动关联

的源代码提供如下: -

 mydata <- read.table(header=TRUE, text=" 
         cookieid        pageinfo 
         l8nqwetygUoySgkFHTG     datsuncarsgtyoplus 
         Deniju1uufQfOLQSZszdOdLok   marutisuzukicarwiftdzire 
         l8nofddggreerweUoySgkFHTG   hondacarsmobiliom 
         qrtyftg1z7UoySgkFHTG     fordcarsfigosd 
         ") 


carmodels<-data.frame(mydata) 
head(carmodels) 

#Exporting the new copy of webVisitors(copywebVisitors) into excel file named as "done.csv" 
write.csv(carmodels, "C:\\Users\\Desktop\\done.csv") 
df_cars <- read.csv("done.csv") 

library(plyr) 
df_itemcars <- ddply(df_cars,c("cookieid"), function(df1){paste(df1$pageinfo,collapse = ",")}) 

View(df_itemcars) 
df_itemcars$cookieid <- NULL 
colnames(df_itemcars) <- c("carmodels") 
head(df_itemcars) 
    write.csv(df_itemcars,"Itemcars.csv", row.names = TRUE) 

library(Matrix) 
library(arules) 
txn = read.transactions(file="Itemcars.csv", rm.duplicates= TRUE, format="basket",sep=",",cols=NULL) 

df_basket0 <- as(txn,"data.frame") 
View(df_basket0) 
basket_rules <- apriori(txn,parameter = list(sup = 0.01, conf = 0.5,target="rules")) 

inspect(basket_rules) 
df_basket <- as(basket_rules,"data.frame") 
View(df_basket) 

而且在我只获得了自相关问题,即它的表现与关系本身的输出。需要一些帮助 。可以进行的任何更改以消除此自相关?输出看起来像: - enter image description here

+0

欢迎来到SO。对于未来的问题,请提供_minimal_ reproducible示例来说明您的问题。你的代码似乎有很多镇流器。另外,我没有看到输出与截图的关系。 – lukeA

回答

0

人们只能从你的截图猜你应该删除的项目后引号和空格:

library(arules) 
a_list <- list(
    c('volkswagenvento "','" volkswagenvento'), 
    c('hondacarscity "','volkswagenvento')) 
names(a_list) <- paste("Tr",c(1:2), sep = "") 
trans1 <- as(a_list, "transactions") 
rules <- apriori(trans1) 
inspect(rules) 
# lhs     rhs     support confidence lift 
# [1] {" volkswagenvento} => {volkswagenvento "} 0.5  1   2 
# [2] {volkswagenvento "} => {" volkswagenvento} 0.5  1   2 
# [3] {hondacarscity "} => {volkswagenvento} 0.5  1   2 
# [4] {volkswagenvento} => {hondacarscity "} 0.5  1   2 

现在,我们代替开始和结束引号和空格:

b_list <- lapply(a_list, gsub, pattern='^"\\s*|\\s*"$', replace="") 
trans2 <- as(b_list, "transactions") 
rules2 <- apriori(trans2) inspect(rules2) 
# lhs    rhs    support confidence lift 
# [1] {}    => {volkswagenvento} 1.0  1   1 
# [2] {hondacarscity} => {volkswagenvento} 0.5  1   1