Пример 2.
В доказательство того, что система NEFCLASS работает достаточно хорошо даже в ситуациях, когда входные параметры характеризуются недостаточной полнотой, приведем следующий пример: в качестве данных, которые должны быть обучены, представим выборку из 75 образцов, представляющую собой данные российских аудиторско-консультационных фирм по итогам 1999г. Выборка достаточно репрезентативна.
Задача состоит в определении, к какому классу принадлежит фирма по итогам 1999г. В качестве входных параметров возьмем такие 4:
В качестве выходного образца возьмем подразделение на 4 класса в порядке убывания прибыли в тыс.руб.:
1 класс -
2 класс -
3 класс -
4 класс -
Как видим, не все данные коррелируемы между собой. В качестве нечеткого деления входных параметров на основании опыта эксперта и их степени важности примем следующее:
– состоит из 7 одинаковых нечетких множеств, которые описываются следующими лингвистическими термами: “очень малое”, “малое”, “не малое, но и не среднее”, “среднее”, “не среднее, но и не большое”, “большое”, “очень большое”.
– состоит из 4 одинаковых нечетких множеств, которые описываются следующими лингвистическими термами: “очень малое”, “малое”, “большое”, “очень большое”.
– состоит из 7 одинаковых нечетких множеств, которые описываются следующими лингвистическими термами: “очень малое”, “малое”, “не малое, но и не среднее”, “среднее”, “не среднее, но и не большое”, “большое”, “очень большое”.
– состоит из 2 одинаковых нечетких множеств, которые описываются следующими лингвистическими термами: “малое”, “большое”.
При таком нечетком задании параметров и промежутков изменения параметров по входному образцу можно составить максимум 29 правил. Так как параметры практически некоррелируемы между собой, то число скрытых нейронов (нейронов правил) должно быть близко к 29. Возьмем 26, отбросив 3 правила, которые выполняются с наименьшей вероятностью.
Полная структура входного файла:
%Российские аудиторско-консультационные фирмы в 1999 г
%Подразделение на классы в соответствии с полученной прибылью в тыс.руб.
%Класс 1 0 0 0 есть (крупнейшие)
%Класс 0 1 0 0 есть (крупные)
%Класс 0 0 1 0 есть (средние)
%Класс 0 0 0 1 есть (малые)
%This file contains a data set with 75 cases% Ranges of the 4 input variables
INRANGES
49 646
1 4
50 1230
0 20
%This are 75 patterns,
%first given are the number of pattern, inputs and outputs
PATTERNS
75 4 4
Классификация |
||||
190.9 |
1 |
219.0 |
13 |
1 0 0 0 |
192.1 |
1 |
302.8 |
18 |
1 0 0 0 |
154.9 |
1 |
1229.4 |
0 |
1 0 0 0 |
125.8 |
1 |
190.2 |
20 |
1 0 0 0 |
111.6 |
1 |
289.0 |
4 |
1 0 0 0 |
184.3 |
1 |
571.8 |
4 |
1 0 0 0 |
236.3 |
2 |
402.4 |
3 |
1 0 0 0 |
155.9 |
1 |
309.5 |
5 |
1 0 0 0 |
270.2 |
2 |
314.3 |
10 |
1 0 0 0 |
208.8 |
2 |
305.1 |
4 |
1 0 0 0 |
320.0 |
3 |
466.0 |
2 |
1 0 0 0 |
645.7 |
4 |
312.8 |
4 |
1 0 0 0 |
290.7 |
3 |
405.9 |
3 |
0 1 0 0 |
126.1 |
2 |
597.2 |
5 |
0 1 0 0 |
249.6 |
3 |
447.4 |
0 |
0 1 0 0 |
122.1 |
2 |
193.9 |
1 |
0 1 0 0 |
145.0 |
2 |
195.7 |
2 |
0 1 0 0 |
217 |
3 |
151.7 |
3 |
0 1 0 0 |
245.7 |
3 |
538.1 |
0 |
0 1 0 0 |
126.4 |
2 |
154.3 |
1 |
0 1 0 0 |
193.3 |
3 |
194.4 |
1 |
0 1 0 0 |
161.9 |
3 |
245.0 |
0 |
0 1 0 0 |
169.2 |
3 |
290.3 |
1 |
0 1 0 0 |
335.4 |
4 |
174.4 |
0 |
0 1 0 0 |
117.2 |
2 |
551.9 |
1 |
0 1 0 0 |
197.2 |
3 |
209.2 |
0 |
0 1 0 0 |
241.8 |
4 |
610.3 |
0 |
0 1 0 0 |
192.6 |
4 |
167.1 |
0 |
0 1 0 0 |
178.5 |
3 |
90.9 |
8 |
0 1 0 0 |
118.4 |
3 |
285.4 |
1 |
0 1 0 0 |
90.3 |
2 |
126.5 |
0 |
0 1 0 0 |
124.8 |
3 |
96.0 |
4 |
0 0 1 0 |
197.8 |
4 |
165.2 |
1 |
0 0 1 0 |
223.3 |
4 |
164.0 |
0 |
0 0 1 0 |
531.5 |
4 |
270.3 |
1 |
0 0 1 0 |
210.9 |
2 |
182.1 |
0 |
0 0 1 0 |
136.3 |
3 |
186.8 |
2 |
0 0 1 0 |
119.2 |
3 |
223.1 |
0 |
0 0 1 0 |
203.7 |
4 |
315.9 |
0 |
0 0 1 0 |
214.9 |
4 |
267.8 |
0 |
0 0 1 0 |
205.7 |
4 |
105.8 |
3 |
0 0 1 0 |
111.6 |
3 |
158.2 |
1 |
0 0 1 0 |
138.9 |
4 |
264.8 |
1 |
0 0 1 0 |
167.2 |
4 |
201.6 |
0 |
0 0 1 0 |
140.9 |
4 |
79.3 |
2 |
0 0 1 0 |
159.7 |
4 |
241.9 |
1 |
0 0 1 0 |
151.7 |
4 |
193.7 |
0 |
0 0 1 0 |
265.7 |
4 |
121.2 |
0 |
0 0 1 0 |
306.0 |
4 |
128.8 |
0 |
0 0 1 0 |
127.0 |
4 |
89.8 |
0 |
0 0 1 0 |
106.7 |
4 |
129.1 |
0 |
0 0 1 0 |
130.1 |
4 |
123.6 |
2 |
0 0 0 1 |
154.1 |
4 |
150.4 |
0 |
0 0 0 1 |
147.3 |
4 |
312.8 |
0 |
0 0 0 1 |
122.1 |
4 |
150.7 |
2 |
0 0 0 1 |
165.0 |
4 |
96.7 |
0 |
0 0 0 1 |
154.3 |
4 |
82.2 |
0 |
0 0 0 1 |
163.7 |
4 |
161.8 |
3 |
0 0 0 1 |
113.7 |
4 |
50.0 |
2 |
0 0 0 1 |
166.0 |
4 |
107.8 |
0 |
0 0 0 1 |
187.8 |
4 |
209.7 |
0 |
0 0 0 1 |
151.4 |
4 |
92.9 |
0 |
0 0 0 1 |
49.9 |
3 |
59.0 |
1 |
0 0 0 1 |
149.8 |
4 |
93.2 |
0 |
0 0 0 1 |
105.0 |
4 |
109.5 |
0 |
0 0 0 1 |
68.4 |
4 |
61.7 |
1 |
0 0 0 1 |
167.2 |
4 |
100.9 |
0 |
0 0 0 1 |
107.1 |
4 |
81.2 |
2 |
0 0 0 1 |
110.6 |
4 |
116.7 |
0 |
0 0 0 1 |
118.1 |
4 |
161.0 |
0 |
0 0 0 1 |
106.7 |
4 |
124.3 |
0 |
0 0 0 1 |
104.4 |
4 |
135.1 |
1 |
0 0 0 1 |
136.0 |
4 |
155.6 |
0 |
0 0 0 1 |
110.7 |
4 |
54.9 |
1 |
0 0 0 1 |
92.2 |
4 |
92.4 |
0 |
0 0 0 1 |
END
Полный список параметров нечеткой нейронной сети приведен ниже
Рис.33 а) параметры сети; б) параметры обучения; в) нечеткое деление.
В результате процесса обучения, состоящего из 200 итераций, были опознаны 66 из75 образцов. Соответственно, показатель эффективности сети составляет 88%, что достаточно неплохо.
Рис.34. Статистика нечеткой нейронной сети после обучения
Рис.35. Разделение на классы в данной ННС.
Приведем полный вид выходного файла:
% NEFCLASS 2.04, (c) TU Braunschweig, 1994
%Protocol for rule creation and training
%There are 0 proir rules.
%Patterns that have created rules
Pattern 1 created rule 1
Pattern 2 created rule 2
Pattern 3 created rule 3
Pattern 4 created rule 4
Pattern 5 created rule 5
Pattern 6 created rule 6
Pattern 7 created rule 7
Pattern 9 created rule 8
Pattern 10 created rule 9
Pattern 11 created rule 10
Pattern 12 created rule 11
Pattern 13 created rule 12
Pattern 14 created rule 13
Pattern 15 created rule 14
Pattern 16 created rule 15
Pattern 18 created rule 16
Pattern 23 created rule 17
Pattern 24 created rule 18
Pattern 25 created rule 19
Pattern 27 created rule 20
Pattern 28 created rule 21
Pattern 30 created rule 22
Pattern 32 created rule 23
Pattern 35 created rule 24
Pattern 36 created rule 25
Pattern 39 created rule 26
Pattern 43 created rule 27
Pattern 48 created rule 28
Pattern 54 created rule 29
%An initial rule base with 29 rules was created.
%Rule base file created by NEFCLASS 2.04, (c) TU Braunschweig, 1994
IF V_1 is small and V_2 is v_small and V_3 is v_small and V_4 is large
THEN Class_1
IF V_1 is small and V_2 is v_small and V_3 is small and V_4 is large
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is v_large and V_4 is small
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is v_small and V_4 is large
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is small and V_2 is v_small and V_3 is medium and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is small and V_3 is small and V_4 is large
THEN Class_1
IF V_1 is small and V_2 is small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is medium and V_2 is large and V_3 is l_small and V_4 is small
THEN Class_1
IF V_1 is v_large and V_2 is v_large and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is medium and V_4 is small
THEN Class_2
IF V_1 is l_small and V_2 is large and V_3 is l_small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is small and V_2 is large and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is medium and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is l_small and V_4 is small
THEN Class_2
IF V_1 is l_small and V_2 is v_large and V_3 is medium and V_4 is small
THEN Class_2
IF V_1 is small and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is large and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is small and V_2 is small and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is small and V_2 is v_large and V_3 is small and V_4 is small
THEN Class_3
IF V_1 is v_small and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is l_small and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is v_small and V_2 is v_large and V_3 is small and V_4 is small
THEN Class_4
%Accumulated rule activations per class
1) 1.2053 0.0000 0.0000 0.0000% Change of rule conclusions
Conclusion of Rule 21 was changed from 2 to 3.
Conclusion of Rule 27 was changed from 3 to 4.
Conclusion of Rule 29 was changed from 4 to 2.
%Overall rule performance
1) 1.2053% The 26 best rules have been selected.
% Rule base file created by NEFCLASS 2.04, (c) TU Braunschweig, 1994
% This file was created on 4/25/1996 at 13:59.
%
IF V_1 is small and V_2 is v_small and V_3 is v_small and V_4 is large
THEN Class_1
IF V_1 is small and V_2 is v_small and V_3 is small and V_4 is large
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is v_large and V_4 is small
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is v_small and V_4 is large
THEN Class_1
IF V_1 is v_small and V_2 is v_small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is small and V_2 is v_small and V_3 is medium and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is small and V_3 is small and V_4 is large
THEN Class_1
IF V_1 is small and V_2 is small and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is medium and V_2 is large and V_3 is l_small and V_4 is small
THEN Class_1
IF V_1 is v_large and V_2 is v_large and V_3 is small and V_4 is small
THEN Class_1
IF V_1 is l_small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is medium and V_4 is small
THEN Class_2
IF V_1 is l_small and V_2 is large and V_3 is l_small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is small and V_2 is large and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is medium and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is small and V_3 is l_small and V_4 is small
THEN Class_2
IF V_1 is l_small and V_2 is v_large and V_3 is medium and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is large and V_3 is small and V_4 is small
THEN Class_2
IF V_1 is v_small and V_2 is large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is large and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is small and V_2 is small and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is v_small and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
IF V_1 is l_small and V_2 is v_large and V_3 is v_small and V_4 is small
THEN Class_3
%Protocol of global error and number of misclassifications
1 26.800554 10Теперь произведем обучение следующих 5 новых образцов по уже полученной базе правил:
93.5 |
4 |
97.5 |
2 |
0 0 0 1 |
297.2 |
3 |
209.2 |
0 |
0 1 0 0 |
250.9 |
1 |
621.0 |
2 |
1 0 0 0 |
234.3 |
3 |
181.7 |
8 |
0 1 0 0 |
199.5 |
4 |
227.2 |
5 |
0 0 1 0 |
В результате обучения по оттренированным данным пакет получает значения, исходя из ранее полученной базы правил, и лишь сравнивает с теми входными данными, которые знаем мы.
После обучения сети, состоящей уже из 80 образцов, по базе правил, которая получена для 75 образцов, видим, что не было опознано 10 образцов. Это означает, что1 из 5 новых образцов не соответствует тому классу, к которому мы его интуитивно отнесли. По файлу результатов находим, что это последний образец. По ненормализованной функции принадлежности видим, что по данной базе правил он принадлежит как 2-му, так и 3-му классу со степенью принадлежности 0.27, но так как пакет выводит степень принадлежности с точностью до второго знака после запятой, то можно предположить, что его функция принадлежности 3-му классу больше, чем второму (по третьему знаку после запятой), и значит этот образец принадлежит 3-му классу.
Рис.36. Статистика ННС после добавления 5 новых образцов.
Рис.37. Результат протестированного 5 образца.
Из проделанного эксперимента можно сделать вывод, что система NEFFCLASS является достаточно эффективной даже в условиях неполноты и противоречивости информации.