КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Алгоритм aprioriРассмотрим набор клиентов, включающий заданные характеристики. Выразим этот набор с помощью переменных. Обозначим множество характеристик за I – {A, B, C, D..P} Алгоритм Apriori определяет часто встречающиеся наборы за несколько этапов. 1. формирование кандидатов (candidate generation); 2. подсчет поддержки кандидатов (candidate counting). Рассмотрим i-ый этап. На шаге формирования кандидатов алгоритм создает множество кандидатов из i-элементных наборов, Алгоритм вычисляет их поддержку во время шага подсчёта поддержки кандидатов. 1. L1 = {часто встречающиеся 1-элементные наборы} 2. для (k=2; Lk-1 <> ; k++) { 3. Ck = Apriorigen(Lk-1) // генерация кандидатов 4. для всех клиентов t T { 5. Ct = subset(Ck, t) // удаление избыточных правил 6. для всех кандидатов c Ct 7. c.count ++ 8. } 9. Lk = { c Ck | c.count >= minsupport} // отбор кандидатов 10. } 11. Результат Обозначения, используемые в алгоритме: · Lk - множество k-элементных наборов, чья поддержка не меньше заданной. Каждый член множества имеет набор упорядоченных (ij < ip если j < p) элементов F и значение поддержки набора SuppF> Suppmin: Lk = {(F1,Supp1),(F2,Supp2),...,(Fq,Suppq)}, · Ck - множество кандидатов k-элементных наборов потенциально частых. Каждый член множества имеет набор упорядоченных (ij < ip если j < p) элементов F и значение поддержки набора Supp. Опишем данный алгоритм по шагам. Шаг 5. Для каждого клиента T из множества D выбрать кандидатов Ct из множества Ck, присутствующих в наборе характеристик клиента T. Для каждого набора из построенного множества Ck удалить набор, если хотя бы одно из его (k-1) подмножеств не является часто встречающимся т.е. отсутствует во множестве Lk− 1. Это можно записать в виде следующего псевдокода: Для всех наборов выполнить для всех (k-1)-поднаборов s из c выполнить если ( ), то удалить его из Ck Шаг 6. Для каждого кандидата из Ck увеличить значение поддержки на единицу.
Таблица 4.1. Схематическое изображение работы алгоритма apriori
|