Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МГ_Кузнецов_ABCN2_final.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
3 Mб
Скачать

2.5.4 Алгоритм извлечения продукционных правил

В упрощенном варианте, алгоритм ABCN2 состоит из следующих процедур: извлечения правил, покрытия примеров. Далее, приведено описание переменных, которые используются в алгоритме и сам алгоритм по шагам с необходимыми комментариями.

Переменные:

  • T – класс, к которому относится пример обучения.

  • ES – множество примеров обучения.

  • AES – выборка примеров для которых заданы аргументы.

  • – первый аргументированный пример из множества AES.

  • RULE_LIST – множество правил.

  • BEST_RULE – данная переменная содержит оптимальное правило, полученное из аргументированного примера.

  • RULE_LIST – множество всех продукционных правил полученных алгоритмом.

  • STAR – элементами множества являются все положительные аргументы представленные как условия из примера .

  • BEST_CPX – данная переменная хранит лучшее условие, на основании которого будет сформировано правило.

  • SELECTORS – множество всех возможных селекторов примера .

  • ARG_REASONS – все положительные аргументы примера .

  • NEWSTAR – множество условий {x ^y||x  STAR, ySELECTORS}.

  • ABNEWSTAR – подмножество NEWSTAR, где условия содержат селекторы из ARG_REASONS.

  • ABSTARN лучших условий из ABNEWSTAR.

Алгоритм извлечения правил:

0. Начало.

  1. Инициализация переменных.

  2. Запись в AES всех примеров с аргументами из множества ES.

  3. Поиск пороговых значений (см. раздел 2.4.4) для всех атрибутов, для которых они не заданы.

  4. Оценка аргументов каждого примера из множества AES и сортировка этих примеров по лучшему аргументу.

  5. Присвоение первого аргументированного примера из множества AES.

    1. Запись в STAR положительных аргументов из примера в виде условий.

    2. Оценка всех условий из STAR и присвоение переменной BEST_CPX условия с самым высоким значением оценочной функции.

    3. Формирование SELECTORS и ARG_REASONS из примера .

    4. Формирование NEWSTAR как множество условий в виде конъюнкции условий из STAR и селектора из SELECTORS.

    5. Удаление всех условий из NEWSTAR, которые содержат отрицательные аргументы из .

    6. Оценка всех условий из NEWSTAR , если найдено условие лучше чем BEST_CPX, то присвоение BEST_CPX этого условия, иначе – удалить условие из NEWSTAR.

    7. Сортировка условий из NEWSTAR. Формирование STAR как N лучших условий из NEWSTAR

    8. Формирование ABNEWSTAR как подмножество условий из NEWSTAR, содержащих селекторы из ARG_REASONS.

    9. Запись в ABSTAR N условий из ABNEWSTAR.

    10. Формирование STAR как объединение множества из STAR c множеством из ABSTAR.

    11. Если в STAR содержит условия – переход к шагу 5.4, иначе – переход к шагу 6.

  1. Присвоение переменой BEST_RULE правила, формируемое из условия BEST_CPX.

  2. Добавление BEST_RULE в список правил RULE_LIST.

  3. Удаление всех примеров из AES, которые покрываются правилом BEST_RULE.

  4. Если в AES остались аргументированные примеры – переход к шагу 5, иначе - переход к шагу 10.

  5. Удаление всех примеров из ES, покрываемых правилами из RULE_LIST.

  6. Конец.