Я пытаюсь использовать разреженную матрицу в моей регрессии, поскольку после добавления фиктивных переменных существует более 40 000 переменных. Чтобы сделать это, я считаю, что мне нужно кормить модель разреженной матрицей. Тем не менее, преобразование моего кадра данных pandas в матрицу невозможно с использованием кода, найденного здесь:
Преобразование кадра данных Pandas непосредственно в матрицу разреженных матов
Это потому, что набор данных слишком велик, и я столкнулся с ошибкой памяти. Вот пример того, как я могу воспроизвести проблему, выполнив следующее:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,40000,size=(1000000, 4)), columns=list('ABCD'))
df = pd.get_dummies(df,columns=['D'],sparse=True,drop_first=True)
df = df.values
В конечном счете, я хотел бы иметь возможность преобразовать фрейм данных (3 миллиона записей с 49 000 столбцами) в матрицу, потому что я подозреваю, что могу создать разреженную матрицу и использовать ее для своей регрессии. Это работает довольно хорошо для меньшего подмножества, но в конечном итоге мне нужно протестировать весь набор данных. Приведенный выше пример сразу возвращает «MemoryError», поэтому я подозреваю, что это некоторое ограничение Python, но я надеюсь, что есть обходной путь.