Уменьшение размерности в наборе данных, который будет использоваться позже в алгоритме правил ассоциации - PullRequest
0 голосов
/ 28 апреля 2019

Я работаю с алгоритмами правил ассоциации в Python, используя библиотеки pyfpgrowth для FP-Growth и mlxtend для Apriori. Размер набора данных составляет около 500 строк и 2500 столбцов. Столбцы набора данных содержат категориальные переменные, столбцы с числовыми непрерывными данными ранее были дискретизированы. Все элементы были закодированы в целые числа.

Я попытался запустить код со всем набором данных на компьютере с 16 ГБ ОЗУ, и этого было недостаточно для реализации Apriori. Кроме того, я попытался разделить набор на подмножества без какого-либо положительного прогресса (используя все столбцы, но только несколько строк). Параметры были достоверность = 0,95 и поддержка = 0,95. Если я возьму только 10% столбцов (500 строк x 250 столбцов), это сгенерирует более миллиона частых шаблонов. Для всего набора данных программа не может завершиться из-за памяти, необходимой для получения правил.

Библиотека FP-Growth вернула ошибку, доверие к некоторым правилам было чуть больше единицы. Я думал, что это было ошибкой, поэтому я не продолжал использовать это.

Мне нужно уменьшить количество столбцов, чтобы уменьшить время вычислений. Существует ли какой-либо метод уменьшения размерности (разработанный для правил ассоциации), который позволяет мне делать это, не теряя слишком много данных? Есть ли в Python реализация FP-Growth (или Apriori), которая использует меньше оперативной памяти?

...