Я хочу проанализировать большой набор данных (2 000 000 записей, 20 000 идентификаторов клиентов, 6 номинальных атрибутов) с использованием алгоритма обобщенного последовательного шаблона.Rapidminer: проблемы с памятью, преобразующие номинальные в биномиальные атрибуты
Для этого требуется, чтобы все атрибуты, кроме атрибута времени и идентификатора клиента, были биноминальными. Имея 6 номинальных атрибутов, которые я хочу проанализировать для шаблонов, мне нужно преобразовать их в биномиальные атрибуты, используя функцию «Номинал для биноминала». Это вызывает проблемы с памятью на моей рабочей станции (с 16 ГБ ОЗУ, из которых я выделил 12 для экземпляра Java, на котором работает quickminer).
В идеале я хотел бы настроить свой проект таким образом, чтобы он временно записывал на диск или использовал временные таблицы в моей базе данных оракула, из которых моя модель также напрямую считывает данные. Чтобы использовать функцию «запись базы данных» или «обновить базу данных», мне нужно иметь существующую таблицу уже в моей базе данных с булевыми столбцами (если я не ошибаюсь).
Я попытался написать шаг за шагом результаты биноминального преобразования в файлы csv на мой локальный диск. Я начал использовать номинальный атрибут с наименьшими значениями, в результате получился файл csv, содержащий мой идентификатор набора данных, и теперь 7 биномиальных атрибутов. Я был серьезно удивлен, увидев, что размер файла составляет> 200 МБ. Это вызвано быстрым написанием строк для биномиальных значений «true»/«false». Разве это не было бы более эффективным с точки зрения памяти, просто записывая 0/1?
Есть ли способ использовать базу данных oracle напрямую или работать с значениями 0/1 вместо «true»/«false»? У моей следующей колонки будет 3000 различных значений, которые будут преобразованы, которые закончились бы в кошмаре ...
Я очень ценю рекомендации по использованию более эффективной памяти или работе непосредственно в базе данных. Если кто-то знает, как легко преобразовать varchar2-column в Oracle в логические столбцы для каждого отдельного значения, которое также будет оценено!
Спасибо большое, Хольгер
редактировать:
Моя цель состоит в том, чтобы получить от такой структуры:
column_a; column_b; customer_ID; timestamp
value_aa; value_ba; 1; 1
value_ab; value_ba; 1; 2
value_ab; value_bb; 1; 3
к этой структуре:
customer_ID; timestamp; column_a_value_aa; column_a_value_ab; column_b_value_ba; column_b_value_bb
1; 1; 1; 0; 1; 0
1; 2; 0; 1; 1; 0
1; 3; 0; 1; 0; 1
Я имею в виду двоичные или булевские значения. Не знаю почему, но в quickminer они называются биномиальными (а не биномиальными). – Holger