Конвертировать большой фрейм данных в формат транзакции для arules в R - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть информация о нескольких исторических заказах с двумя столбцами в виде фрейма данных: OrderID и Item. Он содержит около 1 миллиона записей. Я пытаюсь выполнить поиск правил ассоциации с этим фреймом данных, и для использования пакета arules мне придется преобразовать большой фрейм данных в формат транзакций. Однако преобразование занимает очень много времени, и я попытался с небольшими фреймами данных (300К строк) с той же структурой, преобразование заняло несколько секунд, но для более крупного - навсегда. Поскольку я буду работать с еще большим набором данных для майнинга правил ассоциации, есть ли более эффективный способ сделать это?

Я использую довольно мощную машину и добился меньших кадров данных. Ниже приведен код, который я использовал для преобразования.

library(tidyverse)
library(arules)
OrderID<-c("0001","0001","0002","0002")
Item<-c("ProductA","ProductB","ProductB","ProductC")
df<-data.frame(OrderID,Item)
df$OrderID<-as.factor(df$OrderID)
df$Item<-as.factor(df$Item)

df_trans<-as(split(df[,"Item"],df[,"OrderID"]),"transactions")
...