Python - регрессия больших данных - PullRequest
0 голосов
/ 19 февраля 2020

Сейчас я пытаюсь выполнить регрессию для большого набора данных, который содержит около 20 миллионов строк и 30 столбцов данных. К сожалению, около половины этих столбцов нужно читать как строки, для которых мне нужно будет перейти к фиктивным переменным для регрессии. Вот некоторый код, который я сейчас использую, чтобы разделить его на наборы данных Train / Test:

final = pd.read_csv('./data.csv')
msk = np.random.rand(len(final)) < 0.55
train = final[msk]
test = final[~msk]


#Training and testing with Poisson model
print('Regression Time: ', dt.now(), '\n')
res1 = smf.glm(formula=output + ' ~ ' + variables, data=train, offset=np.log(train[offset]), family=sm.families.Poisson(sm.families.links.log())).fit()

Я использую описанную выше регрессию, но никогда не запускал ее для данных такого размера. Я знаю, как форматировать любые фиктивные столбцы как типы данных np.int8, чтобы уменьшить объем памяти, занимаемый этими значениями, но не знаю, как очень хорошо справиться с такой проблемой или большими данными. Я чувствую, что даже простое чтение моих данных в фрейме данных неэффективно, даже когда указываются типы данных каждого столбца. Эта программа обычно вылетает на мне примерно через 20 минут. Я был бы признателен за любые советы о том, как эффективно работать с этими данными, и если есть даже решение для запуска регрессии в этом масштабе.

Я все еще новичок в работе с большими данными и буду признателен за любые помогите с этой проблемой, заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...