Новая библиотека Pattern Mining Python для Data Science

Аналитика больших данных представляет собой набор методов для обнаружения знаний, скрытых в больших базах данных. Эти методы можно условно разделить на четыре типа:

  • Анализ шаблонов — направлен на поиск скрытых шаблонов в данных.
  • Кластеризация - направлена ​​​​на группировку данных таким образом, чтобы объекты в группе имели высокое сходство внутри класса и низкое сходство между классами.
  • Классификация - направлена ​​​​на поиск подходящей метки класса для тестового экземпляра из изученной модели.
  • Прогнозирование — направлено на прогнозирование значения тестового экземпляра на основе изученной модели.

Как показано на рис. 1, анализ шаблонов и кластеризация — это методы обучения без учителя, а классификация и прогнозирование — методы обучения с учителем.

В литературе описано несколько библиотек Python (например, Sklearn, PyTorch, TensorFlow и Keras) для выполнения анализа больших данных. Эти библиотеки в основном сосредоточены на кластеризации, классификации и прогнозировании. Насколько нам известно, не существует библиотеки Python, предназначенной для обнаружения шаблонов, скрытых в данных. Исходя из этого, мы разработали новую библиотеку Python под названием PAMI. В этом блоге мы освещаем следующие темы:

  1. Что такое ПАМИ? Какова его лицензия? и как его установить?
  2. Какова организационная структура ПАМИ?
  3. Как использовать PAMI для обнаружения частых закономерностей?
  4. Место для получения дополнительной информации.

Что такое PAMI? Какова его лицензия? Как установить?

PAMI расшифровывается как PAttern MINing. Эта библиотека содержит несколько алгоритмов анализа шаблонов для обнаружения знаний, скрытых в объемных наборах данных. В настоящее время PAMI имеет более 50 алгоритмов для поиска различных типов шаблонов на основе интересов пользователей. Примеры включают частые паттерны, коррелированные паттерны, периодические паттерны, частые паттерны соседства и нечеткие периодические паттерны.

В настоящее время PAMI предоставляется по лицензии GNU V3. Исходный код этой библиотеки доступен на GitHub [3]. Библиотеку PAMI можно установить напрямую из репозитория PyPI, выполнив следующую команду:

pip install -y pami

Какова организационная структура PAMI?

Алгоритмы в PAMI организованы иерархически. Формат этой иерархии таков:

PAMI.patternMiningModel.typeOfPattern.Algorithm

  • patternMiningModel — обозначает тип паттерна, который необходимо обнаружить, например, частый паттерн, коррелированный паттерн, нечеткий частый паттерн и т. д.
  • typeOfPattern — обозначает классификацию паттерна. В настоящее время PAMI реализует четыре типа паттернов. (i) базовый — найти все закономерности в данных, (ii) закрытый — найти в данных только закрытые закономерности, (iii) максимальный — найти только максимальные закономерности в данных и (iv) topK — найти топ-k закономерностей в данных данные.
  • Алгоритм — обозначает метод, используемый для обнаружения закономерностей.

Примером является

PAMI.frequentPattern.basic.FPGrowth

где frequentPattern — модель, basic — тип шаблона, а FPGrowth — алгоритм интеллектуального анализа данных.

Как использовать PAMI для обнаружения частых закономерностей?

Частый анализ шаблонов — важный метод обнаружения знаний в аналитике больших данных. Он включает в себя идентификацию всех наборов элементов (или шаблонов), которые часто встречаются в данных. Классическое приложение — аналитика потребительской корзины. Он включает в себя определение наборов товаров, которые часто приобретались клиентами. Пример частого шаблона:

{Beer, Cheese}     [support=10%]

Приведенный выше шаблон говорит о том, что 10% клиентов купили товары «Пиво» и «Сыр» вместе. Такая информация может оказаться чрезвычайно полезной для пользователей при размещении продуктов и управлении запасами. Более подробную информацию о частом анализе шаблонов можно найти в [5,6].

Теперь мы рассмотрим пошаговый процесс частого анализа шаблонов с использованием библиотеки PAMI и Jupyter NoteBook.

  1. Нажмите здесь[7], чтобы загрузить набор данных о транзакциях Retail.
  2. FP-growth — это известный алгоритм для поиска частых паттернов. Давайте сначала импортируем этот алгоритм, выполнив следующую команду в Jupyter:
from PAMI.frequentPattern.basic import FPGrowth as alg

3. Инициализируйте алгоритм роста FP, указав файл, минимальную поддержку (minSup) и разделитель в качестве входных параметров.

obj = alg.FPGrowth('transactional_retail.csv',100,'\t')
# 'transactional_retail.csv' is the input file downloaded from the URL
#100 is the minimum support count. 
#\t is the separetor that exist between the items in a transaction

4. Запустите процесс майнинга

obj.startMine()

5. Сохраните шаблоны в файле, выполнив следующий код:

obj.savePatterns('frequentPatters_100.txt')
# 100 is the minSup count

В выходном файле, скажем, FrequencyPatters_100.txt, первый столбец — это шаблон, а второй столбец — поддержка.

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

df = obj.getPatternsAsDataFrame()

7. Требования к времени выполнения и памяти для алгоритма майнинга можно получить, выполнив следующий код:

print('Runtime: ' + str(obj.getRuntime()))
print('Memory: ' + str(obj.getMemoryRSS()))

Весь код вышеперечисленных шагов выглядит следующим образом:

from PAMI.frequentPattern.basic import FPGrowth as alg
obj = alg.FPGrowth('transactional_retail.csv',100,'\t')
obj.startMine()
obj.savePatterns('frequentPatters_100.txt')
df = obj.getPatternsAsDataFrame()
print('Runtime: ' + str(obj.getRuntime()))
print('Memory: ' + str(obj.getMemoryRSS()))

Где я могу найти дополнительную информацию о PAMI?

Посетите https://udayrage.github.io/PAMI/index.html для получения дополнительной информации.

Заключение

В этом блоге мы обсудили различные типы алгоритмов обучения и обсудили, как существующие библиотеки Python не могут предоставить пользователям инструменты для обнаружения скрытых закономерностей в данных. Затем мы представили нашу библиотеку PAMI Python, которая призвана заполнить пробел, оставленный существующими библиотеками. Далее мы обсудили организационную структуру алгоритмов в PAMI. Наконец, мы продемонстрировали, как можно использовать PAMI для обнаружения частых закономерностей, скрытых в данных Retail.

Ссылки:

[1] https://plato.stanford.edu/entries/logic-ai/

[2] Логика в ИИ: https://www.researchgate.net/publication/46666490_Logic_in_AI

[3] Исходный код PAMI: https://github.com/udayRage/PAMI

[4] Руководство пользователя PAMI: https://udayrage.github.io/PAMI/index.html

[5] Интеллектуальный анализ частых шаблонов: текущее состояние и будущие направления, Дж. Хан, Х. Ченг, Д. Синь и К. Ян, Архив интеллектуального анализа данных и знаний, 2007 г., Vol. 15 Выпуск 1, стр. 55–86, 2007 г.

[6] Анализ частых шаблонов, изд. Чару Аггарвал и Джиавэй Хан, Springer, 2014 г.

[7] Набор данных транзакционных розничных продаж: https://www.u-aizu.ac.jp/~udayrage/datasets/transactionalDatabases/transactional_retail.csv