2015-09-11 20 views

回答

1

所有你需要做的是,將附加列添加到質量data.frame。 Inspect會自動選擇這些。下面是從? interestMeasure的例子:

data("Income") 
rules <- apriori(Income) 

## calculate a single measure and add it to the quality slot 
quality(rules) <- cbind(quality(rules), 
    hyperConfidence = interestMeasure(rules, method = "hyperConfidence", 
    transactions = Income)) 

inspect(head(sort(rules, by = "hyperConfidence"))) 

    lhs         rhs        support confidence  lift hyperConfidence 
1 {ethnic classification=hispanic} => {education=no college graduate} 0.1096568 0.8636884 1.224731    1 
2 {dual incomes=no}    => {marital status=married}  0.1400524 0.9441176 2.447871    1 
3 {occupation=student}    => {marital status=single}   0.1449971 0.8838652 2.160490    1 
4 {occupation=student}    => {age=14-34}      0.1592496 0.9707447 1.658345    1 
5 {occupation=student}    => {dual incomes=not married}  0.1535777 0.9361702 1.564683    1 
6 {occupation=student}    => {income=$0-$40,000}    0.1381617 0.8421986 1.353027    1 
+0

感謝您的信息, –

+0

感謝您的信息。爲了計算Kulczynski和不平衡比率,我需要使用每個有趣事務的單個項目集支持。例如,不平衡比率等於| sup(A)-sup(B)| /(sup(A)+ sup(B) -sup(A-> B)) –

2

失衡是相當直截了當:

library(arules) 
data("Income") 
rules <- apriori(Income) 

suppA <- support(lhs(rules), trans = Income) 
suppB <- support(rhs(rules), trans = Income) 
suppAB <- quality(rules)$supp 
quality(rules)$imbalance <- abs(suppA - suppB)/(suppA + suppB - suppAB) 

inspect(head(rules)) 
    lhs         rhs        support confidence  lift imbalance 
1 {}        => {language in home=english}  0.9128854 0.9128854 1.000000 0.03082862 
2 {occupation=clerical/service} => {language in home=english}  0.1127109 0.9292566 1.017933 0.69021050 
3 {ethnic classification=hispanic} => {education=no college graduate} 0.1096568 0.8636884 1.224731 0.61395923 
4 {dual incomes=no}    => {marital status=married}  0.1400524 0.9441176 2.447871 0.35210356 
5 {dual incomes=no}    => {language in home=english}  0.1364165 0.9196078 1.007364 0.63837280 
6 {occupation=student}    => {marital status=single}   0.1449971 0.8838652 2.160490 0.34123127 

的Kulczynski量度1/2(P(A | B)+ P(B | A))是一種有點棘手。 P(A | B)就是A-> B的置信度。但是,對於P(B | A),我們需要B-> A的置信度。因此,我們需要建立一套新的與左側和右側的規則交換和計算的信心:

confAB <- quality(rules)$conf 
BArules <- new("rules", lhs = rhs(rules), rhs = lhs(rules)) 
confBA <- interestMeasure(BArules, method = "confidence", trans = Income) 
quality(rules)$kulczynski <- .5*(confAB + confBA) 

inspect(head(rules)) 
    lhs         rhs        support confidence  lift imbalance kulczynski 
    1 {}        => {language in home=english}  0.9128854 0.9128854 1.000000 0.03082862 0.9564427 
    2 {occupation=clerical/service} => {language in home=english}  0.1127109 0.9292566 1.017933 0.69021050 0.5263616 
    3 {ethnic classification=hispanic} => {education=no college graduate} 0.1096568 0.8636884 1.224731 0.61395923 0.5095922 
    4 {dual incomes=no}    => {marital status=married}  0.1400524 0.9441176 2.447871 0.35210356 0.6536199 
    5 {dual incomes=no}    => {language in home=english}  0.1364165 0.9196078 1.007364 0.63837280 0.5345211 
    6 {occupation=student}    => {marital status=single}   0.1449971 0.8838652 2.160490 0.34123127 0.6191456 
+0

謝謝邁克爾,它工作完美 –