- •Рецензия Оглавление
- •Лист задания
- •Введение
- •Построение нечёткого дерева решений
- •Определение лингвистических переменных
- •Построение функций принадлежности
- •Расчёт e(sn), g(sn)
- •Расчёт степеней принадлежности к каждому новому узлу
- •1.5 Расчёт принадлежности новой записи к целевому классу
- •Построение нечёткой экспертной системы в программном пакете CubiCalc 2.0
- •Определение переменных Fuzzy Input, Output
- •Построение функций принадлежности
- •Определение набора правил, связывающих входные переменные с выходными
- •Настройка входного файла
- •Проверка работы системы
- •Заключение
- •Список использованных источников
1.5 Расчёт принадлежности новой записи к целевому классу
Определяем рейтинг места организации магазина с проходимостью 50000 чел и расстоянием до базы 40 км:
Χда=1,0
Χнет =0,0
Условие принадлежит узлу 8 и имеет степень =1. Подставляем полученные значения в формулу:
, где - коэффициент соотношения примеров листа дерева I для значения целевого класса k, - степень принадлежности примера к узлу I, - принадлежность значения целевого класса k к положительному значению исхода классификации.
В итоге мы получили рейтинг, равный 0,75. Он означает, что степень принадлежности записи к тому, что магазин будет построен в этом месте =0,75, а к тому, что не будет построен =0,25. Следовательно, магазин можно построить с расстоянием до базы 40 км.
Построение нечёткой экспертной системы в программном пакете CubiCalc 2.0
Определение переменных Fuzzy Input, Output
Процесс разработки нечёткой экспертной системы в пакете CubiCalc начинается с определения переменных, которые будут использоваться в проекте project→variables→new.
Объявляем первую переменную как prohod (проходимость), зададим атрибуты переменной: выберем её тип (Fuzzy Input), зададим диапазон изменения её значений [0;60000], а также зададим начальное значение Initial Value равное 10000 (рис.1).
Рис.2
Объявляем вторую переменную как rast (расстояние до базы, задаём атрибуты переменной: выберем её тип (Fuzzy Input), зададим диапазон изменения её значений [0;40], а также зададим начальное значение Initial Value равное 0 (рис.3).
Рис.3
Объявляем третью (выходную) переменную Ранг как rate, задаём атрибуты переменной: выберем её тип (Fuzzy Output), зададим диапазон изменения её значений [0;1], а также зададим начальное значение Initial Value равное 0 (рис.4).
Рис.4
Построение функций принадлежности
Необходимо задать характеристики всех трёх переменных project→adjective editor. Выбираем переменную prohod в окне «Adjectives for variables», нажимаем Edit. Здесь каждой входной и выходной переменной ставим в соответствие набор функций принадлежности Adjective→Change List→New. В появившемся окне «Create Adjective(s)» задаём параметры: количество функций принадлежности (Number) равное 3; вид функции принадлежности (Shape) – Triangle; ширина основания (base width) равная 60000.0 (рис.5).
Рис.5
В окне «Edit Adjective List» присвоим наименования – small, middle, big соответственно большой, средней и маленькой проходимости (рис.6).
Рис.6
Аналогично для переменной rast (рис.7):
Рис.7
Получаем следующие функции принадлежности (рис.8):
Рис.8
Определение набора правил, связывающих входные переменные с выходными
Необходимо определить набор правил, которые связывают входные переменные с выходными. Для этого в редакторе правил вывода Project→Rules определяем (рис.9):
IF prohod is big AND rast is normal THEN rate is good;
IF prohod is small AND rast is normal THEN rate is bad;
IF prohod is middle AND rast is long THEN rate is normal;
IF prohod is middle AND rast is normal THEN rate is normal;
Рис.9
Настройка входного файла
Для присоединения входного файла к проекту, необходимо создать файл с расширением .txt, задать имя файла (File→Input File) и некоторые его атрибуты (рис.10):
Рис.10
Рис.10