ошибка
numpy.core._exceptions.MemoryError: Unable to allocate 362. GiB for an array with shape (2700000, 18000) and data type float64
https://www.kaggle.com/datasets/netflix-inc/netflix-prize-data
Я работаю над этим набором данных о призах netflix, в котором много фильмов и идентификаторов пользователей. Моя работа заключается в применении матричной факторизации, поэтому мне нужно создать матрицу 2700000 X 18000, в которой хранится int в диапазоне от 1 до 5. Я пробовал много способов, но все еще не смог чтобы создать матрицу такого размера, попытался заставить ее быть uint8, но форма матрицы, которую я получаю, неверна, пожалуйста, помогите мне решить эту проблему.
Ваша матрица 3 миллиона на 20000 должна быть разреженной, иначе вам понадобится компьютер с очень большим объемом памяти. Для одной копии полной реальной матрицы такого размера потребуется несколько сотен ГБ или даже несколько ТБ непрерывного пространства.
Лучше всего уже иметь обработанный кластер больших серверов, например. npz, который можно загрузить с помощью scipy.sparse.load_npz. Я проверил по вашей ссылке, что данные обучения поступили в более чем 17 000 файлов, которые объединены в 4 файла. Существует версия svd, которая может работать итеративно и получать данные меньшими порциями, spark.apache.org/docs/2.2.0/mllib-Dimensionity-Reduction.html.
моя цель - применить матричную факторизацию к рейтинговой матрице
и как получить доступ к scipy.sparse.csc_matrix построчно или паре элементов? я пытался искать, но везде написано преобразовать в плотный или матричный, что я не могу сделать