Санкт-Петербургский государственный университет
Факультет Прикладной математики-Процессов управления
Главная > Реализация задачи в среде Fuzzy Logic Toolbox
Сохраним обучающую выборку, которая была составлена в предыдущем разделе, в отдельный файл с именем training_data.dat. После этого с помощью команды anfisedit из командной строки MATLAB запускаем ANFIS-редактор и загружаем этот файл.
Сгенерируем систему нечеткого вывода типа Сугено нажатием кнопки Generate FIS.... В появившемся окне зададим для каждой входной переменной по 3 функции принадлежности типа pimf. Для выходной переменной зададим линейную функцию принадлежности.
Для обучения гибридной сети выберем метод hybrid с уровнем ошибки 0 и количеством циклов 30. Запустим обучение гибридной сети.
После обучения гибридной сети можно посмотреть структуру построенной нечеткой модели. В данной системе мы получили 81 правило.
Протестируем полученную систему нечеткого вывода на обучающем наборе данных.
Теперь проверим точность построенной системы на тех данных, которые не вошли в обучающую выборку. Предположим, что текущий день - это 9 ноября 2007 года, и сделаем прогноз курсовой стоимости USD на 10 ноября 2007 года. Для этого воспользуемся функцией командной строки evalfis, так как графические средства пакета Fuzzy Logic Toolbox дают слишком большую погрешность.
>> input = [24.4800 24.5100 24.6200 24.6700]
input =
24.4800 24.5100 24.6200 24.6700
>> fis = readfis('USD')
fis =
name: 'USD'
type: 'sugeno'
andMethod: 'prod'
orMethod: 'probor'
defuzzMethod: 'wtaver'
impMethod: 'prod'
aggMethod: 'sum'
input: [1x4 struct]
output: [1x1 struct]
rule: [1x81 struct]
>> price = evalfis(input, fis)
Warning: Some input values are outside of the specified input range.
> In evalfis at 73
price =
24.4460
Вектор input
— это курсовая стоимость валюты за текущий и предыдущие дни, а price
— предполагаемая курсовая стоимость на следующий день. После выполнения функции получаем значение price
равное 24.4460. Сравнивая это значение со значением из таблицы, легко убедиться, что они очень близки и погрешность составляет всего 0.004. Таким образом, построенную нечеткую модель гибридной сети можно считать достаточно точной для прогнозирования курсовой стоимости USD.