- •Федеральное агентство связи Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
- •Введение
- •Первая часть
- •1. Построение нечеткого дерева решений
- •1.1 Определение лингвистических переменных
- •1.2 Построение функций принадлежности
- •1.3 Расчёт e(sn), g(sn)
- •1.4 Расчёт степеней принадлежности к каждому новому узлу
- •1.5 Расчёт принадлежности новой записи к целевому классу
- •Вторая часть
- •2. Построение нечетной экспертной системы в CubiCalc 2.0
- •2.1 Определение переменных Fuzzy Input, Output
- •2.2 Построение функций принадлежности
- •2. 3 Определение набора правил, связывающих входные переменные с выходными
- •2.4 Настройка входного файла
- •2.5 Проверка работы системы
- •Заключение
- •Список используемых источников
1.5 Расчёт принадлежности новой записи к целевому классу
Определяем степень риска банкротства предприятия с собственным капиталом 18 000 денежных единиц и заемным капиталом 16 000 денежных единиц:
Χда=1,0 Χнет =0,0
Условие принадлежит к узлам 1, 2, 3 и 4. Подставляем полученные значения в формулу: ,
где - коэффициент соотношения примеров листа дерева I для значения целевого класса k, - степень принадлежности примера к узлу I, - принадлежность значения целевого класса k к положительному значению исхода классификации.
Рда=2,5 Рнет=0,4
Рда=0,2 Рнет=0,2
Рда=0,4
Рда=0,5
Рда=0,3
Рда=0,3
Рда=0,3 Рнет=0,3
Рнет=0,5
Рнет=0,3
Рнет=0,6
Рнет=1,4
Рда=2,5 Рнет=0,4
Рда=0,7 Рнет=0,6
Рда=0,3 Рнет=1,7
δ=(2,5*0,6*1,0+0,4*0,6*0,0+0,2*0,2*1,0+0,2*0,2*0,0+0,4*0,4*1,0+0,3*0,4*0,0+0,5*0,2*1,0+0,5*0,2*0,0)/((2,5+0,4)*0,6+(0,2+0,2)*0,2+(0,4+0,3)*0,4+(0,5+0,5)*
*0,2)=0,78
В итоге мы получили рейтинг, равный 0,78, что означает степень риска банкротства почти возможным.
Вторая часть
2. Построение нечетной экспертной системы в CubiCalc 2.0
2.1 Определение переменных Fuzzy Input, Output
Процесс разработки нечеткой экспертной системы в пакете CubiCalc начинается с определения переменных, которые будут использоваться в проекте. Создаем новый проект и новые переменные. Первой входной переменной будет собственный капитал, обозначим «Sobstv». Задаем ее атрибуты: выбираем ее тип (Fuzzy Input) и диапазон изменения ее значений 0,40000, а также начальное значение Initial Valuе равное 0 (рис.2)
Рис.2
Задаем вторую входную переменную заемный капитал, обозначим «Zaemn». Атрибуты переменной: ее тип (Fuzzy Input) и диапазон изменения ее значений 0,40000, а также начальное значение Initial Valuе равное 0.
Объявляем третью переменную рейтинг, обозначим «Rang». Она является выходной. Атрибуты переменной: ее тип (Fuzzy Output), диапазон изменения ее значений0,1, а также начальное значение Initial Valuе равное 0.
2.2 Построение функций принадлежности
Далее необходимо задать характеристики всех трех переменных ProjectAdjective editоr. В окне «Adjective for variables» выбираем переменную «Sobstv» и нажимаем кнопку Edit(рис.3).
Рис.3
Здесь каждой входной переменной поставим в соответствие набор функций принадлежностей AdjectiveChange ListNew. В появившемся окне «Create Adjective» задаем следующие параметры: количество функций принадлежности равное 3,вид функций принадлежности (Shape)Trapezoid,ширина основания(base width) равная 20000 и (crown width) равное 10000(рис.4).
Рис.4
В окне «Edit Adjective List» присвоим наименования Small, Medium, Large соответственно малому, среднему и высокому собственному капиталу.
2. 3 Определение набора правил, связывающих входные переменные с выходными
Далее необходимо определить набор правил, которые связывают входные переменные с выходными (рис.5). Для этого в редакторе правил вывода ProjectRules определим:
Рис.5
Следующими этапами выполнения являются предобработка и постобработка. Предобработка задает входные данные (рис.6). Для этого используется функция field( ), которая возвращает данные из отдельного поля текущей записи. Задаем:
Рис.6
В постобработке задается метод автоматической оценки эффективности системы (рис.7). Необходимо посчитать количество сделанных системой ошибок и вывести сумму в конце запуска. Чтобы обнаружить ошибку классификации в постобработке, необходимо сравнить выходную переменную с информацией check в файле данных.Вставляем в окно редактора постобработки следующие инструкции:
If(reiting<>check)errors+=1;end
If(endoffile=TRUE)call message(errors);end
Рис.7
В процессе настройки системы я использовала переменные, отличные от входных и выходных. Для обнаружения ошибок классификации я использовала переменную errors и check для подсчета количества ошибок классификации. Необходимо создать эти переменные (рис.8). Делается это так же, как и вначале, когда создавались входные и выходные переменные, только изменяем тип переменных на Temporary, начальное значение 0.0.
Рис.8