Урок 9. Обнаружение логических закономерностей в данных Рассмотрим рис. 9. 1. На нем схематично изображены лица людей. Эти лица по каким то причинам, может быть важным, разделены на два класса. Ставится задача найти закономерности проведенного разделения.
Рис. 9. 1. Изображения лиц людей
Попробуйте визуально определить, чем лица разных классов отличаются друг от друга и что объединяет лица одного класса. Сразу заметим — решение существует. Но ваш визуальный анализ скорее всего не даст ответа на поставленный вопрос. Обычный человеческий разум не в состоянии решить даже такую, на первый взгляд простую задачу обнаружения скрытых закономерностей. Здесь необходимо применение компьютерных методов анализа данных.
Можно ли решить задачу обнаружения знаний с помощью классических многомерных методов? Попытаемся решить поставленную задачу с помощью одного из классических многомерных методов — дискриминантного анализа, содержащегося во всех статистическоих пакетах. Мы будем здесь использовать пакет STATGRAPHICS Plus for Windows.
Прежде всего, выделим признаки, характеризующие изображенные лица. Это следующие характеристики:
x1 (голова) – круглая – 1, овальная – 0;
x2 (уши) – оттопыренные – 1, прижатые – 0;
x3 (нос) – круглый – 1, длинный – 0;
x4 (глаза) – круглые – 1, узкие – 0;
x5 (лоб) – с морщинами – 1, без морщин – 0;
x6 (складка) – носогубная складка есть – 1, носогубной складки нет – 0;
x7 (губы) – толстые – 1, тонкие – 0;
x8 (волосы) – есть – 1, нет – 0;
x9 (усы) – есть – 1, нет – 0;
x10 (борода) – есть – 1, нет – 0;
x11 (очки) – есть – 1, нет – 0;
x12 (родинка) – родинка на щеке есть – 1, родинки на щеке нет – 0;
x13 (бабочка) – есть – 1, нет – 0;
x14 (брови) – подняты кверху – 1, опущены книзу – 0;
x15 (серьга) – есть – 1, нет – 0;
x16 (трубка) – курительная трубка есть – 1, нет – 0.
Исходная матрица данных, соответствующая изображенным лицам, представлена в табл. 9. 1. Строки соответствуют объектам (N = 16), столбцы – выделенным бинарным признакам (p = 16). Объекты с номерами 1—8 относятся к классу , а с номерами 9—16 — к классу .
Таблица 9. 1. Исходная матрица данных
№ п/п
| Голова
| Уши
| Нос
| Глаза
| Лоб
| Складка
| Губы
| Волосы
| Усы
| Борода
| Очки
| Родинка
| Бабочка
| Брови
| Серьга
| Трубка
| Class
|
| x1
| x2
| x3
| x4
| x5
| x6
| x7
| x8
| x9
| x10
| x11
| x12
| x13
| x14
| x15
| x16
|
| 1
| 0
| 1
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 1
| 0
| 1
| 1
| 0
| 1
| 1
| 2
| 1
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 0
| 1
| 0
| 1
| 3
| 0
| 0
| 0
| 1
| 1
| 1
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 0
| 1
| 1
| 4
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 1
| 1
| 5
| 1
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 1
| 0
| 1
| 6
| 0
| 0
| 1
| 0
| 1
| 1
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 1
| 1
| 7
| 1
| 1
| 0
| 1
| 0
| 0
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 1
| 1
| 1
| 8
| 0
| 0
| 1
| 1
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 9
| 0
| 0
| 1
| 1
| 0
| 1
| 0
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 1
| 2
| 10
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 2
| 11
| 1
| 1
| 1
| 0
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 1
| 0
| 1
| 0
| 0
| 2
| 12
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 1
| 1
| 0
| 1
| 1
| 0
| 2
| 13
| 1
| 1
| 0
| 1
| 1
| 0
| 1
| 1
| 1
| 0
| 0
| 0
| 1
| 0
| 0
| 1
| 2
| 14
| 0
| 1
| 1
| 1
| 0
| 0
| 1
| 0
| 1
| 0
| 1
| 0
| 0
| 1
| 1
| 1
| 2
| 15
| 0
| 1
| 0
| 1
| 0
| 1
| 1
| 1
| 0
| 1
| 0
| 0
| 1
| 1
| 0
| 1
| 2
| 16
| 0
| 1
| 1
| 1
| 0
| 0
| 1
| 1
| 0
| 0
| 1
| 0
| 1
| 0
| 1
| 1
| 2
| Вводим данные табл. 9. 1 в электронную таблицу STATGRAPHICS. Сохраняем их в файле под именем face.
Для проведения дискриминантного анализа выбираем Special | Multivariate Methods | Discriminant Analysis. Получаем окно диалога дискриминантного анализа и вводим в поле Classification Factor (классифицирующий фактор) переменную с именем Class, в поле Data (данные) переменные x1 — x16 (рис. 9. 2).
Рис. 9. 2. Окно диалога дискриминантного анализа
Нажимаем OK. На экран выдается сводка дискриминантного анализа, в которой сообщается, что анализ не может быть проведен, так как переменные являются линейно зависимыми.
Для преодоления возникшего препятствия щелкнем правой кнопкой мыши и вызовем окно диалога для заданий опций дискриминантного анализа (рис. 9. 3). В поле Fit выберем Backward Selection (метод уменьшения группы признаков).
Рис. 9. 3. Окно диалога для задания опций дискриминантного анализа
Нажимаем OK. Получаем сообщение, что для продолжения анализа переменная x9 должна быть удалена. Вызываем окно ввода данных (левая верхняя кнопка) и исключаем эту переменную. Получаем новое сообщение о необходимости удалить из анализа x14. Повторяем операцию по исключению переменной. Затем появляются аналогичные сообщения относительно переменных x15 и x16. Исключаем эти переменные. Получаем сводку дискриминантного анализа, проведенного в пространстве признаков x1, x2, x3, x4, x5, x6, x7, x8, x10, x11, x12 и x13 с применением метода последовательного уменьшения группы признаков.
Нажимаем кнопку табличных опций (вторая слева вверху) и устанавливаем флажки Discriminant Functions (дискриминантные функции) и Classification Table (таблица классификаций). Нажимаем OK. Получаем таблицы, показанные на рис. 9. 4 и рис. 9. 5.
Рис. 9. 4. Коэффициенты дискриминантных функций
Рис. 9. 5. Таблица классификаций
Из таблиц следует, что построена дискриминантная функция, обеспечивающая 100 % правильной классификации исследуемых объектов. Это следующая функция
F = – 40,1 – 11,0x1 + 23,7x2 + 6,8x4 – 7,0x5 – 6,3x6 + + 24,2x7 – 15,0x8 – 6,4 x11 + 34,3x12 + 14,1x13.
На рис. 9. 6 приведены гистограммы распределения значений построенной дискриминантной функции в двух сравниваемых группах объектов.
Рис. 9. 6. Гистограммы распределения значений дискриминантной функции
Казалось бы, мы достигли желаемой цели — правило классификации построено. Но вряд ли такое правило способно удовлетворить разработчика интеллектуальной системы. Оно формально и не дает нового знания. Глядя на это правило, мы можем лишь перечислить признаки, вошедшие в дискриминантную функцию, и сказать, что данные признаки необходимы для разделения двух классов объектов.
Попытка дать интерпретацию весовым коэффициентам в дискриминантной функции вообще приводит к нелепым результатам. Непонятно, например, почему вес ушей (признак x2) более чем в три раза превышает вес носа (признак x3) и т. д.
Отсюда возникает недоверие к построенной дискриминантной функции и растет подозрение, что используемый математический аппарат многомерного анализа «подгоняет» результат.
Так, собственно говоря, и есть. Классическая теория многомерного анализа, являющаяся разделом математической статистики, никогда не претендовала на решение задач, подобных рассмотренной. Но именно такие и гораздо более сложные задачи часто ставит перед нами жизнь.
Основное требование к математическому аппарату обнаружения закономерностей в данных (кроме, конечно, требования эффективности) заключается в интерпретируемости результатов. Правила, выражающие найденные закономерности, должны формулироваться на простом и понятном человеку языке логических высказываний. Например, ЕСЛИ {(событие 1) и (событие 2) и … и (событие N)} ТО … Иными словами, это должны быть логические правила.
Так, классификации лиц в рассмотренном примере может быть произведена с помощью четырех логических правил:
1. ЕСЛИ {(голова овальная) и (есть носогубная складка) и (есть очки) и (есть трубка)} ТО (Класс 1);
2. ЕСЛИ {(глаза круглые) и (лоб без морщин) и (есть борода) и (есть серьга)} ТО (Класс 1);
3. ЕСЛИ {(нос круглый) и (лысый) и (есть усы) и (брови подняты кверху)} ТО (Класс 2);
4. ЕСЛИ {(оттопыренные уши) и (толстые губы) и (нет родинки на щеке) и (есть бабочка)} ТО (Класс 2).
Математическая запись этих правил выглядит следующим образом:
Здесь значки — коньюнкция (и), — дизъюнкция (или), — импликация (если, то).
Под правило 1 подпадают первое, третье, четвертое и шестое лицо из первого класса; под правило 2 — второе, пятое, седьмое и восьмое лицо из первого класса; под правило 3 —девятое, одиннадцатое, двенадцатое и четырнадцатое лицо из второго класса; под правило 4 — десятое, тринадцатое, пятнадцатое и шестнадцатое лицо из второго класса.
В этом и следующем разделах вы узнаете, как находить в данных логические закономерности и на их основе строить логические правила.
|