Может быть, я просто глуп, но даже тогда я был бы признателен за некоторые полезные комментарии.
У меня есть набор данных, содержащий идентификаторы, статьи и атрибуты статей (т.е. группы). Используя RODBC
, я извлекаю таблицу из базы данных SQL Server (с sqlFetch
). Поэтому я не смог найти способ использовать read.transactions
из arules-package. Формат построен таким образом, что каждая строка является идентификатором комбинации статьи+группировки. В таблице 22 миллиона строк с примерно 11 миллионами уникальных идентификаторов. Статейная база составляет около 500 000 статей. В целях иллюстрации я создал пример фрейма данных, подобный этому.
dat <- data.frame(id <- rep(paste0("id", 1:5),1, each=3),
article <- rep(paste0("A", sample(1051:1069,15,T))),
groupA <- paste0(sample(LETTERS[1:3],15,TRUE), sample(1:3, 15,T))
)
colnames(dat) <- c("id", "article", "groupA")
dat$groupB[dat$groupA == "A1"|dat$groupA == "A2"|dat$groupA =="A3"] <- 1
dat$groupB[dat$groupA == "B1"|dat$groupA == "B2"|dat$groupA =="B3"] <- 2
dat$groupB[dat$groupA == "C1"|dat$groupA == "C2"|dat$groupA =="C3"] <- 3
в результате получается data.frame, подобный этому
id article groupA groupB
1 id1 A1053 B3 2
2 id1 A1051 B1 2
3 id1 A1067 B2 2
4 id2 A1054 B1 2
5 id2 A1069 B1 2
6 id2 A1068 A3 1
7 id3 A1053 C3 3
8 id3 A1066 B3 2
9 id3 A1057 A2 1
10 id4 A1056 B1 2
11 id4 A1065 C1 3
12 id4 A1069 A3 1
13 id5 A1066 A3 1
14 id5 A1062 A3 1
15 id5 A1059 B2 2
Я хочу использовать пакет arules для анализа потребительской корзины. Однако, если я передам data.frame в объект транзакций с txn <- as(dat, "transactions")
, каждая строка идентифицируется как одна корзина. Есть ли возможность указать arules на переменную id в качестве идентификатора? В основном, я ищу вариант "single"
из функции read.transactions
в преобразовании as
. Второй, связанный с этим вопрос: могу ли я использовать атрибуты с пакетом arules? Я подумал, что нужно будет проводить анализ алгоритмом apriori
не только на уровне статьи, но и на уровне группировки. Например. если я покупаю артикул A1053, я нахожу правило рекомендовать группу A B3. Это вообще возможно?