Я пытаюсь выучить ML, используя наборы данных Kaggle. В одной из задач (с использованием логистической регрессии) матрицы входов и параметров имеют размеры (1110001, 8) и (2122640, 8) соответственно.
Я получаю ошибку памяти при выполнении этого в python. Это было бы то же самое для любого языка, я думаю, так как он слишком большой. Мой вопрос заключается в том, как они умножают матрицы в реальных реализациях ML (так как обычно они бывают такими большими)?
Что меня беспокоит:
- Некоторые госзакупки в СО предложили рассчитать точечное произведение по частям и затем объединить Но даже тогда матрица была бы все еще слишком большой для оперативной памяти (в данном случае 9,42 ТБ)
- И если я запишу его в файл, не будет ли слишком медленным чтение алгоритмов оптимизации из файла и сведение к минимуму функции?
- Даже если я запишу его в файл, как fmin_bfgs (или любая дополнительная функция) будет читать из файла?
- Также ноутбук Kaggle показывает только 1 ГБ доступного хранилища. Я не думаю, что кто-то разрешил бы ТБ дискового пространства.
В моей входной матрице многие строки имеют похожие значения для некоторых столбцов. Могу ли я использовать это мое преимущество для экономии места? (как разреженная матрица для нулей в матрице)
Может ли кто-нибудь указать мне на реальный пример реализации таких случаев. Спасибо!