клиентов (ClientID), эти покупки собраны в заказы (OrderID), в заказах записи - товары (ProductID)
хотел сделать факторый анализ, но получил от data.table вот такое
data.table::dcast(
data = data_source[, .(OrderID, ProductID, ProductCnt)],
formula = OrderID ~ ProductID,
value.var = "ProductCnt"
)
Ошибка в CJ(1:354851, 1:51083) :
Cross product of elements provided to CJ() would result in 18126853633 rows which exceeds .Machine$integer.max == 2147483647
да, данных много, порядка 10 миллионов записей (1 запись - 1 товар в заказе), уникальных ProductID ~ 50 тыс.
по идее можно сделать saprseMatrix, и сделать факторый анализ по ней, но я таких библиотек не нашел
Как думаете, в каком направлении стоит двигаться???
MaterialID почему нету в data_source?
Я бы предположил, что Product - это слово, а Order - это документ и использовал бы Latent Dirichle Allocation с разряженной матрицей из пакета text2vec. Он такие объемы легко кушает. Или есть вариант bi-term modelling для коротких "текстов" - https://github.com/bnosac/BTM
Обсуждают сегодня