Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по СППР / Лекция 6-7.doc
Скачиваний:
190
Добавлен:
23.03.2016
Размер:
2.2 Mб
Скачать

4.2. Алгоритм покрытия

Рассмотренные ранее методы построения деревьев работают сверху вниз, разбивая на каждом шаге всю обучающую выборку на подмножества. Целью такого разбиения является получение подмножеств, соответствующих всем классам.

Альтернативой подходу "разделяй и властвуй" является подход, который за­ключается в построении деревьев решений для каждого класса по отдельности. Он называется алгоритмом покрытия, т. к. на каждом этапе генерируется проверка узла дерева, который покрывает несколько объектов обучающей выборки.

Рис. 5.4. Геометрическая интерпретация идеи алгоритма покрытия

Идею алгоритма можно представить графически (рис. 5.4). При наличии у объектов только двух переменных их можно представить в виде точек двумерного пространства. Объекты, относящиеся к разным классам, отмечаются знаками "+" и "-". Как видно из рисунка, при разбиении множества на подмножества строится дерево, покрывающее только объекты выбранного класса

Для построения правил с помощью данного алгоритма в обучающей выборке должны присутствовать всевозможные комбинации значений независимых переменных. Например, данные, позволяющие рекомендовать тип контакт­ных линз, представлены в табл. 5.3.

Таблица 5.3

Возраст

Предписание

Астигматизм

Степень износа

Рекомендации

Юный

Близорукость

Нет

Пониженный

Нет

Юный

Близорукость

Нет

Нормальный

Мягкие

Юный

Близорукость

Да

Пониженный

Нет

Юный

Близорукость

Да

Нормальный

Жесткие

Юный

Дальнозоркость

Нет

Пониженный

Нет

Юный

Дальнозоркость

Нет

Нормальный

Мягкие

Юный

Дальнозоркость

Да

Пониженный

Нет

Юный

Дальнозоркость

Да

Нормальный

Жесткие

Пожилой

Близорукость

Нет

Пониженный

Нет

Пожилой

Близорукость

Нет

Нормальный

Мягкие

Пожилой

Близорукость

Да

Пониженный

Нет

Пожилой

Близорукость

Да

Нормальный

Жесткие

Пожилой

Дальнозоркость

Нет

Пониженный

Нет

Пожилой

Дальнозоркость

Нет

Нормальный Мягкий

Пожилой

Дальнозоркость

Да

Пониженный Нет

Пожилой

Дальнозоркость

Да

Нормальный Нет

Старческий

Близорукость

Нет

Пониженный Нет

Старческий

Близорукость

Нет

Нормальный Нет

Старческий

Близорукость

Да

Пониженный Жесткий

Старческий

Близорукость

Да

Нормальный Нет

Старческий

Дальнозоркость

Нет

Пониженный Мягкий

Старческий

Дальнозоркость

Нет

Нормальный Нет

Старческий

Дальнозоркость

Да

Пониженный Нет

й

Старческий

Дальнозоркость

Да

Нормальный НЕт


На каждом шаге алгоритма выбирается значение переменной, которое разделяет все множество на два подмножества. Разделение должно выполняться так, чтобы все объекты класса, для которого строится дерево принадлежали одному подмножеству. Такое разбиение производится до тех пор, пока не будет построено подмножество, содержащее только объекты одного класса.

Для выбора независимой переменной и ее значения, которое разделяет множество, выполняются следующие действия:

1. Из построенного на предыдущем этапе подмножества (для первого этапа это вся обучающая выборка), включающего объекты, относящиеся к выбранному классу для каждой независимой переменно , выбираются все значения, встречающиеся в этом подмножестве.

  1. Для каждого значения каждой переменной подсчитывается количество объектов, удовлетворяющих этому условию и относящиеся к выбранному классу.

  2. Выбираются условия, покрывающие наибольшее количество объектов выбранного класса.

4. Выбранное условие является условием разбиения подмножества на два новых.

После построения дерева для одного класса таким же об разом строятся деревья других классов.

Приведем пример для данных, представленных в табл. 5.3. Предположим, необходимо построить правило для определения условий, при которых необходимо рекомендовать жесткие линзы:

если (?) то рекомендация = жесткие

Выполним оценку каждой независимой переменной и всех их возможных значений:

возраст = юный — 2/8;

возраст = пожилой — 1/8;

возраст = старческий — 1/8;

предписание = близорукость — 3/12;

предписание = дальнозоркость — 1/12;

астигматизм = нет — 0/12;

астигматизм = да — 4/12;

степень износа = низкая — 0/12;

степень износа = нормальная — 4/12.

Выбираем переменную и значение с максимальной оценкой астигматизм = да. Таким образом, получаем уточненное правило следующего вида:

если (астигматизм = да и ?) то рекомендация = жесткие

Данное правило образует подмножество, в которое входят все объекты, относящиеся к классу жесткие. Кроме них в него входят и другие объекты, следовательно, правило должно уточняться (табл. 5.4).

Таблица 5.4

Возраст

Предписание

Астигматизм

Степень износа

Рекомендации

Юный

Близорукость

Да

Пониженный

Нет

Юный

Близорукость

Да

Нормальный

Жесткие

Юный

Дальнозоркость

Да

Пониженный

Нет

Юный

Дальнозоркость

Да

Нормальный

Жесткие

Пожилой

Близорукость

Да

Пониженный

Нет

Пожилой

Близорукость

Да

Нормальный

Жесткие

Пожилой

Дальнозоркость

Да

Пониженный

Нет

Пожилой

Дальнозоркость

Да

Нормальный

Нет

Старческий

Близорукость

Да

Пониженный

Нет

Старческий

Близорукость

Да

Нормальный

Жесткие

Старческий

Дальнозоркость

Да

Пониженный

Нет

Старческий

Дальнозоркость

Да

Нормальный

Нет

Выполним повторную оценку для оставшихся независимых переменных и их значений, но уже на новом множестве:

возраст = юный — 2/4

возраст = пожилой — ¼

возраст = старческий — ¼

предписание = близорукость —3/6

предписание = дальнозоркость — 1/6

степень износа = низкая —0/6

степень износа = нормальная —4/6

После уточнения получим правило и множество, представленное в табл.5.5:

если (астигматизм = да и степень износа = нормальная)

то рекомендация = жесткие

Возраст

Предписание

Астигматизм

Степень износа

|

Рекоменедации

Юный

Близорукость

Да

Нормальный

Жесткие

Юный

Дальнозоркость

Да

Нормальный

Жесткие

Пожилой

Близорукость

Да

Нормальный

Жесткие

Пожилой

Дальнозоркость

Да

Нормальный

Нет

Старческий

Близорукость

Да

Нормальный

Жесткие

Старческий

Дальнозоркость

Да

Нормальный

Нет

Так как в полученном множестве все еще остаются объекты не относящиеся к классу жесткий, то необходимо выполнить уточнение:

возраст = юный - 2/2

возраст = пожилой -1/2

возраст = старческий -1/2

предписание = близорукость -3/3

предписание = дальнозоркость - 1/3

Очевидно, что уточненное правило будет иметь следующий вид:

если (астигматизм = да и степень износа = нормальная и предписание = близорукость) то рекомендация - жесткие

Однако в полученном подмножестве отсутствует один из объектов, относящихся к классу жесткие, поэтому необходимо решить, какое из последних двух правил более приемлемо для аналитика.

Соседние файлы в папке Лекции по СППР