Написано ранее: Последовательный анализ шаблонов уже является широко исследуемой областью, и для решения проблемы неэффективного времени, необходимого для нахождения подходящих порогов, на повестку дня естественным образом ставятся идеи top-k. В поле top-k наиболее важной ссылкой является способ быстрого увеличения порога, поэтому мы в основном изучаем идею исследования локального приоритета этого алгоритма.
Efficient Mining of Top-K Sequential Patterns
вводить
Последовательный анализ шаблонов (sequential pattern mining) — это широко изучаемая проблема интеллектуального анализа данных, которая очень помогает при анализе сетевых кликов, выполнении программ, медицинских данных, биологических данных и т. д. Критерием таких алгоритмов является порог поддержки (support threshold), задав минимальный порог (minsup), ищите тех, чья поддержка (support) больше указанного порога для подпоследовательностей, которые считаются интересными. Но проблема в том, что в большинстве случаев соответствующий порог получить не так просто, и для получения удовлетворительного результата требуется повторное тестирование. Поэтому, интегрируя идею top-k, оставляя в стороне проблему установки порога и выбора наилучшей части в качестве желаемого результата, эта идея в определенной степени снижает затраты памяти и времени алгоритма, а также делает людей более привлекательный, простой для понимания. Алгоритм, представленный в этой статьеTKSоснован наSPAMАлгоритмы улучшены благодаря новым структурам данныхPMAP (Precedence Map)уменьшатьплатитьоперации и, конечно же, некоторые стратегии повышения порога и стратегии обрезки
Решать проблему
В соответствии с другими алгоритмами майнинга полезных ископаемых, цель состоит в том, чтобы найтиk(в порядке убывания поддержки) паттерны иminsupобычно первыйkПоддержка шаблона — это значение, которое постоянно меняется в процессе майнинга.
Стратегия
Повышение порога
похожий наkHMCОбычная стратегия порогового продвижения в алгоритме, каждый раз, когда получается кандидат, удовлетворяющий пороговому условию (не очень частые шаблоны), кандидат записывается и его поддержка сохраняется.Когда количество коллекций больше, чемkкогда первыйkБольшая поддержка используется в качестве текущего порога, а затем используется в следующем процессе майнинга.
Стратегия масштабирования
Общие расширения интеллектуального анализа последовательностей:s-extensionиi-extension,существуетэпизодическая добыча полезных ископаемыхОн уже был представлен в деталях и не будет здесь подробно останавливаться.Алгоритм ТКСПредставлена идея, которая максимально расширяет поддержку/последовательность (Локальная оптимальная идея). Алгоритм использует переменную для отслеживания того, какие элементы/последовательности в настоящее время глубоко расширяются, всегда сначала расширяя шаблоны с наивысшей поддержкой.
Стратегия обрезки
Вверху слеваАлгоритм спамакаждого предоставленного товараbit vector, по сути, рассматривайте набор данных какдлинная последовательность, когда элемент появляется в наборе элементов, ему присваивается значение 1, в противном случае он равен 0, поэтому можно задать естественный вопрос: если набор данных велик, сколько времени потребуется, чтобы получить этиbit vectors? Во-вторых, просто поbit vectorsПересечение для расчета поддержки более длинных последовательностей позволяет получить последовательности, которых нет в наборе данных, поэтому правая часть приведенного выше рисункаАлгоритм ТКСкаждого предоставленного товараСтруктура карты. Сканируя набор данных, запишите масштабируемый элемент каждого элемента, частоту расширенных условий, а также расширение S-расширения или I-расширения), а алгоритм будет строить точки времени, чтобы уменьшить масштаб. Положите его после удаления Низкое время частоты,Хотя для этого требуется второе сканирование набора данных. Принцип согласуется с Aprioir: элементы низшего порядка не могут формировать наборы элементов высокого порядка благодаря этому вновь созданному набору элементов.PMAP, легко узнать, какие из них не могут создавать высокочастотные наборы элементов высокого порядка, а затем избегать использованияbit vectorвыполнить операцию пересечения
Ps. Оптимизация также упоминается в статье.bit vectorМетод эффективности, вы можете обратиться к следующему процессу реализации кода
/**
* Set a bit to 1 in this bitmap
* @param sid the sid corresponding to that bit
* @param tid the tid corresponding to that bit
* @param sequencesSize the list of sequence length to know how many bits are allocated to each sequence
*/
public void registerBit(int sid, int tid, List<Integer> sequencesSize) {
// calculate the position of the bit that we need to set to 1
int pos = sequencesSize.get(sid) + tid;
// set the bit to 1
bitmap.set(pos, true);
// Update the count of bit set to 1
if(sid != lastSID){
support++;
sidsum += sid;
}
if(firstItemsetID == -1 || tid < firstItemsetID){
firstItemsetID = tid;
}
// remember the last SID with a bit set to 1
lastSID = sid;
}
алгоритм
TKS main procedure
Output procedure
Search procedure
Суммировать
По окончательным экспериментальным данным,Алгоритм ТКСПревосходствоkВ случае большого значения правильный результат все же можно получить за короткое время. Однако я лично считаю, что битовый вектор не обязательно должен записывать вхождение всей длинной последовательности.Каждая последовательность может быть пронумерована.Нужно только использовать карту для записи, в каких идентификаторах появляется каждый элемент, что может уменьшить расчет в определенной степени Рабочая нагрузка; я лично считаю, что наиболее достойным упоминания является проведение как можно более глубокого исследования шаблонов с высокой поддержкой, потому что это алгоритм top-k, его можно генерировать более высокая поддержка в случае высокой поддержки (хотя вероятность становится все ниже и ниже), но он также может заранее сократить другие наборы элементов с низкой поддержкой, чтобы избежать избыточной рабочей нагрузки.