2016-05-31 12 views
1

有沒有一種方法可以使用arulesSequence的ruleInduction輸出使用arulesViz?或者是否有辦法強制/將序列規則輸出(類sequencerules)轉換爲類規則,所以我可以使用arulesViz?使用arulesViz繪製arulesSequences的輸出?或者,將類序列對象強制轉換爲規則的方法? (arulesSequence,R)

目標:我有興趣使用本文中回顧的一些可視化選項,特別是「圖表」選項(https://cran.r-project.org/web/packages/arulesViz/vignettes/arulesViz.pdf)。

通常你會使用arulesViz從arules衍生,像這樣的 「規則」(從暗角):

rules <- apriori(Groceries, parameter=list(support=0.001, confidence=0.5)) 
plot(x, method = NULL, measure = "support", shading = "lift", 
+ interactive = FALSE, data = NULL, control = NULL, ...) 

但我想用它cspade + ruleInduction的輸出:

s1    <- cspade(trans, parameter = list(support = 0.001,maxlen=3,maxgap=10), control = list(verbose = TRUE,numpart=1)) 
summary(s1) 
s1_df    <- as(s1, "data.frame") 
r1    <- ruleInduction(s1, confidence = 0.05, control = list(verbose = TRUE)) 
r1.subset.rule <- subset(r1, rhs(r1) %in% c("9990") & lift>2 & !lhs(r1) %in% c("300","301","412","4033","4043")) 
plot(r1.subset.rule,method="graph",control=list(alpha=1)) 

Error in as.double(y) : 
    cannot coerce type 'S4' to vector of type 'double' 

有沒有辦法做到這一點?我目前得到上述錯誤。請注意,這與此問題類似:Error in as.double(y) : cannot coerce type 'S4' to vector of type 'double'但在那裏提出的解決方案(確保已加載arulesViz)不起作用/不是問題。

謝謝你的幫助!

如果您覺得這不是一個合適的問題,請留下我的反饋意見/評論 - 我在這裏發表了幾個小時的研究,並且是一個新用戶:我會很高興聽到這可以是改進。

回答

2

原來,這是我的一個概念誤解。我最終聯繫了該軟件包的原作者(感謝您的回覆!如果您不想提及,請留下您的名字),並且治好了我的隧道視野。

sequenceRules和rules,儘管它們在你運行inspect()時看起來非常相似,但它們是非常不同的類。 arulesViz中的plot命令可以處理規​​則,但不能處理順序規則。雖然我敢肯定,我不明白所有的差異,這裏有一對夫婦:

  1. sequenceRules允許重複的元素,規則(最有可能)不
  2. sequenceRules可以有{A,B} - > {C}和{B,A} - > {D}。由於順序對「規則」沒有影響,而且arulesViz需要規則,所以arulesViz可能不知道如何處理這種類型的輸入。

無論如何 - 我在萬維網上發現了另一張海報,有類似的問題,所以在這裏張貼我的理解,希望能幫到別人。

正如我在我的問題中所說的,如果您覺得我的答案(和/或問題)應該改進,請以評論的形式給我留言!非常感激。

1

它可能沒有意義,但隨着我對arulesSequence的理解,我認爲你可以改進你的表示。 (A,B)和(B,A)是相同的項目集。並且{(A),(B)}和{(B),(A)}是兩個不同的序列。簡而言之:在一個項目集中沒有訂單,但是順序很重要。 (A,B),(A),(C,D)}與{ ,B),C,d)}。 我想這就是爲什麼arulesViz,如你所說,不知道該怎麼做。謝謝你讓我理解這些軟件包的問題。

相關問題