Новая библиотека Pattern Mining Python для Data Science
Аналитика больших данных представляет собой набор методов для обнаружения знаний, скрытых в больших базах данных. Эти методы можно условно разделить на четыре типа:
- Анализ шаблонов — направлен на поиск скрытых шаблонов в данных.
- Кластеризация - направлена на группировку данных таким образом, чтобы объекты в группе имели высокое сходство внутри класса и низкое сходство между классами.
- Классификация - направлена на поиск подходящей метки класса для тестового экземпляра из изученной модели.
- Прогнозирование — направлено на прогнозирование значения тестового экземпляра на основе изученной модели.
Как показано на рис. 1, анализ шаблонов и кластеризация — это методы обучения без учителя, а классификация и прогнозирование — методы обучения с учителем.
В литературе описано несколько библиотек Python (например, Sklearn, PyTorch, TensorFlow и Keras) для выполнения анализа больших данных. Эти библиотеки в основном сосредоточены на кластеризации, классификации и прогнозировании. Насколько нам известно, не существует библиотеки Python, предназначенной для обнаружения шаблонов, скрытых в данных. Исходя из этого, мы разработали новую библиотеку Python под названием PAMI. В этом блоге мы освещаем следующие темы:
- Что такое ПАМИ? Какова его лицензия? и как его установить?
- Какова организационная структура ПАМИ?
- Как использовать PAMI для обнаружения частых закономерностей?
- Место для получения дополнительной информации.
Что такое 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.
- Нажмите здесь[7], чтобы загрузить набор данных о транзакциях Retail.
- 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