Санкт-Петербургский государственный университет
Факультет Прикладной математики-Процессов управления

Главная > Реализация задачи в среде Fuzzy Logic Toolbox


Содержание:


Реализация задачи в среде Fuzzy Logic Toolbox

Сохраним обучающую выборку, которая была составлена в предыдущем разделе, в отдельный файл с именем training_data.dat. После этого с помощью команды anfisedit из командной строки MATLAB запускаем ANFIS-редактор и загружаем этот файл.

Anfis Editor

Generate FIS

Сгенерируем систему нечеткого вывода типа Сугено нажатием кнопки Generate FIS.... В появившемся окне зададим для каждой входной переменной по 3 функции принадлежности типа pimf. Для выходной переменной зададим линейную функцию принадлежности.

Для обучения гибридной сети выберем метод hybrid с уровнем ошибки 0 и количеством циклов 30. Запустим обучение гибридной сети.

FIS training

После обучения гибридной сети можно посмотреть структуру построенной нечеткой модели. В данной системе мы получили 81 правило.

Anfis Model Structure

Протестируем полученную систему нечеткого вывода на обучающем наборе данных.

Testing FIS

Теперь проверим точность построенной системы на тех данных, которые не вошли в обучающую выборку. Предположим, что текущий день - это 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.