Алгоритм HUSRM

сбор данных

Написано впереди: Прошло много времени с момента предыдущего изучения алгоритма USpan. На этот раз я изучу анализ последовательности. Эта статья решает связь вывода правила ассоциации и продвигает предыдущую работу по шаблонам последовательности интеллектуального анализа на шаг вперед; стратегия, используемая алгоритмом HUSRM Есть еще, нужно потратить некоторые усилия на исследование

Efficient Mining of High-Utility Sequential Rules

Образец

sequence dataset

Dataset.png

utility table

Utility_table.png

определение

Основное определение может относиться кUSpanПримечание к этому алгоритму, здесь только некоторые дополнения

  • Предполагается, что последовательное правило существует в двух наборах элементов.XXиYYимеютX,YIX, Y \subseteq I,XY=X \cap Y = \emptyиX,YX, Y \not= \empty, правило последовательностиXYX \rightarrow Yсвязанные средствав той же последовательности, наборXXнабор элементов после появленияYYтакже происходит, размер правила последовательностиX×Y\mid X \mid \times \mid Y \mid, использовать одновременноseq(r)={ssеSDB∧.rs}seq(r)=\lbrace s \mid s \in SDB \land r \subseteq s \rbraceУказывает правило включенияrrвсе последовательности ,ant(r)={ssеSDBXs}ant(r)=\lbrace s \mid s \in SDB \land X \subseteq s \rbraceУказывает правило включенияrrВсе последовательности фронта
  • Поддержка правила (support of rule) правила ассоциацииrrПоддержка в наборе данных также выражается в виде соотношения, а расчетное выражение имеет видsupSDB(r)=seq(r)SDBsup_{SDB}(r)=\frac{\mid seq(r) \mid}{\mid SDB \mid}
  • Доверие к правилу (достоверность правила) правило ассоциацииrrДостоверность набора данных также выражается в виде отношения, а расчетное выражение имеет видconfSDB=seq(r)ant(r)conf_{SDB} = \frac{\mid seq(r) \mid}{\mid ant(r) \mid}
  • Полезность последовательного правила, когда правилоr:XYr: X \rightarrow Yв последовательностиscs_cКогда существует в , его значение полезности рассчитывается какu(r,sc)=(iеXY)(rsc)u(i,sc)u(r, s_c) = \sum_{(i \in X \cup Y) \land (r \subseteq s_c)}u(i, s_c),еслиrscr \not\subseteq s_cчас,u(r,sc)=0u(r, s_c) = 0; аналогичное рассуждение может быть получено, общая полезность правила во всем наборе данных равнаuSDB(r)=sеSDBu(r,s)u_{SDB}(r) = \sum_{s \in SDB}u(r, s)
  • высокоэффективный последовательный анализ правил с учетом трех пороговых значенийminsupminsup,minconfminconfиminutilminutil, когда значение, соответствующее правилу, одновременно превышает пороговое значение, мы рассматриваем правило как правило последовательности с высокой полезностью (то есть ограничений больше)

