Проблемы масштабируемости сводной таблицы Pandas / Numpy - PullRequest
0 голосов
/ 05 июля 2019

Я пытаюсь создать систему рекомендаций для совместной фильтрации, в которой я сравниваю пользователей и элементы в разреженной матрице данных.

Данные:

5.149.754 unique ids
7.827.435 unique items

Данные являются неявными, поэтому элементы нравятся пользователям, если они нажимают на них. Таким образом, данные равны либо 1, либо 0 на элемент.

У меня проблемы с масштабируемостью. Я пытаюсь использовать Pandas, NumPy и SciPy для построения разреженной матрицы пользовательских элементов, но я получаю ошибки (очевидно?):

Unstacked DataFrame is too big, causing int32 overflow с Pandas Pivot

MemoryError w / Numpy pivot_table

Даже с Pandas DataFrame из 642736 строк с ID профиля и ItemIds я получаю эти ошибки. Можно разбить данные на категории по переменным, таким как age и gender.

В конечном итоге я пытаюсь рекомендовать элементы пользователям на основе как можно большего числа пользователей / элементов, но я не понимаю ограничений такой системы, поскольку у меня нет опыта работы с таким большим набором данных.

Как бы вы внедрили такую ​​систему? Нужно ли разделять данные? Есть ли какая-нибудь библиотека / документация, которую я должен прочитать, прежде чем продолжить это?

...