Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
НЕЙРОСЕТИ_уч_Боровков.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
2.73 Mб
Скачать

Проведение классификации

Введение

Решение задач классификации - одна из наиболее важных областей при­менения нейронных сетей. В таких задачах входные данные представляют собой результаты измерений некоторых характеристик объекта. Цель со­стоит в том, чтобы определить, к какому из нескольких заданных классов принадлежит этот объект. Обычно классов бывает ровно два (или один, и наблюдение может либо принадлежать, либо не принадлежать ему). Зада­ча «исключающего или» - пример задачи классификации с двумя класса­ми. Наблюдение может принадлежать или не принадлежать классу Хоr.

В пакете ST Neural Networks можно работать с так называемыми номи­нальными переменными (или атрибутами), то есть с переменными, кото­рые могут принимать конечное число значений, представленных в виде строк текста. Простейший пример - переменная Пол = {Муж, Жен}, это номинальная переменная с двумя возможными значениями (состояния­ми). В задаче «исключающего или» выходная переменная как раз должна быть номинальной переменной с двумя состояниями: Xor = {False, True}.

В описываемой программе номинальными могут быть как входные, так и выходные переменные, и имеется много способов преобразования содер­жащейся в них нечисловой информации к виду, понятному нейронной сети, и, наоборот, способов интерпретировать числовой выход сети как номинальную переменную. Поддержка номинальных переменных - орга­ническая часть системы пре/пост-процессирования пакета ST Neural Networks.

Проиллюстрируем сказанное, видоизменив пример Хоr таким образом, чтобы выходом была номинальная переменная.

Задача Хоr с номинальной выходной переменной

Начнем с того, что заново определим набор данных. Используем команду Набор данных - Data Set... меню Файл-Создать - File-New и определим две входные и одну выходную переменную.

В открывшемся окне Редактор данных - Data Set Editor зададим имена переменных First, Second и Хоr (дважды щелкая на заголовках столбцов).

Чтобы сделать переменную Хоr номинальной, выделите ее (щелчком на заголовке столбца), затем нажмите правую кнопку мыши и выберите в появившемся контекстном меню пункт Определение - Definition.... Откроется диалоговое окно Определение переменной - Variable Definition,

в котором содержатся следующие сведения о переменной: ее имя в данный момент, число возможных номинальных значений (для числовых переменных - ноль) и сами номинальные значе­ния.

Нажмите верхнюю стрелку на кнопке микропрокрутки, расположенной справа от поля Значение - Value: у переменной появится два номинальных значения - v1 и v2 (номинальных значений должно быть не менее двух -единственное номинальное значение не имеет никакого смысла).

Поменяйте имя первого номинального значения с v1 на False (Ложь), за­тем нажмите верхнюю стрелку на кнопке микропрокрутки и поменяйте имя второю номинального значения с v2 на True (Истина).

Нажмите кнопку Закрыть - Close - номинальная переменная определена.

Теперь можно ввести данные наблюдений, чтобы набор данных выглядел как на этом рисунке. Вводить значения номинальной переменной можно разными способами: напрямую напечатать слова (True или False), ввести соответствующее порядковое

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

После того, как набор данных будет создан, создайте сеть с помощью ко­манды Сеть - Network... меню Файл-Создать - File-New. Нажмите кнопку Совет - Advise - программа ST Neural Networks автоматически выберет параметры пре/пост-процессирования и архитектуру сети. Задайте число скрытых элементов равным двум. Обучите сеть с помощью алгоритма обратного распространения.

Замечание. Функция преобразования (Convert) для выходной перемен­ной будет изменена с Минимакс - Minimax на Два значения - Two-State: программа ST Neural Networks автоматически определила, что это дву­значная номинальная выходная переменная, и соответствующим образом изменила режим пре-процессирования. Такой способ - обычный при ре­шении на нейронной сети задачи двузначной классификации (т.е. с двумя классами): двузначной переменной соответствует один выходной элемент, который будет выдавать значение 1 для одного из классов и 0 - для другого. Все промежуточные значения выражают ту или иную степень уверен­ности в том, что наблюдение принадлежит данному классу.

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

Установка доверительных уровней

Доверительные пределы для классификации устанавливаются в пакете SТ Neural Networks в окне Пре/пост-процессирование - Pre/Post Processing, которое открывается одноименной командой меню Правка - Edit. Другой способ доступа к этому окну - с помощью кнопки . В поле Принять -Accept задается минимальное значение выхода, при котором наблюдение будет считаться принадлежащим «положительному» классу; поле От­вергнуть - Reject содержит максимальное значение выхода, при котором наблюдение будет отнесено к «отрицательному» классу.

Интерпретация результатов классификации

При прогоне сети из окон Прогнать одно наблюдение - Run Single Case, Прогнать отдельное наблюдение - Run One-off Case или Прогнать набор данных - Run Data Set программа SТ Neural Networks производит пост-процессирование выходных значений с учетом доверительных пределов и присваивает значения выходной переменной по следующим правилам.

• Если выход превысил порог принятия, то наблюдение классифициру­ется положительно и выдается второе из двух номинальных значений (в нашем примере True).

• Если выход был ниже порога отвержения, наблюдение классифици­руется отрицательно, и выдается первое из двух номинальных значе­ний (в нашем примере False).

• Если выход лежит между двумя порогами, классификация объявляет­ся неопределенной и выходная переменная приобретает «пропущен­ное» значение (изображается знаком вопроса).

По умолчанию в пакете 57' Neural Networks выдаются именно эти номи­нальные значения выходных переменных. Однако, вполне вероятно, что вы захотите узнать истинные уровни доверия, которые сеть присвоила наблюдениям до пост-процессирования (т.е. уровни активации выходного элемента). Поменяйте значение параметра Показывать при выводе -Outputs Shown с Переменные... - Variables на Активации - Activations - и в таблице будут показаны не пост-процессированные номинальные значе­ния выходной переменной, а уровни активации выходного элемента сети.

Статистики классификации

Таблица со статистиками, отражающими результаты и качество классификации, выводится нажатием кнопки Запуск - Run в окне Статистики классификации - Classification Statistics или кнопкой .

Столбцы таблицы соответствуют классам. Каждый столбец разбит на две части: суммарные статистики и статистики присваивания. Друг от друга они отделены темной горизонтальной линией.

Итоговые статистики

1. Всего - Total. Общее число наблюдений в этом наборе данных.

2. Правильно - Correct. Количество наблюдений из этого класса, кото­рые сеть классифицировала правильно.

3. Неправильно - Wrong. Количество наблюдений из этого класса, кото­рые сеть неправильно классифицировала как относящиеся к другому классу.

4. Неясно - Unknown. Количество наблюдений из этого класса, которые сеть не смогла классифицировать.

Статистики присваивания

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

Замечание. Статистики классификации автоматически обновляются после нажатия кнопки Запуск - Run в одноименном окне, и для их пере­счета не требуется никаких специальных действий.