2016-12-29 25 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