knitr::opts_chunk$set(collapse = TRUE, comment = "#>") library(arules) set.seed(1234)
No single measure identifies every useful association. Support and confidence describe prevalence and conditional probability, while measures such as lift and leverage compare observed co-occurrence with what would be expected under independence.
trans <- transactions(list( T1 = c("tea", "cookies", "milk"), T2 = c("tea", "cookies"), T3 = c("coffee", "cookies"), T4 = c("tea", "milk"), T5 = c("coffee", "milk"), T6 = c("tea", "cookies", "milk"), T7 = c("coffee", "cookies"), T8 = c("tea", "cookies") )) rules <- apriori( trans, parameter = list(support = 0.25, confidence = 0.5), control = list(verbose = FALSE) )
The quality data frame already contains the measures calculated during mining.
head(quality(rules))
Different measures answer different questions:
A rare rule can have high lift but little practical impact, while a rule with high confidence may simply predict a very common consequent. It is therefore often useful to consider several measures together.
arules implements many commonly used measures. The complete list is in
A Probabilistic Comparison of Commonly Used Interest Measures for Association Rules.
interestMeasure() calculates additional measures. Supply the transactions
for measures that require counts not stored with the rules.
measures <- interestMeasure( rules, measure = c("leverage", "phi"), transactions = trans ) head(measures)
Here, leverage is the observed joint support minus the support expected under independence. Phi is the correlation between the left- and right-hand sides of a rule; it is undefined for some rules.
Add selected measures as new columns in the quality data frame.
quality(rules) <- cbind( quality(rules), interestMeasure( rules, measure = c("leverage", "phi"), transactions = trans ) )
The new measures can now be used to filter and sort rules.
inspect(head(sort(rules, by = "leverage"), 3))
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.