Большой набор данных в Sci-Kit узнать, как вписаться в память? - PullRequest
0 голосов
/ 20 апреля 2020

У меня большой фрейм данных с 1'650'000 строк (1,6 миллиона твитов и 50 тыс. Обзоров IMDB) с их настроением. Выглядит это так:


  target    text
0   -1  AT_USER URL - Awww, that's a bummer. You shoul...
1   -1  is upset that he can't update his Facebook by ...
2   -1  AT_USER I dived many times for the ball. Manag...
3   -1  my whole body feels itchy and like its on fire
4   -1  AT_USER no, it's not behaving at all. i'm mad....

Я хочу построить классификатор с использованием Naive Bayes MultinominalNB

Я использовал следующий код для предварительной обработки его для классификатора:

vectorizer = CountVectorizer(strip_accents="unicode", stop_words="english") # convert words into matrix format
x_train_vec = vectorizer.fit_transform(x_train)

pickle.dump(vectorizer, open("Models/MultinominalNB/vectorizer_imdb+twitter_0.8", "wb"))


tfidf = TfidfTransformer()
x_train_tfidf =tfidf.fit_transform(x_train_vec)

del x_train_vec

Я хотел использовать частичную подгонку, но она не помещалась в память (32 ГБ)

Затем я попробовал подгонку, и это сработало, но через 10 часов алгоритм все еще не был выполнен, и использование памяти снова возросло (при начало было 26 ГБ, 7 часов - 5 ГБ, но после 10 снова было 20 + ГБ)

Как я могу разделить рабочую нагрузку, чтобы обучить классификатор с данными? Я видел, как кто-то упоминал Даска, но не мог найти учебники, и мои попытки, похоже, не сработали.

Я также видел упоминание о конвейерах, но я полагаю, что они не разделяют задачу?

...