Одна вещь, которую следует отметить в отношении правил майнинга, — это метод расширения, который также объясняется в тексте размером1×11 \times 1Правила постепенно расширяются влево и вправо, чтобы получить более длинные интересные правила, но следует отметить, что порядок расширения влево и вправо и рекурсивный метод сильно повлияют на окончательные результаты майнинга; например, правилаrr:{a}{c}\lbrace a \rbrace \rightarrow \lbrace c \rbraceВы можете либо развернуть влево, а затем развернуть вправо, либо наоборот, чтобы получить новые правилаr'r^\prime:{a,b}{c,d}\lbrace a, b \rbrace \rightarrow \lbrace c, d \rbrace, есть возможность сгенерировать два новых правила, другой случай{b}{e}\lbrace b \rbrace \rightarrow \lbrace e \rbraceи{c}{e}\lbrace c \rbrace \rightarrow \lbrace e \rbraceможно расширить слеваccиbbполучить такие же новые правила{b,c}{e}\lbrace b, c \rbrace \rightarrow \lbrace e \rbrace, решение описано в определении ниже

  • расширяемость

    • левое расширение для правилXYX \rightarrow Yи пунктiеIi \in I, когда дляjеX\forall j \in Xимеютilexji \succ_{lex} jиiYi \not\in Y, который продолжается влево доX{i}YX \cup \lbrace i \rbrace \rightarrow Y

    • То же верно и для правого расширения, когда дляjеY\forall j \in Yимеютilexji \succ_{lex} jиiXi \not\in X, право которого распространяется наXY{i}X \rightarrow Y \cup \lbrace i \rbrace

    • Следует добавить, что,lex\succ_{lex}Это относится к лексикографическому расположению между элементами, которое используется для решения проблемы, заключающейся в том, что разные правила генерируют одни и те же новые правила из-за расширения; поскольку элемент может быть расширен как влево, так и вправо, это обычно используется по умолчанию. сначала, затем правое расширение и левое расширение могут продолжаться в правом расширении, но только правое расширение может быть выполнено в левом расширении, чтобы решить проблему новых правил, когда одно и то же правило повторяется из-за разных порядков расширения.

  • Оцененная последовательностью полезность предмета имеет тот же эффект, что иTWU, расчетное выражениеSEU(i)SEU(i)=(scеSDB)({i}sc)SU(sc)\sum_{(s_c \in SDB) \land (\lbrace i \rbrace \subseteq s_c)}SU(s_c)SUSUдаscs_cОбщая полезность последовательности, такая же, какTU, что означает, что расчет ведется по всему набору данных, все включенияiiСумма значений полезности последовательности ; аналогично для правил, состоящих из разных терминовrrТаким же образом рассчитывается предполагаемая полезность ,SEU(r)SEU(r)=scеseq(r)SU(sc)\sum_{s_c \in seq(r)}SU(s_c), роль этих оценок состоит в том, чтобы помочь определить, является ли текущий элемент/правило потенциально интересным, если они не меньше множестваminutilminutil, то мы думаем, что эти пункты/правила могут быть расширены и, вероятно, будут эффективными.

  • Запись полезной таблицы (utility-table) Это новая структура хранения, разработанная отдельно для записи всех задействованных правил.rrИнформация о полезности использованияut(r)ut(r)Представление (структура служебного списка), в нем много фрагментов данных, формат(sid,iutil,lutil,rutil,lrutil)(sid, iutil, lutil, rutil, lrutil),в:

    • sid: Указывает, что он содержитrrсерийный номер (Ssidеseq(r)S_{sid} \in seq(r))
    • iutil:Выражатьrrзначение полезности в текущей последовательности
    • lutil: Указывает те элементы в текущей последовательности, которые можно использовать дляrrпровестиЛевыйсумма значений полезности развернутых терминов
    • rutil: Указывает те элементы в текущей последовательности, которые можно использовать дляrrпровестиправильносумма значений полезности развернутых терминов
    • lrutil: Указывает те элементы в текущей последовательности, которые можно использовать дляrrпровестиоСумма расширенных значений полезности

    Значения полезности последних трех расширений записи действительно могут использоваться как часть оценочной стоимости, что удобно дляrrПровести обрезку, в процессе использования необходимо уточнить, какой способ расширения в данный момент осуществляется, и усвоить элементы расширения.iiи расширенные предметы/наборы предметовjjОтношения между ними легко понять; далее мы продолжаем знакомить вас с тем, как рассчитать правила расширения с помощью таблицы полезности, учитывая расширенные правила.r'r^\prime, правилоrr, расширениеilexjеsci \succ_{lex} j \in s_cа такжеut(r)ut(r)иut(r')ut(r^\prime):

    • sid: Это должно быть согласовано, потому что правило расширения должно быть в той же последовательности, что и исходное правило.
    • iutil':iutil'(r')iutil^\prime(r^\prime)=iutil(r)iutil(r)+u({i},ssid)u(\lbrace i \rbrace, s_{sid})
    • lutil':lutil'(r')lutil^\prime(r^\prime)=lutil(r)lutil(r)-u(j,ssid)u(j, s_{sid})-u(i,ssid)u(i, s_{sid}), какой срокjjне может быть правиломr'r^\primeизЛевыйрасширения, но правилаrrизЛевыйэлемент расширения, параллельный элементiiесли бы это было правиломrrизЛевыйрасширения, то также вычтите его значение полезности, в противном случае нет необходимости вычитать терминiiта часть стоимости
    • rutil':rutil'(r')rutil^\prime(r^\prime)=rutil(r)rutil(r)-u(j,ssid)u(j, s_{sid})-u(i,ssid)u(i, s_{sid}), ограничения такие же, как и выше, просто поставьтеЛевыйрасширяться доправильнорасширять
    • lrutil':lrutil'(r')lrutil^\prime(r^\prime)=lrutil(r)lrutil(r)-u(j,ssid)u(j, s_{sid})-u(i,ssid)u(i, s_{sid}), какой срокjjне может быть правиломr'r^\primeизорасширения, но правилаrrизорасширение, параллельный элементiiесли бы это было правиломrrизорасширения, то также вычтите его значение полезности, в противном случае нет необходимости вычитать терминiiта часть стоимости

    Необходимость расширенного набора после вычитания предметовiiиjjПолезная ценностьправильноснова расширитьЛевыйрасширять

  • Достоверность правила расширения с использованием битового вектораb(i)b(i)представлять предметiiв какой последовательности они появились, используйте11значит появиться,00Указывает на отсутствие; затем побитовый берется битовый вектор каждого элемента в наборе элементовиоперация, в конце концов11Количество - это наборant(X)\mid ant(X) \mid, правилоrrМетод расчета тот же, а поддержку можно получить интуитивно через таблицу полезностей, напримерbv(a)bv(a)=1111 \land bv(b)bv(b)=1011 \Rightarrow bv(ab)bv(ab)=1011

    Ps. Хотя документ выглядит так, как будто он использует длинный массив для хранения этих 0 и 1, в коде он фактически использует хэш-карту для хранения соответствующих пар ключ-значение и напрямую вычисляет битовый вектор нового правила, сравнивая ключи

Стратегия

Поскольку стратегия обрезки включает в себя два хорошо изученных поля майнинга (частую и полезность), обрезка осуществляется через их соответствующую антимонотонность, пока одно условие не выполняется, мы удаляем узел и не проводим следующее расширение. Работа,HUI-MinerЭта заметка содержит подробное введение

utility-table

фактическиutility-listИнформация, хранящаяся в структуре, очень интуитивно понятна, поскольку вся информация, относящаяся к элементу/набору элементов, хранится в этом списке, нам нужно только объединить эти известные условия, чтобы получить ключевую информацию.

  • потому что каждое правилоrrСоставьте список отдельно, который записывает все вхождения правила, так что, естественно, естьu(r)u(r)=iеsidiutil(ri)\sum_{i \in sid}iutil(r_i)
  • Аналогично, для правилrrФормула для расчета степени поддержки:supSDB(r)sup_{SDB}(r)=ut(r)SDB\frac{\mid ut(r) \mid}{\mid SDB \mid}
  • iutil(r)iutil(r)+rutil(r)rutil(r)+lutil(r)lutil(r)+lrutil(r)SEU(r)lrutil(r) \le SEU(r), поэтому таблица полезности на самом деле предоставляет более компактное граничное значение (оценочное значение, которое можно получить, уточнив формулу)
  • Если правилоrrпосле одного разаоРасширение получает новые правилаtt,имеютu(t)iutil(r)u(t) \le iutil(r)+rutil(r)rutil(r)+lutil(r)lutil(r)+lrutil(r)lrutil(r)(Потому что с каждым расширением существует меньше последовательностей, содержащих это новое правило)
  • если правилоrrпосле одного разаЛевыйРасширение получает новые правилаtt,имеютu(t)iutil(r)u(t) \le iutil(r)+lutil(r)lutil(r)+lrutil(r)lrutil(r)

compact utility-table

В ходе эксперимента авторы наблюдали две закономерности:

  • существуетЛевыйВо время расширения:

    • rutilrutilОн не всегда используется, поэтому вам не нужно вычислять значение
    • lutillutilиlrutillrutilСумма всегда используется, поэтому их сумму можно использовать вместо двух значений.

    Очевидно, что это сделает таблицу меньше и займет меньше времени на построение.

  • В любой последовательности, в правилепервый разМесто появленияпослепредметы можно использовать какправильнорасширяться, соответственно, вДоможно использовать какЛевыйрасширять

алгоритм

HUSRM algorithm

Main_procedure.png

Left Expension

Left_expension_procedure.png

Right Expension

Right_expension_procedure.png

Суммировать

Вышеизложенное представляет собой полное содержание алгоритма HUSRM. Он основан на идее списка полезностей и строит правила более высокого уровня непосредственно через список без обхода набора данных. Это также прорывная работа в области высокоуровневых вычислений. интеллектуальный анализ правил последовательности утилит. Лично мне очень интересно, что автор разбил исходный алгоритм на четыре оптимизированные версии разной степени для экспериментального сравнения. Самая большая проблема этого типа алгоритма заключается в том, что время выполнения слишком велико.Из-за сложного процесса построения экспериментальные результаты многих алгоритмов не очень хороши, и необходимы дополнительные исследования, чтобы определить, существует ли более эффективная структура хранения. для упрощения процесса строительства или нового строительства идеи.