Performance One Горячее кодирование - PullRequest
1 голос
/ 28 февраля 2020

У меня большой набор данных (10 ГБ), и я должен выполнить One Hot Encoding (OHE). При подготовке данных OHE - это шея bottle, это занимает слишком много времени.

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

from category_encoders.one_hot import OneHotEncoder

OneHotEncoder().fit_transform(df)

Для небольшой выборки данных фрейм уже занимает слишком много времени.

Как я могу ускорить процесс? Может распараллелить это? Еще один способ сделать это?

1 Ответ

1 голос
/ 28 февраля 2020

Я бы использовал костюмированную функцию или ту же функцию и выполнял ее параллельно. Это можно сделать с помощью многопроцессорной библиотеки. Предполагая, что ваша функция 'My_Fun', которая получает в качестве входных данных номер записи и возвращает одну горячую кодировку, вы можете запустить следующие строки кода:

import multiprocessing
inputs = range(sample_size)
num_cores = multiprocessing.cpu_count()
print("number of available cores:", num_cores)
results = Parallel(n_jobs=num_cores)(delayed(My_Fun)(i) for i in inputs)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...