作者sulaxd (SulaXD)
看板R_Language
標題Re: [問題] arules package
時間Tue Mar 8 13:51:21 2016
以下給你參考:
# 載入套件
library(magrittr)
library(plyr)
library(arules)
# 讀入資料,因資料來源編碼為big5,加入參數fileEncoding
dd <- read.csv("~/Downloads/dd.csv",stringsAsFactors = F, fileEncoding = "big5
")
# (optional)將資料轉為list,並把每筆交易中的空值及重複項目移除
dd <- dlply(dd, "X", function(u){
unlist(u[-1]) %>% .[.!=""] %>% unique
})
# 將資料轉為transactions物件並進行apriori算法
trans <- as(dd, "transactions")
rules <- apriori(trans, parameter = list(support=0.001, confidence=0.001,minle
n=2))
inspect(rules)
※ 引述《clansoda (小笨)》之銘言:
: 各位好,首先我先附上資料https://goo.gl/4ds2H4
: 這個資料是購買資料的貨號,我想用它來做association analysis
: 如果我先將資料直接用rules<-apriori(dd,parameter=list(supp=0.01,conf=0.8))
: 接著inspect(rules),可是我這樣只能得到很少的rules而且都是item1->item5
: 類似這樣的空集合,也就是裡面沒有商品當然也就沒辦法分析,想請問如何消除這樣的
: rules,接著用另外種方式是直接從外面讀進來而且變成transaction的模式
: read.transaction(dd,sep=","),這樣確實會transaction被讀進來但是這樣做完aprio
ri
: 後不會是正常的格式像item1{kites}->item3{ball}類似這樣的模式
: 反而會是{ball,kites,lollipop}這樣的格式,所以我不知道哪裡出了錯
: 請問有人做過完整的關聯性分析嗎?
: 會用貨號的原因是,商品是很長而且有中文的格式反而會更難分析
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 27.243.129.186
※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1457416284.A.18F.html
推 clansoda: 請問您知道transaction的轉換到底應該是什麼格式嗎? 03/08 14:32
→ clansoda: 我用了好幾種型態的格式都會出現下面這串字 03/08 14:32
→ clansoda: no method or default for coercing “list” to 03/08 14:33
→ clansoda: transaction 03/08 14:33
→ sulaxd: 請查詢說明文件 ?transactions 範例很清楚 03/08 15:48
推 clansoda: 感謝你,我在中間的語法上有些問題 03/09 10:27
→ clansoda: 可以私下請教您嗎? 03/09 10:28
→ sulaxd: 可以 03/09 10:41