
Лабораторная работа № 1 прогнозирование результатов выборов
ОСНОВНЫЕ ВОЗМОЖНОСТИ ПРОГРАММЫ НЕЙРОПРО
Создание нейропроекта;
Подключение к нейропроекту файла (базы) данных;
Редактирование файла данных;
Добавление в нейропроект нейронной сети слоистой архитектуры с числом слоев нейронов от 1 до 10, числом нейронов в слое – до 100 (число нейронов для каждого слоя сети может задаваться отдельно);
Выбор алгоритма обучения, назначение требуемой точности прогноза, настройка параметров нейронной сети;
Обучение нейронной сети решению задачи предсказания или классификации;
Тестирование нейронной сети на файле данных;
Вычисление показателей значимости каждого из входных сигналов для решения задачи, сохранение вычисленных показателей значимости в файле на диске;
Упрощение нейронной сети;
Генерация и визуализация вербального описания нейронной сети. Редактирование и сохранение вербального описания нейронной сети в файле на диске;
Сохранение нейропроекта на диске.
Форматы файлов
В качестве файлов данных (содержащих обучающую выборку для нейронных сетей) используются файлы форматов DBF (форматы пакетов Dbase, FoxBase, FoxPro, Clipper) и DB (Paradox). Возможно чтение и редактирование этих файлов и сохранение измененных файлов на диске. Программа не накладывает ограничений на число записей (строк) в файле данных.
ИНТЕРФЕЙС ПРОГРАММЫ НЕЙРОПРО
Для того, чтобы сделать активными пункты меню программы, необходимо открыть файл, содержащий входную информацию для создания нейросети. Таким файлом является файл формата DBF. Его можно создать самостоятельно в программе Excel или открыть файл xor1.dbf.
Щекните по кнопке Создать, в новом окне нажмите Открыть файл данных. Откройте файл xor1.dbf.
Открытый файл отображается в собственном окне, где предоставляется возможность его редактирования. При подключенном файле данных можно проводить операции создания новых сетей, их обучения, тестирования и упрощения.
Для создания новой нейронной сети необходимо нажать кнопку “Новая сеть” в окне нейропроекта и заполнить окно для создания неронной сети: подтвердите статусы полей х1, х2 – входные, у – выходное, Тип поля - количественный, на вкладке Структура сети укажите число слоев нейронов -1, число нейронов в слое – 2. Нажмите кнопку Создать.
Далее рассмотрим ставшие активными пункты меню программы.
Меню программы содержит следующие пункты, относящиеся к нейронным сетям и работе с ними:
Файл - базовые операции с файлами, включая стандартные опции: создать, открыть, сохранить, сохранить как, выход.
Нейросеть - операции с нейронными сетями. Операция выполняется над активной в данный момент в нейропроекте нейронной сетью и включает в себя следующие опции:
• Обучение - обучение нейронной сети;
• Тестирование - тестирование нейронной сети;
• Сокращение числа входных сигналов - удаление наименее значимых входных сигналов;
• Сокращение числа синапсов - удаление наименее значимых синапсов сети;
• Сокращение числа неоднородных входов - удаление наименее значимых неоднородных входов нейронов сети;
• Равномерное упрощение сети - сокращение числа приходящих на нейроны сети сигналов до заданного пользователем;
• Бинаризация синапсов сети - приведение значений весов синапсов и неоднородных входов нейронов к значениям -1 и 1;
• Вербализация - генерация вербального описания нейронной сети;
• Значимость входов - подсчет и отображение значимости входных сигналов нейронной сети;
• Возмущение весов синапсов - добавление случайных поправок к весам синапсов сети.
Настройка - операции по настройке нейронной сети. Настройки действуют в пределах нейропроекта, сохраняются в файле нейропроекта и восстанавливаются при его чтении программой.
Опции данного пункта меню:
• Метод оптимизации - выбор метода оптимизации для обучения сети. Из трех реализованных в настоящее время в программе методов (градиентный спуск, модифицированный партан-метод (РагТап) и метод сопряженных градиентов) при создании нейропроекта автоматически предлагается РагТап.
• Норма накопления значимости - выбор нормы накопления градиента при подсчете показателей значимости, иначе говоря, показатель совокупной ошибки сети. При создании нейропроекта автоматически выбирается норма в виде суммы модулей.
Сокращение числа неоднородных входов - удаление наименее значимых неоднородных входов нейронов сети;
Равномерное упрощение сети - сокращение числа приходящих на нейроны сети сигналов до заданного пользователем;
Бинаризация синапсов сети - приведение значений весов синапсов и неоднородных входов нейронов к значениям -1 и 1;
Вербализация - генерация вербального описания нейронной сети;
Значимость входов - подсчет и отображение значимости входных сигналов нейронной сети;
Возмущение весов синапсов - добавление случайных поправок к весам синапсов сети.
Рис.1. Операции пункта Нейросеть главного меню
Настройка - операции по настройке нейронной сети. Настройки действуют в пределах нейропроекта, сохраняются в файле нейропроекта и восстанавливаются при его чтении программой.
Опции данного пункта меню:
Метод оптимизации - выбор метода оптимизации для обучения сети. Из трех реализованных в настоящее время в программе методов (градиентный спуск, модифицированный партан-метод (РагТап) и метод сопряженных градиентов) при создании нейропроекта автоматически предлагается РагТап.
Норма накопления значимости - выбор нормы накопления градиента при подсчете показателей значимости, иначе говоря, показатель совокупной ошибки сети. При создании нейропроекта автоматически выбирается норма в виде суммы модулей.
ЗАДАНИЕ ДЛЯ ВЫПОЛНЕНИЯ
Эмулятор нейронных сетей NeuroPro можно использовать как систему для социального прогноза, предсказывающую исход выборов. Возможности эмулятора рассматриваются на примере выборов президента США.
Какая партия победит на очередных выборах в США – правящая или оппозиционная? На первый взгляд кажется, что это зависит от личностей кандидатов и от их программ. Оказывается, что если предвыборные кампании всех кандидатов отработаны добросовестно и все участники сделали все возможное, то выбор практически предопределяется объективными признаками ситуации и не зависит ни от программ, ни от личностей, ни от названий партий, а только от того, к какой партии принадлежит правящий президент. В одних ситуациях побеждает правящая партия, в других – оппозиция.
Результаты выборов можно предсказать на основании ответов на 12 вопросов:
Правящая партия была у власти более одного срока?
Правящая партия получила больше 50% на прошлых выборах?
В год выборов была активна третья партия?
Была серьезная конкуренция при выдвижении от правящей партии?
Кандидат от правящей партии был президентом в год выборов?
Год выборов был временем спада или депрессии?
Рост среднего национального валового продукта на душу населения больше 2,1%?
Правящий президент произвел существенные изменения в политике?
Во время правления были существенные социальные волнения?
Администрация правящей партии виновна в серьезной ошибке или скандале?
Кандидат правящей партии – национальный герой?
Кандидат оппозиционной партии – национальный герой?
Обучающая выборка состоит из 31 примера, каждый из которых представляет ситуацию выборов, начиная с 1864 г. (табл. 1), где ответы «Да» обозначены единицами, а ответы «Нет» - нулями.
Табл. 1.
№ |
Год |
Класс |
Обучающие параметры (номера вопросов) | |||||||||||
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
1 |
1864 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
2 |
1868 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
3 |
1872 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
4 |
1880 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
5 |
1888 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
6 |
1900 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
7 |
1904 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
8 |
1901 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
9 |
1916 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
10 |
1924 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
11 |
1921 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
12 |
1936 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
13 |
1940 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
14 |
1944 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
15 |
1948 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
16 |
1956 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
17 |
1964 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
18 |
1972 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
19 |
1860 |
2 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
20 |
1872 |
2 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
21 |
1884 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
22 |
1892 |
2 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
23 |
1896 |
2 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
24 |
1912 |
2 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
25 |
1920 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
26 |
1932 |
2 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
27 |
1952 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
28 |
1960 |
2 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
29 |
1968 |
2 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
30 |
1976 |
2 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
31 |
1980 |
2 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
Класс 1 означает, что в данной ситуации был избран кандидат правящей партии, класс 2 - кандидат оппозиционной партии. После обучения сеть должна предсказать ответ для ситуации, отраженной табл. 2, которая не входила в обучающую выборку (когда производились эксперименты, результат выборов 1992 г. еще не был известен).
Таблица
2
НЕЙРОСЕТЕВОЕ МОДЕЛИРОВАНИЕ
Используя табл. 1 подготовим в Excel обучающую выборку в виде табл. 3. Сохраним эти данные в виде файла формата DBF III с названием Выборы..dbf
Таблица 3.
Y |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
2 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
2 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
2 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
2 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
2 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
2 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
2 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
2 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
2 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
Подготовим данные для опроса в соответствии с табл. 2 в форме табл.4 и сохраним под именем Прогноз.dbf
Таблица 4. Исходные данные для прогноза
Y |
X1 |
X2 |
X3 |
X4 |
X5 |
X6 |
X7 |
X8 |
X9 |
X10 |
X11 |
X12 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |