Я загрузил файл как операции в R:R Arules: как удалить определенные наборы элементов из LHS/RHS
path = "my_file.csv"
t = read.transactions(path,format="single", sep=';',cols=c("ID","Products"))
#get the rules:
rules = apriori(t,parameter = list(supp=0.01, conf=0.33, minlen=2, maxlen=4))
#sort by confidence:
rules = sort(rules, by="confidence", decreasing=TRUE)
#inspect the first 10 rules:
inspect(rules[1:10])
выход которого:
lhs rhs support confidence lift
[1] {e,b} => {a} 0.01 0.97 some_value
[2] {a} => {f} 0.04 0.92 some_value
[3] {t,f} => {a} 0.12 0.91 some_value
[4] {b,j} => {a} 0.09 0.82 some_value
[5] {e} => {a} 0.25 0.77 some_value
[6] {g,h} => {a} 0.05 0.56 some_value
[7] {p} => {a} 0.31 0.54 some_value
[8] {q,n} => {h} 0.18 0.49 some_value
[9] {s} => {a} 0.07 0.46 some_value
[10] {s,d} => {a} 0.20 0.42 some_value
Теперь моя проблема в том, что НИКАКИХ гарантий {a} слишком частая, и я хотел бы установить генератор правил apriori таким образом, чтобы элемент {a} или любой другой элемент, который я не хочу рассматривать, не отображается в сгенерированных правилах. Я знаю, что простой способ - удалить элемент {a} из загруженного файла транзакции; в любом случае, даже если это легко, он не умный и элегантный, а также очень длинный, потому что я работаю с сотнями различных файлов транзакций.
Поиск в Интернете я нашел этот режим настройки для определения левой и правой частях:
rules = apriori(t,parameter = list(supp=0.01, conf=0.33, minlen=2, maxlen=4), appearance=list(default="lhs", rhs="b"))
Выход из инспектировать теперь:
lhs rhs support confidence lift
[1] {a,b} => {b} other_value other_value other_value
[2] {a} => {b} other_value other_value other_value
[3] {a,f} => {b} other_value other_value other_value
[4] {b,j} => {b} other_value other_value other_value
[5] {a} => {b} other_value other_value other_value
[6] {a,h} => {b} other_value other_value other_value
[7] {a} => {b} other_value other_value other_value
[8] {q,a} => {b} other_value other_value other_value
[9] {a} => {b} other_value other_value other_value
[10] {a,d} => {b} other_value other_value other_value
Так что можно сказать Apriori, какой пункт мы хотеть в rhs (или lhs); Но нельзя сказать Априори, какой предмет мы НЕ хотим. Или это не возможно, чтобы сказать, таким образом, я попытался (я не хочу {а}):
rules = apriori(t,parameter = list(supp=0.01, conf=0.33, minlen=2, maxlen=4), appearance=list(default="lhs", rhs!="a"))
Это дает ошибку.
Любые предложения? Благодаря
Я могу помочь вам с этим, но вы могли бы пересмотреть пример либо включать данные выборки с выхода' dput() 'или использовать встроенные данные примера, чтобы я мог воспроизвести вашу проблему и показать вам, как ее исправить? –
Вы имеете в виду данные правил (вывод) или файл транзакции?! –
Файл транзакции, поэтому вопрос воспроизводимый ([Как сделать отличный R воспроизводимый пример?] (Http://stackoverflow.com/questions/5963269)). Как правило, воспроизводимые вопросы гораздо более ценны для всех здесь. – Axeman