Последовательный анализ шаблонов — это тема анализа данных, связанная с поиском статистически значимых шаблонов между примерами данных, где значения представлены в последовательности. [1] [2] Обычно предполагается, что значения дискретны, и поэтому анализ временных рядов тесно связан, но обычно считается другой деятельностью. Последовательный анализ шаблонов — это особый случай структурированного анализа данных .
В этой области рассматривается несколько основных традиционных вычислительных задач. К ним относятся создание эффективных баз данных и индексов для информации о последовательностях, извлечение часто встречающихся шаблонов, сравнение последовательностей на предмет сходства и восстановление отсутствующих членов последовательностей. В целом, проблемы извлечения последовательностей можно классифицировать как извлечение строк , которое обычно основано на алгоритмах обработки строк , и извлечение наборов элементов , которое обычно основано на изучении правил ассоциации . Локальные модели процессов [3] расширяют извлечение последовательных шаблонов до более сложных шаблонов, которые могут включать (исключающие) выборы, циклы и конструкции параллелизма в дополнение к конструкции последовательного упорядочения.
Строковый майнинг обычно имеет дело с ограниченным алфавитом для элементов, которые появляются в последовательности , но сама последовательность может быть, как правило, очень длинной. Примерами алфавита могут быть те, которые находятся в наборе символов ASCII , используемых в тексте на естественном языке, нуклеотидные основания «A», «G», «C» и «T» в последовательностях ДНК или аминокислоты для последовательностей белков . В биологических приложениях анализ расположения алфавита в строках может использоваться для изучения последовательностей генов и белков с целью определения их свойств. Знание последовательности букв ДНК или белка не является конечной целью само по себе. Скорее, основная задача состоит в том, чтобы понять последовательность с точки зрения ее структуры и биологической функции . Обычно это достигается сначала путем идентификации отдельных областей или структурных единиц в каждой последовательности, а затем назначения функции каждой структурной единице. Во многих случаях это требует сравнения данной последовательности с ранее изученными. Сравнение между строками усложняется, когда в строке происходят вставки , делеции и мутации .
Обзор и таксономия ключевых алгоритмов сравнения последовательностей для биоинформатики представлены Абуэльходой и Ганемом (2010), которые включают: [4]
Некоторые проблемы в последовательном майнинге позволяют обнаружить частые наборы элементов и порядок их появления, например, кто-то ищет правила вида «если {клиент покупает машину}, он или она, скорее всего, {купит страховку} в течение 1 недели», или в контексте цен на акции, «если {Nokia вверх и Ericsson вверх}, то, скорее всего, {Motorola вверх и Samsung вверх} в течение 2 дней». Традиционно, майнинг наборов элементов используется в маркетинговых приложениях для обнаружения закономерностей между часто встречающимися элементами в крупных транзакциях. Например, анализируя транзакции корзин покупок клиентов в супермаркете, можно создать правило, которое гласит: «если клиент покупает лук и картофель вместе, он или она, скорее всего, также купит мясо для гамбургера в той же транзакции».
Обзор и таксономия ключевых алгоритмов для анализа наборов элементов представлены Ханом и др. (2007). [5]
Двумя распространенными методами, применяемыми к базам данных секвенирования для частого извлечения наборов элементов, являются влиятельный алгоритм априори и более современный метод FP-growth .
При большом разнообразии продуктов и покупательского поведения пользователей полка, на которой представлены продукты, является одним из важнейших ресурсов в розничной торговле. Розничные торговцы могут не только увеличить свою прибыль, но и снизить затраты за счет правильного управления распределением полочного пространства и выкладкой продуктов. Чтобы решить эту проблему, Джордж и Бину (2013) предложили подход к анализу пользовательских моделей покупок с использованием алгоритма PrefixSpan и размещению продуктов на полках в порядке, соответствующем выявленным моделям покупок. [6]
Обычно используемые алгоритмы включают в себя: