close

Вход

Забыли?

вход по аккаунту

?

Intel analiz mnogomer dan lab rab 1-6 Sokolova

код для вставкиСкачать
Федеральное агенТство по образованию
Государственное образовательное учреждение
высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
ИНТЕЛЛЕКТУАЛЬНЫЙ АНАЛИЗ
МНОГОМЕРНЫХ ДАННЫХ
Методические указания
к выполнению лабораторных работ № 1–6
Санкт-Петербург
2008
Составители: С. П. Соколова, Е. А. Кузьмина
Под редакцией доктора педагогических наук А. Г. Степанова
Рецензент: доктор технических наук, профессор В. П. Заболотский
Методические указания содержат лабораторные работы, целью выполнения которых является формирование базовой основы подготовки специалистов в области использования современных интеллектуальных технологий при решении задач менеджмента с использованием инструментария
универсальной математической системы MATLAB.
Предназначены для студентов очной и заочной форм обучения, изучающих дисциплину «Интеллектуальный анализ данных».
Подготовлены кафедрой информационных технологий в экономике и
менеджменте и рекомендованы к изданию редакционно-издательским советом Санкт-Петербургского государственного университета аэрокосмического приборостроения.
Редактор А. В. Семенчук
Верстальщик С. Б. Мацапура
Сдано в набор 09.01.08. Подписано к печати 28.02.08.
Формат 60×84 1/16. Бумага офсетная. Печать офсетная. Усл.-печ. л. 4,1.
Уч.-изд. л. 3,9. Тираж 120 экз. Заказ №
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
© ГУАП, 2008
Лабораторная работа № 1
РАБОТА В СИСТЕМЕ MATLAB
Цель работы: освоить процедуры функционирования вычислительной среды MATLAB.
1. Методические указания
Универсальная математическая система (УМС) MATLAB является мощным средством решения научно-технических, инженерных и экономических задач. Инструментарий УМС MATLAB позволяет производить [1, 2].
1. Математические вычисления.
2. Создание и исследование свойств алгоритмов.
3. Анализ и исследование исходных данных.
4. Моделирование динамических процессов.
5. Разработку приложений, включая создание графического интерфейса.
Структура универсальной математической системы MATLAB
приведена на рис. 1.
Среда MATLAB состоит из 4 основных окон:
– Command Window (выполняются команды пользователя, подлежащие немедленному исполнению, а также отображаются реСистема
MATLAB
Язык
MATLAB
Среда
MATLAB
Управляемая
графика
Библиотека
математических функций
Программный
интерфейс
Рис. 1. Структура системы MATLAB
зультаты исполняемых команд). Вызвать справку из командного
окна можно при помощи следующих команд: doc (отображает подсказку в html-формате), help (отображает текст справки в командном окне), lookfor (осуществляет поиск ключевого слова во всех
m-файлах);
– Command History – история команд. Хранятся все команды,
набираемые пользователем, не попадают сообщения системы и результаты вычислений;
– Workspace – рабочее пространство. Представляет собой текущий набор переменных (имя, размер, тип);
– Current Directory – текущая директория.
Справка и текущая документация. Существуют следующие
способы получить информацию о функциях системы MATLAB в
процессе сеанса работы:
команда help:
основной и наиболее быстрый способ выяснить синтаксис и особенности применения М-функции – это использовать команду help
<имя М-функции>. Соответствующая информация появляется непосредственно в командном окне. Команда help сама по себе выводит на экран список каталогов;
команда lookfor:
эта команда позволяет выполнить поиск М-функции по ключевому слову;
меню Help
обращение к Web-серверу фирмы The MathWorks.
Переменные рабочего пространства. Следует иметь в виду ряд
ограничений, применяемых к именам переменных:
– можно использовать латинские буквы, цифры и символ подчеркивания;
– большие и малые буквы в именах различаются;
– имя должно начинаться с буквы;
– первый 31 символ должен обеспечивать уникальность имен.
Информация о переменных рабочего пространства – вызов команд:
– who имя переменной;
– whos (информация о всех загруженных переменных).
Некоторые функции:
– save x (x.mat) – сохранение переменной с именем x в файл с
названием x.mat;
– load x – загрузка переменной x в рабочее пространство;
– clear, clear x – удаление переменных из рабочего пространства.
Работа с m-файлами. Построение графика функции. Главной
особенностью сценариев является то, что они работают только с
переменными рабочего пространства. Нет входных и выходных аргументов, которые используются для автоматизации многократно
выполняемых вычислений. Оперируют данными из рабочей области и могут генерировать новые данные для последующей обработки
в этом же файле. Более удобная разновидность m-файлов – функции, первой строкой которых является заголовок, использующий
оператор function. Особенность функций в том, что они работают
с переменными в пределах собственной рабочей области, отличной от рабочей области системы MATLAB. В отличие от сценариев
функции могут получать исходные данные в виде списка входных
параметров и возвращать результаты своей работы также в виде
списка выходных параметров. При написании программ-функций
требуется, чтобы имя m-файла, в котором запоминается программа, обязательно совпадало с именем функции.
Существует несколько вариантов создания m-файлов:
– можно использовать любой текстовый редактор с ASCII-кодами;
– в специальном встроенном редакторе/отладчике. Открыть редактор: из меню File выбрать опцию New, а затем M-File, использовать команду редактирования edit.
Пример 1
– edit poof – запускает редактор и открывает файл poof.m. Если
имя файла опущено, то запускается редактор и открывается файл
без имени;
– what – вывести на экран имена файлов текущего каталога;
– type fact – вывести на экран текст M-файла fact.m;
– fact (5) – вызвать функцию fact с заданными параметрами.
Если у функции нет выходного аргумента, то результат сохраняется в переменной ans. Внутри тела функции присутствуют две
величины nargin и nargout, которые выдают число входных и выходных аргументов при каждом использовании функции.
Комментарии и переносы
… – три точки и более в конце строки отмечают продолжение выражения на следующей строке;
% – обозначает начало комментария.
2. Порядок выполнения работы
Средствами универсальной математической системы MATLAB
разработать m-файл для реализации вычислительной процедуры
обучения с экспертом, решить задачу классификации заданных
объектов и представить результаты решения этой задачи в трехмерном пространстве.
3. Порядок оформления отчета
Отчетом о лабораторной работе является файл с именем, совпадающим с фамилией студента, и результаты работы в папке Мои
документы/номер группы.
Рекомендуемая литература
1. Кетков Ю., Кетков А., Шульц М. MATLAB 7. Программирование, численные методы. СПб.: БХВ-Петербург, 2005.
2. Потемкин В. Г. Вычисления в среде MATLAB. М.: ДиалогМИФИ, 2004.
Лабораторная работа № 2
ПРОЕКТИРОВАНИЕ НЕЧЕТКИХ СИСТЕМ
СРЕДСТВАМИ СИСТЕМЫ MATLAB
Цель работы: освоить процесс проектирования систем нечеткого вывода в Fuzzy Logic Toolbox.
1. Структура и возможности пакета
Fuzzy Logic Toolbox – это пакет прикладных программ, входящих в состав среды M�����������������������������������������
ATLAB������������������������������������
. Он позволяет создавать системы нечеткого логического вывода и нечеткой классификации в рамках
среды M������������������������������������������������������
ATLAB�������������������������������������������������
с возможностью их интегрирования в Simulink. Базовым понятием Fuzzy Logic Toolbox является FIS-структура – система нечеткого вывода (Fuzzy Inference System). FIS-структура содержит все необходимые данные для реализации функционального
представления о зависимости «входы-выходы» на основе нечеткого
логического вывода согласно схеме, приведенной на рис. 2.
 – вектор нечетких
Обозначения: X – входной четкий вектор; X
множеств, соответствующий входному вектору X; Y – результат
логического вывода в виде вектора нечетких множеств; Y – выходной четкий вектор.
Fuzzy Logic Toolbox содержит следующие категории программных инструментов:
– функции;
– интерактивные модули с графическим пользовательским интерфейсом (с GUI);
Нечеткая база
знаний
X
Фаззи фикатор

X
Машина
нечеткого
логического
вывода

Y
Деффазификатор
Y
Функции
принадлежности
Рис. 2. Нечеткий логический вывод
– блоки для пакета Simulink;
– демонстрационные примеры.
Вторая категория программных инструментов пакета Fuzzy
Logic Toolbox содержит диалоговые модули, которые обеспечивают доступ к большинству функций через графический интерфейс.
Кроме того, эти модули обеспечивают удобную среду для проектирования, исследования и внедрения систем на основе нечеткого логического вывода. Для запуска интерактивных модулей достаточно напечатать имя модуля в командной строке. Ниже приведены
названия модулей с кратким описанием их назначения:
– ANFIS Editor (anfisedit) – модуль для генерирования из данных FIS типа Сугэно, ее обучения с использованием ANFIS алгоритма и тестирования;
– Findcluster (findcluster) – модуль кластеризации данных с использованием алгоритма fuzzy c-means и алгоритма нечеткой субтрактивной кластеризации;
– Fuzzy Inference System Editor (fuzzy) – основной редактор FIS.
Позволяет создавать и редактировать FIS двух типов – Мамдани
и Сугено, обеспечивает визуализацию процедуры нечеткого логического вывода и поверхностей «входы-выход». Для этого модуль
fuzzy вызывает следующие GUI-модули: mfedit, ruleedit, ruleview
и surfview;
– Membership Function Editor (mfedit) – редактор функций принадлежностей. Позволяет выбирать тип функции принадлежности
и устанавливать ее параметры в символьном и интерактивном графическом (drag) режимах;
– Ruleedit (ruleedit) – редактор базы знаний;
– Rule Viewer (ruleview) – модуль визуализации процедуры нечеткого логического вывода. Обеспечивает вывод графической
диаграммы нечеткого вывода по каждому правилу, включая процедуры фаззификации, агрегации и дефаззификации. Позволяет
вводить значения входных переменных в символьном и интерактивном графическом (drag) режимах.
Все GUI-модули, за исключением Findcluster, динамически обмениваются данными (рис. 3).
Кроме GUI-модулей, Fuzzy Logic Toolbox содержит функции,
которые могут быть вызваны непосредственно путем набора имени функции в командном окне (command line) или из собственных
пользовательских приложений. Большинство из этих функций
представляют собой функции �������������������������������
MATLAB�������������������������
в виде m-файлов. В этом
случае пользователь может посмотреть запрограммированные в
этих функциях алгоритмы, а также редактировать и корректиро
Fuzzy Inference
System Editor
Membership
Function Editor
Rule Editor
FIS-система
нечеткого вывода
Rule Viewer
Surface Viewer
ANFIS Editor
Рис. 3. Взаимодействие GUI-модулей нечеткого вывода
вать эти файлы. Ниже приведены названия функций с кратким
описанием их назначения:
addmf – добавление функции принадлежности в FIS;
addrule – добавление правила в FIS;
addvar – добавление переменной в FIS;
anfis – обучение FIS типа Сугено (Sugeno type);
convertfis – преобразование FIS-матрицы (Fuzzy Logic Toolbox
v.1) в FIS-структуру (Fuzzy Logic Toolbox v.2);
defuzz – дефаззификация нечеткого множества;
discfis – дискретизация функций принадлежности всех термов,
входящих в FIS;
dsigmf – функция принадлежности в виде разности между двумя сигмоидными функциями;
evalfis – выполнение нечеткого логического вывода;
evalmf – вычисление значений произвольной функции принадлежности;
evalmmf – расчет степеней принадлежностей для нескольких
функций принадлежностей;
fcm – поиск кластеров по алгоритму fuzzy c-means;
findrow – нахождение строки в матрице, совпадающей с входной строкой;
fstrvcat – конкатенация матриц различного размера;
fuzarith – нечеткий калькулятор;
gauss2mf – двухсторонняя гауссова функция принадлежности;
gaussmf – гауссова функция принадлежности;
gbellmf – обобщенная колокообразная функция принадлежности;
genfis1 – генерирование из данных исходной FIS типа Сугено без
использования кластеризации;
genfis2 – генерирование из данных исходной FIS типа Сугено с
использованием субтрактивной кластеризации;
genparam – генерирование исходных параметров функций принадлежности для обучения ANFIS (Adaptive-Network-based Fuzzy
Inference System);
gensurf – генерирование поверхности «входы-выход», соответствующей FIS;
getfis – получение свойств FIS;
mam2sug - преобразование FIS типа Мамдани в FIS типа Сугено;
mf2mf – пересчет параметров встроенных функций принадлежности различных типов;
newfis – создание новой FIS;
parsrule – вставка в FIS правил, заданных в виде предложений
на естественном языке;
plotfis – вывод основных параметров FIS в виде графической
схемы;
plotmf – вывод графиков функций принадлежности термов одной переменной;
probor – вероятностная реализация логической операции ИЛИ;
psigmf – произведение двух сигмоидных функций принадлежности;
readfis – загрузка FIS из файла;
rmmf - удаление функции принадлежности терма из FIS;
rmvar – удаление переменной из FIS;
setfis – назначение свойств FIS;
showfis – вывод на экран в текстовом формате данных, составляющих FIS-структуру;
showrule – вывод базы знаний FIS;
sigmf – сигмоидная функция принадлежности;
smf – s-подобная функция принадлежности;
subclust – оценка количества кластеров в субтрактивной кластеризации;
trapmf – трапециевидная функция принадлежности;
trimf – треугольная функция принадлежности;
writefis – сохранение FIS на диске;
zmf – z-подобная функция принадлежности;
distfcm – расчет расстояния в евклидовой метрике;
initfcm – генерирование исходной матрицы степеней принадлежности для нечеткой c-means кластеризации;
10
isfis – проверка структуры данных системы нечеткого логического вывода.
2. Структура данных системы нечеткого вывода
Система нечеткого вывода представляется в рабочей области
MATLAB структурой данных, изображенной на рис. 4.
Существует два способа загрузки FIS в рабочую область:
– считывание с диска с помощью функции readfis;
– передача из GUI-модулей через команду То workspace подменю
Export меню File.
Поля структуры данных системы нечеткого вывода содержат
следующую информацию:
FIS
name
type
andMethod
orMethod
defuzzMethod
impMethod
aggMethod
name
input
range
name
mf
type
name
output
rule
params
range
name
mf
type
antecedent
params
consequent
weight
connection
Рис. 4. Структура данных FIS
11
– name – наименование системы нечеткого вывода;
– type – тип системы. Допустимые значения: ‘Mamdani’ и ‘Sugeno’;
– andMethod – реализация логической операции И. Запрограммированные реализации: ‘min’ – минимум и ‘prod’ – умножение;
– orMethod – реализация логической операции ИЛИ. Запрограммированные реализации: ‘max’ – максимум и ‘probor’ – вероятностное ИЛИ;
– defuzzMethod – метод дефаззификации. Запрограммированные методы для систем типа Мамдани: ‘centroid’ – центр тяжести;
‘bisector’ – медиана; ‘lorn’ – наибольший из максимумов; ‘som’ –
наименьший из максимумов; ‘mom’ – среднее из максимумов.
Запрограммированные методы для систем типа Сугено: ‘wtaver’ –
взвешенное среднее и ‘wtsum’ – взвешенная сумма;
– impMethod – реализация импликации. Запрограммированные
реализации: ‘min’ – минимум и ‘prod’ – умножение;
– aggMethod – реализация агрегирования. Запрограммированные реализации: ‘max’ – максимум; ‘sum’ – сумма и ‘probor’ – вероятностное ИЛИ;
– input – массив входных переменных системы;
– input.name – наименование входной переменной;
– input.range – диапазон изменения входной переменной;
– input.mf – массив функций принадлежности входной переменной;
– input.mf.name – наименование функции принадлежности
входной переменной;
– input.mf.type – тип функции принадлежности входной переменной.
Запрограммированные функции:
– ‘dsigmf’ – функция принадлежности в виде разности между
двумя сигмоидными функциями;
– ‘gauss2mf’ – двухсторонняя гауссова функция принадлежности;
– ‘gaussmf’ – гауссова функция принадлежности;
– ‘gbellmf’ – обобщенная колоколообразная функция принадлежности;
– ‘pimf’ – π-подобная функция принадлежности;
– ‘psigmf’ – произведение двух сигмоидных функций принадлежности;
– ‘sigmf’ – сигмоидная функция принадлежности;
– ‘smf’ –s-подобная функция принадлежности;
– ‘trapmf’ – трапециевидная функция принадлежности;
– ‘trimf’ – треугольная функция принадлежности;
– ‘zmf’ – z-подобная функция принадлежности.
12
– input.mf.params – массив параметров функции принадлежности входной переменной;
– output – массив выходных переменных;
– output.name – наименование выходной переменной;
– output.range – диапазон изменения выходной переменной;
– output.mf – массив функций принадлежности выходной переменной;
– output.mf.name - наименование функции принадлежности выходной переменной;
– output.mf.type – тип функции принадлежности выходной переменной. Запрограммированные функции для системы типа Мамдани описаны в поле input.mf.type. Для системы Сугено заключения правил могут быть заданы константами (‘constatnt’) или линейной комбинацией входных переменных (‘linear’);
– output. mf. params – массив параметров функции принадлежности выходной переменной;
– rule – массив правил нечеткой базы знаний;
– rule.antecedent – посылки правила. Указываются порядковые
номера термов в порядке записи входных переменных. Число 0 указывает на то, что значение соответствующей входной переменной,
не влияет на истинность правила;
– rule.consequent – заключения правила. Указываются порядковые номера термов в порядке записи выходных переменных. Число
0 указывает на то, что правило не распространяется на соответствующую выходную переменную;
– rule.weight – вес правила. Задается числом из диапазона [0, 1];
– rule.connection – логическая связка переменных внутри правила: 1 – логическое И; 2 – логическое ИЛИ. Для доступа к свойствам системы нечеткого вывода достаточно указать имя соответствующего поля. Например, команда FIS_NAME.rule(1).weight =
0.5 устанавливает вес первого правила в 0,5, команда length(FIS_
NAME.rule) определяет количество правил в базе знаний, а команда FIS_NAME.input(1).mf(1).name = ‘Низкий’ переименовывает
первый терм первой входной переменной в Низкий.
3. Разработка нечеткой системы типа Мамдани
Процесс нечеткого вывода
Процесс нечеткого вывода (рис. 5) является алгоритмом получения нечетких знаний на основе нечетких условий и включает в себя
ряд основных этапов [1].
13
Перечисленные этапы нечеткого вывода могут быть реализованы неоднозначным образом, поскольку включают в себя отдельные
специфицируемые параметры. Было предложено несколько алгоритмов нечеткого вывода, определяющих выбор конкретных вариантов параметров.
Рассмотрим один из первых предложенных алгоритмов.
Алгоритм Мамдани (Mamdani)
Алгоритм Мамдани является одним из первых, который нашел
применение в системах нечеткого вывода. Он был предложен в
1975 г. английским математиком Е. Мамдани (Ebrahim Mamdani) в
качестве метода для управления паровым двигателем. Формально
алгоритм Мамдани может быть определен следующим образом:
1. Формирование базы правил систем нечеткого вывода.
2. Фаззификация входных переменных.
3. Агрегирование подусловий в нечетких правилах продукций.
4. Дефаззификация выходных переменных.
Формирование базы правил
Фаззификация входных переменных
Агрегирование предусловий
Активизация подзаключений
Аккумулирование подзаключений
Рис. 5. Диаграмма деятельности процесса нечеткого вывода в форме
диаграммы деятельности языка UML
14
4. Порядок выполнения работы
Рассмотрим основные этапы проектирования систем типа Мамдани на примере создания системы нечеткого логического вывода, моделирующей зависимость y = x12sin(x2–1), x1∈[–7;3], x2∈
[–4.4;1.7]. Проектирование системы нечеткого логического вывода
будем проводить на основе графического изображения указанной
зависимости. Для построения трехмерного изображения функции
y = x12sin(x2–1) в области x1∈[–7;3], x2∈[–4.4;1.7] составим следующую программу:
%Построение графика функции y = x1^2*sin(x2-1)
%в области x1є[-7,3] и x2є[-4.4,1.7].
n = 15; %количество точек дискретизации
x1 = -7:10/(n-1):3;
x2 = -4.4:6.1/(n-1):1.7;
y = zeros(n,n);
for j = 1:n
y(j,:) = x1.^2*sin(x2(j)-1);
end
surf(x1,x2,y)
xlabel(‘x1’)
ylabel(‘x2’)
zlabel(‘y’)
title(‘Искомая зависимость’);
Поверхности, приведенной на рис. 6, поставим в соответствие
следующие семь нечетких правил:
1) ЕСЛИ х1 = «низкий» И х2 = «низкий», ТО у = «высокий»;
2) ЕСЛИ х1 = «низкий» И х2 = «средний», ТО у = «низкий»;
3) ЕСЛИ х1 = «низкий» И х2 = «высокий», ТО у = «высокий»;
4) ЕСЛИ х1 = «средний», ТО у = «средний»;
5) ЕСЛИ х1 = «высокий» И х2 = «низкий», ТО у = «выше среднего»;
6) ЕСЛИ х1 = «высокий» И х2 = «средний», ТО у = «ниже среднего»;
7) ЕСЛИ х1 = «высокий» И х2 = «высокий», ТО y = «выше среднего».
В результате выполнения программы получим графическое
изображение, показанное на рис. 6.
Проектирование системы нечеткого логического вывода, соответствующей приведенному графику, состоит в выполнении следующей последовательности шагов.
15
Рис. 6. График функции y = x12sin(x2–1)
Шаг 1. Для загрузки основного fis-редактора напечатаем слова
fuzzy в командной строке. После этого откроется нового графическое окно (рис. 7).
Шаг 2. Добавим вторую входную переменную. Для этого в меню
Edit выбираем команду Add input.
Шаг 3. Переименуем первую входную переменную. Для этого
сделаем один щелчок левой кнопкой мыши на блоке input1, введем
новое обозначение x1 в поле редактирования имени текущей переменной и нажмем <Enter>.
Шаг 4. Переименуем вторую входную переменную. Для этого
сделаем один щелчок левой кнопкой мыши на блоке input2, введем
новое обозначение x2 в поле редактирования имени текущей переменной и нажмем <Enter>.
Шаг 5. Переименуем выходную переменную. Для этого сделаем
один щелчок левой кнопкой мыши на блоке output1, введем новое
обозначение y в поле редактирования имени текущей переменной и
нажмем <Enter>.
Шаг 6. Зададим имя системы. Для этого в меню File выбираем в
подменю Export команду To disk и вводим имя файла, например,
first.
16
Меню позволяет
загружать, сохранять
и редактировать
системы нечеткого
логического вывода
Двойной щелчок
позволяет открыть
редактор функций
принадлежности
Двойной щелчок
открывает редактор
базы знаний
Имя системы
нечеткого
логического
вывода . Для
изменения имени
используйте
команду
Save as...
Меню
позволяет
устанавливать
параметры
нечеткой
системы
Имя системы,
количество
входных и
выходных
переменных и
количество
правил
Диапазон
изменения текущей
переменной
Поле редактирования
имени текущей
переменной
Рис. 7. Окно редактора FIS-Editor
Шаг 7. Перейдем в редактор функций принадлежности. Для этого сделаем двойной щелчок левой кнопкой мыши на блоке x1.
Шаг 8. Зададим диапазон изменения переменной x1. Для этого
напечатаем -7 3 в поле Range и нажмем <Enter>.
Шаг 9. Зададим функции принадлежности переменной x1. Для
лингвистической оценки этой переменной будем использовать три
терма с треугольными функциями принадлежности. Для этого
в меню Edit выберем команду Add MFs... В результате появиться
диалоговое окно выбора типа и количества функций принадлежностей. По умолчанию это три терма с треугольными функциями
принадлежности. Поэтому просто нажимаем <Enter>.
Шаг 10. Зададим наименования термов переменной x1. Для этого делаем один щелчок левой кнопкой мыши по графику первой
функции принадлежности (рис. 8). Затем вводим наименование
17
терма, например, Низкий, в поле Name и нажмем <Enter>. Делаем один щелчок левой кнопкой мыши по графику второй функции
принадлежности и вводим наименование терма, например, Средний, в поле Name и нажмем <Enter>. Еще раз делаем один щелчок
левой кнопкой мыши по графику третьей функции принадлежности и вводим наименование терма, например, Высокий, в поле Name
и нажмем <Enter>. В результате получим графическое окно, изображенное на рис. 8.
Шаг 11. Зададим функции принадлежности переменной x2. Для
лингвистической оценки этой переменной будем использовать пять
термов с гауссовыми функциями принадлежности. Для этого активизируем переменную x2 с помощью щелчка левой кнопки мыши
на блоке x2. Зададим диапазон изменения переменной x2. Для этого напечатаем – 4.4 1.7 в поле Range (рис. 9) и нажмем <Enter>.
Затем в меню Edit выберем команду Add MFs.... В появившимся
диалоговом окне выбираем тип функции принадлежности gaussmf
в поле MF type и пять термов в поле Number of MFs. После этого
нажимаем <Enter>.
Шаг 12. По аналогии с шагом 10 зададим следующие наименования термов переменной x2: Низкий, Ниже среднего, Средний,
Рис. 8. Функции принадлежности переменной x1
18
Выше среднего, Высокий. В результате получим графическое окно,
изображенное на рис. 9.
Шаг 13. Зададим функции принадлежности переменной y. Для
лингвистической оценки этой переменной будем использовать пять
термов с треугольными функциями принадлежности. Для этого активизируем переменную y с помощью щелчка левой кнопки мыши
на блоке y. Зададим диапазон изменения переменной y. Для этого
напечатаем –50 50 в поле Range (рис. 9) и нажмем <Enter>.Затем
в меню Edit выберем команду Add MFs.... В появившемся диалоговом окне выбираем пять термов в поле Number of MFs. После этого
нажимаем <Enter>.
Шаг 14. По аналогии с шагом 10 зададим следующие наименования термов переменной y: Низкий, Ниже среднего, Средний,
Выше среднего, Высокий. В результате получим графическое окно,
изображенное на рис. 10.
Шаг 15. Перейдем в редактор базы знаний RuleEditor. Для этого
выберем в меню Edit выберем команду Edit rules....
Шаг 16. Для ввода правила выбираем в меню соответствующую
комбинацию термов и нажимаем кнопку Add rule. На рис. 11 изоб-
Рис. 9. Функции принадлежности переменной x2
19
Рис. 10.Функции принадлежности переменной y
Рис. 11.База знаний в RuleEditor
20
Рис. 12.Визуализация нечеткого логического вывода в RuleViewer
Рис. 13.Поверхность «входы-выход» в окне SurfaceViewer
21
ражено окно редактора базы знаний после ввода всех семи правил.
В конце правил в скобках указаны весовые коэффициенты.
Шаг 17. Сохраним созданную систему. Для этого в меню File выбираем в подменю Export команду To disk.
На рис. 12 приведено окно визуализации нечеткого логического вывода. Это окно активизируется командой View rules... меню
View. В поле Input указываются значения входных переменных,
для которых выполняется логический вывод.
На рис. 13 приведена поверхность «входы-выход», соответствующая синтезированной нечеткой системе. Для вывода этого окна
необходимо использовать команду View surface... меню View.
Сравнивая поверхности на рис. 6 и 13, можно сделать вывод, что
нечеткие правила достаточно хорошо описывают сложную нелинейную зависимость.
5. Оформление отчета
Отчет по лабораторной работе выполняется в рукописном виде.
Отчет должен содержать:
– структуру системы Мамдани;
– состав нечеткой базы знаний;
– искомую поверхность «входы-выход» в пространстве координат.
Контрольные вопросы
1. Структура нечетких правил в нечеткой базе знаний.
2. Состав и назначение системы нечеткого вывода.
3. Сущность методов дефаззификации.
4. Выражения функций принадлежности для нечетких логических операций.
5. Операции над нечеткими числами и их свойства.
Рекомендуемая литература
1. Штовба С. Д. Проектирование нечетких систем средствами
MATLAB. М.: Горячая линия-Телеком, 2007. 288 с.
2. Рутковский Д., Пилиньский М., Рутковский Л. Нейронные
сети, генетические алгоритмы и нечеткие системы. М.: Горячая линия-Телеком, 2004.
22
Лабораторная работа № 3
НЕЧЕТКАЯ МОДЕЛЬ ОЦЕНИВАНИЯ
ФИНАНСОВОЙ СОСТОЯТЕЛЬНОСТИ КЛИЕНТОВ
Цель работы: построить нечеткую модель оценивания финансовой состоятельности клиентов.
1. Методические указания
Данная задача была сформулирована и решена в рамках исследования, выполненного фирмой INFORMGmbH [1], являющейся
разработчиком программного средства fuzzyTECH. Этот пример
позволяет не только познакомиться с особенностями разработки
реальных приложений, но может служить в качестве тестового
при выполнении сравнительного анализа различных программных
средств нечеткого моделирования [1].
Содержательная постановка задачи оценивания
финансовой состоятельности клиентов
Суть рассматриваемой задачи заключается в следующем [1].
При выдаче долгосрочных кредитов на строительство зданий или
коттеджей под залог недвижимости для оценки состоятельности
клиентов банками традиционно используется метод экспертных
оценок. При этом целью банков является получение максимальной
прибыли от заключенных сделок по предоставлению кредитов и
исключение возможности финансовых потерь. Поэтому интересы
банков сосредоточены, с одной стороны, на увеличении количества успешных сделок, а с другой стороны, на избежании неудачных
сделок, когда клиент не возвращает выданный кредит или возвращает его не вовремя.
Традиционно основанием для принятия решений по предоставлению кредитов в будущем служит опыт успешных сделок, совершенных в прошлом. Руководство Home&Savings Bank, в интересах
которого выполнялось соответствующее исследование, хотело бы
обобщить правила предоставления кредитов с целью максимально
полно использовать опыт экспертов. При этом необходимо исключить возможные ошибки субъективного характера со стороны отдельных менеджеров в случае неадекватного оценивания финансовой
состоятельности клиентов.
Анализ стратегии предоставления кредитов на строительство
зданий показывает, что для оценивания финансовой состоятель23
ности клиентов могут быть использованы различные характеристики. К числу таких характеристик относятся: месторасположение
строящегося здания, качество предполагаемого выполнения отделочных работ; оценка активов потенциального клиента; оценка
дохода потенциального клиента за вычетом фиксированных расходов; величина подлежащих уплате процентов по кредиту. При этом
собственно финансовая состоятельность клиента оценивается его
кредитоспособностью.
Одной из первых формальных моделей, предложенных для решения данной задачи, являлась статистическая модель, основанная на вероятностной интерпретации количественной оценки положительного решения о предоставлении кредита. Однако более
детальный анализ этой модели со временем показал ее неадекватность, связанную с недостаточным объемом статистической выборки и изменяющимися с течением времени условиями предоставления кредитов.
Именно по этой причине была предложена идея разработки нечеткой модели для оценивания финансовой состоятельности клиентов с целью принятия решений о предоставлении долгосрочных
кредитов. При этом в качестве нечеткой модели используется система нечеткого вывода со следующими входными и выходными переменными.
Содержательная интерпретация нечеткой модели предполагает выбор и спецификацию входных и выходных переменных соответствующей системы нечеткого вывода. При этом в нечеткой
модели предполагается использовать пять входных переменных и
одну выходную переменную. В качестве первой входной переменной используется оценка месторасположения имеющегося здания,
которая непосредственно оценивает проект строящегося здания,
принимая во внимание размещение здания в том или ином конкретном городе или регионе. Очевидно, чем выше эта оценка, тем более ликвидным представляется проект в случае его реализации на
рынке недвижимости.
В качестве второй входной переменной используется качество
предполагаемого выполнения отделочных работ, согласно архитектурному проекту строящегося здания. Эта переменная вносит
дополнительный элемент в оценку стоимости строящегося здания.
В качестве третьей входной переменной используется оценка
активов, которая используется для оценки имущества или авуаров
в случае несостоятельности потенциального клиента при невозвращении взятого кредита. Действительно, величина предоставляе24
мого кредита должна основываться не только на учете стоимости
строящегося здания, но и на собственной капитализации клиента.
В качестве четвертой входной переменной используется оценка
дохода потенциального клиента за вычетом фиксированных расходов, которая также используется в случае несостоятельности
потенциального клиента при невозвращении им взятого кредита.
Чем выше значение этой переменной, тем более успешным является предоставление кредита клиенту.
В качестве пятой входной переменной используется величина
подлежащих уплате процентов, согласно предполагаемому плану
выплат по взятому кредиту. Эта переменная связана со сроком предоставления кредита и его величиной, позволяя объединить в себе
соответствующие характеристики кредита. Чем выше величина
выплат по процентам, тем более высокими должны быть значения
активов и доходов для положительного решения о предоставлении
кредита потенциальному клиенту.
В качестве выходной переменной используется оценка кредитоспособности, которая является основой для принятия решения
руководством банка по предоставлению кредита потенциальным
клиентам. При этом решение о предоставлении кредита руководством банка принимается только в случае высокой оценки исходной
переменной. Для анализа финансовой состоятельности потенциальных клиентов руководство применяет следующие эвристические правила:
1. Если величина дохода низкая и величина выплат средняя, то
кредитоспособность очень низкая.
2. Если величина дохода низкая и величина выплат высокая, то
кредитоспособность очень низкая.
3. Если величина дохода средняя и величина выплат высокая, то
кредитоспособность очень низкая.
4. Если активы низкие и величина дохода низкая, то кредитоспособность очень низкая.
5. Если активы низкие и величина дохода средняя, то кредитоспособность очень низкая.
6. Если активы средние и величина дохода низкая, то кредитоспособность очень низкая.
7. Если качество отделки плохое, активы низкие и величина дохода высокая, то кредитоспособность очень низкая.
8. Если качество отделки плохое, активы средние и величина дохода средняя, то кредитоспособность очень низкая.
9. Если качество отделки плохое, активы высокие и величина
дохода низкая, то кредитоспособность очень низкая.
25
10. Если качество отделки плохое, активы высокие и величина
дохода средняя, то кредитоспособность очень низкая.
11. Если местоположение непрестижное, качество отделки хорошее, активы низшие и величина дохода высокая, то кредитоспособность средняя.
12. Если местоположение непрестижное, качество отделки прекрасное, активы низкие и величина дохода высокая, то кредитоспособность средняя.
13. Если местоположение престижное, качество отделки хорошее, активы низкие и величина дохода высокая, то кредитоспособность средняя.
14. Если местоположение очень престижное, качество отделки
хорошее, активы низкие и величина дохода высокая, то кредитоспособность средняя.
15. Если местоположение непрестижное, качество отделки хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
16. Если местоположение непрестижное, качество отделки прекрасное, активы средние и величина дохода средняя, то кредитоспособность средняя.
17. Если местоположение престижное, качество отделки хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
18. Если местоположение очень престижное, качество отделки
хорошее, активы средние и величина дохода средняя, то кредитоспособность средняя.
19. Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
20. Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода низкая, то кредитоспособность средняя.
21. Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
22. Если местоположение очень престижное, качество отделки
хорошее, активы высокие и величина дохода низкая, то кредитоспособность средняя.
23. Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
26
24. Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода средняя, то кредитоспособность средняя.
25. Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
26. Если местоположение очень престижное, качество отделки
хорошее, активы высокие и величина дохода средняя, то кредитоспособность средняя.
27. Если местоположение престижное, качество отделки прекрасное, активы средние и величина дохода высокая, то кредитоспособность очень высокая,
28. Если местоположение престижное, качество отделки прекрасное, активы высокие и величина дохода высокая, то кредитоспособность очень высокая.
29. Если местоположение очень престижное, качество отделки
прекрасное, активы средние и величина дохода высокая, то кредитоспособность очень высокая.
30. Если местоположение очень престижное, качество отделки
прекрасное, активы высокие и величина дохода высокая, то кредитоспособность очень высокая.
31. Если местоположение непрестижное, качество отделки хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
32. Если местоположение непрестижное, качество отделки прекрасное, активы средние и величина дохода высокая, то кредитоспособность высокая.
33. Если местоположение престижное, качество отделки хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
34. Если местоположение очень престижное, качество отделки
хорошее, активы средние и величина дохода высокая, то кредитоспособность высокая.
35. Если местоположение непрестижное, качество отделки хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
36. Если местоположение непрестижное, качество отделки прекрасное, активы высокие и величина дохода высокая, то кредитоспособность высокая.
37. Если местоположение престижное, качество отделки хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
27
38. Если местоположение очень престижное, качество отделки
хорошее, активы высокие и величина дохода высокая, то кредитоспособность высокая.
39. Если местоположение престижное, качество отделки прекрасное, то кредитоспособность высокая.
40. Если местоположение очень престижное, качество отделки
прекрасное, то кредитоспособность высокая.
После рассмотрения содержательной постановки задачи можно
приступить к построению ее нечеткой модели в форме соответствующей системы нечеткого вывода. Для этой цели воспользуемся рассмотренными ранее графическими средствами пакета Fuzzy Logic
Toolbox системы MATLAB.
Нечеткая модель оценивания финансовой
состоятельности клиентов
При построении нечеткой модели оценки финансовой состоятельности потенциальных клиентов было сделано предположение
о том, что все рассматриваемые переменные измеряются в баллах в
интервале действительных чисел от 0 до 10. При этом самая низкая
оценка значения каждой из переменных является 0, а самой высокой – 10.
Фаззификация входных и выходных переменных
В качестве терм-множества первой входной переменной «Местоположение» (Location) будем использовать множество Т1 = {«непрестижное», «престижное», «очень престижное»} или в символическом виде Т1 = {PS, PM, РВ} с функциями принадлежности термов,
изображенными на рис. 14.
В качестве терм-множества второй входной переменной «Отделка» (Work-thip) будем использовать аналогичное множество Т2 =
{«плохая», «хорошая», «прекрасная») или в символическом виде
Т2 = {PS, PM, РВ} с функциями принадлежности термов, изображенными на рис 15.
В качестве терм-множества третьей лингвистической переменной «Активы» (Asset) будем использовать множество Т3 = {«низкие», «средние», «высокие»} или символическом виде Т3 = {PS,
PM, РВ} с функциями принадлежности термов, изображенными на
рис. 16.
В качестве терм-множества четвертой лингвистической переменной «Доход» (Income) будем использовать аналогичное множество Т4 = {«низкий», «средний» «высокий»} или в символическом
28
Рис. 14.Графики функций принадлежности для термов лингвистической переменных «Местоположение»
Рис. 15.Графики функций принадлежности для термов лингвистической переменных «Отделка»
виде Т4 = {PS, РМ, РВ} с функциями принадлежности термов, изображенными на рис. 17.
В качестве терм-множества пятой лингвистической переменной
«Выплаты» (Interest) будем использовать аналогичное множество
29
Рис. 16.Графики функций принадлежности для термов лингвистической переменной «Активы», измеряемой в баллах
Рис. 17.Графики функций принадлежности для термов лингвистической переменной «Доход», измеряемой в баллах
Т5 = {«низкие», «средние», «высокие»} или в символическом виде
Т5 = {PS, РМ, РВ} с функциями принадлежности термов, изображенными на рис. 18.
В качестве терм-множества выходной лингвистической переменной «Кредитоспособность» (Credit) будем использовать множество
30
Рис. 18.Графики функций принадлежности для термов лингвистической переменной «Выплаты», измеряемой в баллах
Рис. 19.Графики функций принадлежности для термов лингвистической переменной «Выплаты», измеряемой в баллах
Т6 = {«очень низкая», «низкая», «средняя», «высокая», «очень высокая»} или в символическом виде Т6 = {NВ, NS, Z, PS, РВ} с функциями принадлежности термов, изображенными рис. 19.
31
Формирование базы правил систем нечеткого вывода
Следующим этапом построения модели является построение
базы правил. Для этой цели будем использовать 40 правил нечетких продукций, которые удобно представить в виде следующей
табл. 1.
Таблица 1. Правила нечетких продукций для рассматриваемой системы нечеткого вывода
№ п/п
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
32
Местоположение
PS
PS
РМ
РВ
PS
PS
РМ
РВ
PS
PS
РМ
РВ
PS
PS
РМ
РВ
РМ
РМ
РВ
РВ
Отделка
PS
PS
PS
PS
РМ
РВ
РМ
РМ
РМ
РВ
РМ
РМ
РМ
РВ
РМ
РМ
РМ
РВ
РМ
РМ
РВ
РВ
РВ
РВ
Активы
Доход
Выплаты
РМ
PB
PB
PS
PS
РМ
PS
РМ
РВ
РВ
PS
PS
PS
PS
РМ
РМ
РМ
РМ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РМ
РВ
РМ
РВ
PS
PS
РМ
PS
РМ
PS
РВ
РМ
PS
РМ
РВ
РВ
РВ
РВ
РМ
РМ
РМ
РМ
PS
PS
PS
PS
РМ
РМ
РМ
РМ
РВ
РВ
РВ
РВ
Кредитоспособность
NB
NB
NB
NB
NB
NB.
NB
NB
NB
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
Z
РВ
РВ
РВ
РВ
Окончание табл. 1
№ п/п
Местоположение
Отделка
Активы
Доход
31
32
33
34
35
36
37
38
39
40
PS
PS
РМ
РВ
PS
PS
РМ
РВ
РМ
РВ
РМ
РВ
РМ
РМ
РМ
РВ
РМ
РМ
РВ
РВ
РМ
РМ
РМ
РМ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
РВ
Выплаты
Кредитоспособность
PS
PS
PS
PS
PS
PS
PS
PS
PS
PS
В качестве схемы нечеткого вывода будем использовать метод
Мамдани, поэтому методом активации будет MIN. Далее необходимо определить методы агрегирования подусловий. Поскольку во
всех шагах 1–40 в качестве логической связки для подусловий применяется только нечеткая конъюнкция (операция И), то в качестве
метода агрегирования будем использовать операцию min-конъюнкции. Для аккумуляции заключений правил будем использовать метод max-дизъюнкции, который также применяется в случае схемы
нечеткого вывода методом Мамдани. Наконец, в качестве метода
дефаззификации будем использовать метод центра тяжести.
Построение нечеткой модели средствами
Fuzzy Logic Toolbox и анализ полученных результатов
Разработку нечеткой модели (назовем ее mortgage) будем выполнять с использованием графических средств системы MATLAB.
С этой целью в редакторе FIS делим пять входных переменных с
именами: «Местоположение» (β1), «Отделка» (β2), «Активы» (β3),
«Доход» (β4), «Выплаты» (β5) и одну выходную переменную с именем «Кредитоспособность» (β6).
Вид графического интерфейса редактора FIS для этих переменных изображен на рис. 20.
Для решения поставленной задачи нечеткого моделирования
будем использовать систему нечеткого вывода типа Мамдани. Оставим без изменения параметры разрабатываемой нечеткой модели,
предложенные системой MATLAB по умолчанию, а именно, логические операции (min – для нечеткого логического И, max – для
нечеткого логического ИЛИ), метод импликации (min), метод агрегирования (max) и метод дефаззификации (centroid).
33
Рис. 20.Графический интерфейс редактора FIS после определения
входных и выходной переменных системы нечеткого вывода
mortgage
Далее следует определить функции принадлежности термов
для каждой из пяти входных переменных и одной выходной переменной рассматриваемой системы нечеткого вывода. Для этой
цели воспользуемся редактором функций принадлежности системы MATLAB. Будем использовать типы функций принадлежности
и соответствующие численные значения их параметров, которые
изображены на рис. 14–19. Графический интерфейс редактора
функций принадлежности для выходной переменной «Кредитоспособность» изображен на рис. 21. Далее зададим 40 правил для разрабатываемой системы нечеткого вывода (табл. 1). Для этой цели
воспользуемся редактором правил системы MATLAB. Вид графического интерфейса редактора правил после задания всех 40 правил нечеткого вывода изображен на рис. 22. Поскольку в рабочем
окне отображаются не все переменные нечеткой модели, для управления режимом отображения переменных правил следует воспользоваться специальными кнопками >> и <<, расположенными
в нижней правой части редактора правил.
34
Рис. 21.Графический интерфейс редактора функций принадлежности
для выходной переменной «кредитоспособность»
Рис. 22.Графический интерфейс редактора правил после задания базы
правил системы нечеткого вывода mortgage
35
Теперь можно выполнить анализ построенной системы нечеткого вывода для рассматриваемой задачи оценки финансовой состоятельности клиент.
С этой целью откроем окно просмотра правил системы MATLAB.
Введем значения входных переменных для частного случая, когда:
1. Значение входной переменной «Местоположение» оценивается в 8 баллов.
2. Значение входной переменной «Отделка» также оценивается
в 8 баллов.
3. Значение входной переменной «Активы» оценивается в 9 баллов.
4. Значение входной переменной «Доход» оценивается в 9 баллов.
5. Значение входной переменной «Выплаты» оценивается в 5
баллов.
Это достаточно высокие оценки входных переменных, которые
даже на интуитивном уровне свидетельствуют в пользу соответствующего клиента. Процедура нечеткого вывода, выполненная
системой MATLAB для разработанной нечеткой модели, выдает в
результате значение выходной переменной «Кредитоспособность»,
равное 7,75 балла (рис. 23). Это достаточно высокая оценка финансовой состоятельности потенциального клиента, которое может служить основанием для положительного решения со стороны
банка о предоставлении кредита под залог. Как можно заключить,
данный вывод полностью согласуется с ранее высказанными интуитивными соображениями.
Далее выполним анализ построенной системы нечеткого вывода
для второго варианта исходных данных с более низкими оценками
значений входных переменных. С этой целью изменим значения
входных переменных следующим образом: значение входной переменной «Местоположение» оценим в 3 балла, значение входной
переменной «Отделка» оценим в 5 баллов, значение входной переменной «Активы» оценим в 4 балла, значение входной переменной
«Доход» оценим в 4 балла, и, наконец, значение входной переменной «Выплаты» оценим в 2 балла.
Процедура нечеткого вывода, выполненная системой MATLAB,
выдает в результате значение выходной переменной «Кредитоспособность», равное 3,42 балла (рис. 24). Это достаточно низкая оценка финансовой состоятельности потенциального клиента, которое
может служить основанием для отрицательного решения со стороны банка о предоставлении кредита под залог. Как можно заклю36
Рис. 23.Графический интерфейс программы просмотра правил после выполнения процедуры нечеткого вывода для первого варианта значений входных переменных
Рис. 24.Графический интерфейс программы просмотра правил после
выполнения процедуры нечеткого вывода для второго варианта
значений входных переменных
37
чить в этом случае, данный вывод также согласуется с интуитивными соображениями на этот счет.
Сравнение результатов нечеткого вывода для двух рассмотренных вариантов значений входных переменных показывает, что
граничное значение выходной переменной «Кредитоспособность»,
которое влияет на решение о предоставлении кредита, может быть
выбрано в пределах 5 баллов.
Для более тонкой настройки построенной нечеткой модели необходимо дополнить ее конкретными методиками балльной оценки
отдельных количественных значений входных и выходных лингвистических переменных. Поскольку такие методики в значительной степени зависят от рассматриваемой проблемной области, от
сложившейся на данный момент рыночной конъюнктуры и имеют
частный характер для конкретного банка, здесь они не рассматриваются.
Для общего анализа разработанной нечеткой модели также может оказаться полезной визуализация соответствующей поверхности нечеткого вывода (рис. 25).
Рис. 25.Визуализация поверхности нечеткого вывода рассматриваемой
модели для входных переменных «Местоположение» и «Отделка»
38
Данная поверхность нечеткого вывода позволяет установить зависимость значений выходной переменной от значений отдельных
входных переменных нечеткой модели. Анализ этих зависимостей
может служить основанием для изменения функций принадлежности входных переменных или нечетких правил с целью повышения адекватности системы нечеткого вывода для конкретных стратегий банков.
Несмотря на адекватность полученных результатов анализа,
разработчики этой нечеткой модели отмечают несколько упрощенный характер по сравнению с реально используемой моделью
в процессе принятия решений руководством банка. В то же время
рассмотренная нечеткая модель обладает достаточно высокой адекватностью, что обуславливает ее успешное применение в практике
финансовых операций банка Home&Savings Bank.
2. Порядок выполнения работы
В соответствии с предложенным алгоритмом построить нечеткую систему оценивания финансовой состоятельности клиента.
3. Оформление отчета
Отчет по лабораторной работе выполняется в рукописном виде.
Отчет должен содержать:
– структуру реализованной системы;
– состав нечеткой базы знаний;
– искомую поверхность «входы - выход» в пространстве координат;
– выводы.
Контрольные вопросы
1. С помощью какого модуля можно вывести график зависимости выходной переменной от входных переменных.
2. Чем отличается нечеткий вывод Сугено от нечеткого вывода
Мамдани.
3. Какие существуют структуры нечетких правил.
4. Что понимается под сечением нечеткого отношения.
5. Свойства матрицы парных сравнений.
Рекомендуемая литература
1. Леоненков А. В. Нечеткое моделирование в среде MATLAB и
fuzzyTech. СПб.: БХВ-Петербург, 2005. С. 464–479.
39
Лабораторная работа № 4
НЕЧЕТКАЯ СИСТЕМА ДЛЯ АНАЛИЗА
И ПРОГНОЗИРОВАНИЯ ВАЛЮТНЫХ ЦЕН
НА ФИНАНСОВОМ РЫНКЕ
Цель работы: построить нечеткую систему анализа и прогнозирования валютных цен на финансовом рынке.
1. Методические указания
Постановка задачи формулируется следующим образом [6]: необходимо, зная динамику изменения курсовой стоимости продажи
некоторой валюты за фиксированный интервал времени, предсказать динамику ее курсовой стоимости на определенный момент
времени в будущем. Следует отметить, что характерной особенностью динамики изменения курса (тренда) является наличие двух
основных тенденций в колебаниях соответствующих цен. С одной
стороны, наблюдается общее долгосрочное повышение курсовой
стоимости, связанное с величиной инфляции. С другой стороны,
наблюдается краткосрочное колебание цен, связанное с целым рядом случайных факторов, адекватное представление которых в той
или иной формальной модели вряд ли возможно.
Традиционно для решения данной задачи применяются различные модели технического анализа, основанные на использовании
различных индикаторов. В то же самое время наличие неявных
тенденций в динамике изменения курсовой стоимости позволяет
применить модель адаптивных нейро-нечетких сетей. В качестве
исходных данных воспользуемся, например, информацией о динамике по валюте евро (EUR) за некоторый временной интервал.
Возьмем значения курсовой стоимости EUR за 1 ед. в период с 11.
08. 2007 по 12. 10. 07, данная информация приведена в табл. 2.
Таблица 2. Динамика стоимости EUR с 11.08.2007 по 12.10.2007
40
Дата
Курс евро
Дата
Курс евро
11.08.2007
14.08.2007
15.08.2007
16.08.2007
17.08.2007
18.08.2007
21.08.2007
34.8808
34.8325
34.7413
34.5813
34.5480
34.5502
34.7372
13.09.2007
14.09.2007
15.09.2007
18.09.2007
19.09.2007
20.09.2007
21.09.2007
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
Окончание табл. 2
Дата
Курс евро
Дата
Курс евро
22.08.2007
23.08.2007
24.08.2007
25.08.2007
28.08.2007
29.08.2007
30.08.2007
31.08.2007
01.09.2007
04.09.2007
05.09.2007
06.09.2007
07.09.2007
08.09.2007
11.09.2007
12.09.2007
34.8259
34.8511
34.8377
34.9344
35.0773
35.0006
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
22.09.2007
25.09.2007
26.09.2007
27.09.2007
28.09.2007
29.09.2007
02.10.2007
03.10.2007
04.10.2007
05.10.2007
06.10.2007
09.10.2007
10.10.2007
11.10.2007
12.10.2007
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.2837
35.2693
35.1788
35.2652
35.3414
Предположим, что нечеткая модель гибридной сети будет содержать четыре входных переменных. При этом первая входная переменная будет соответствовать курсу EUR на текущий банковский
день, вторая – курсу EUR на предыдущий банковский день, т. е.
на день (i–1), где через i обозначен текущий банковский день. Тогда третья входная переменная будет соответствовать курсу EUR на
(i–2) банковский день, а четвертая – курсу EUR на (i–З) банковский
день. Соответствующие обучающие данные сведены в табл. 3.
Таблица 3. Обучающие данные для построения модели гибридной сети
Первая
входная
переменная
Вторая
входная
переменная
Третья
входная
переменная
Четвертая
входная
переменная
Выходная
переменная
34.5813
34.5480
34.5502
34.7372
34.8259
34.8511
34.8377
34.9344
35.0773
34.7413
34.5813
34.5480
34.5502
34.7372
34.8259
34.8511
34.8377
34.9344
34.8325
34.7413
34.5813
34.5480
34.5502
34.7372
34.8259
34.8511
34.8377
34.8808
34.8325
34.7413
34.5813
34.5480
34.5502
34.7372
34.8259
34.8511
34.5480
34.5502
34.7372
34.8259
34.8511
34.8377
34.9344
35.0773
35.0006
41
Окончание табл. 3
Первая
входная
переменная
Вторая
входная
переменная
Третья
входная
переменная
Четвертая
входная
переменная
Выходная
переменная
35.0006
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.2837
35.2693
35.1788
35.0773
35.0006
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.2837
35.2693
34.9344
35.0773
35.0006
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.2837
34.8377
34.9344
35.0773
35.0006
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.0042
35.0114
35.0233
34.9221
34.8571
34.8951
35.0210
35.0848
35.2366
35.1857
35.2223
35.2309
35.1674
35.1358
35.1010
35.2135
35.2188
35.3186
35.3088
35.2193
35.2954
35.3261
35.3457
35.4443
35.3712
35.3428
35.2531
35.2837
35.2693
35.1788
35.2652
Для большего удобства подготовки соответствующего файла с
обучающими данными целесообразно воспользоваться редактором
электронных таблиц MSExcel, обладающим возможностью копирования содержимого ряда ячеек.
42
Сохраним обучающую выборку во внешнем файле под именем
euro.dat. После этого откроем редактор ANFIS, в который загрузим этот файл с обучающими данными. Внешний вид редактора
ANFIS с загруженными обучающими данными изображен на рис.
26. Перед генерацией структуры системы нечеткого вывода типа
Сугено после вызова диалогового окна свойств зададим для каждой
из входных переменных по три лингвистических терма, а в качестве типа их функций принадлежности выберем треугольные функции (установленные системой MATLAB по умолчанию). В качестве
типа функции принадлежности выходной переменной зададим линейную функцию рис. 27.
Для обучения гибридной сети воспользуемся гибридным методом обучения с уровнем ошибки 0, а количество циклов обучения
зададим равным 15. После окончания обучения данной гибридной
сети может быть выполнен анализ графика ошибки обучения (рис.
28), который показывает, что обучение практически закончилось
на 15 цикле.
Рис. 26.Графический интерфейс редактора ANFIS после загрузки обучающих данных
43
Рис. 27.Диалоговое окно для задания количества и типа функций принадлежности
Рис. 28.График зависимости ошибки обучения от количества циклов
обучения
44
Рис. 29.Структура сгенерированной системы нечеткого вывода
После обучения гибридной сети можно визуально оценить
структуру построенной нечеткой модели (рис. 29). Очевидно, графическая наглядность данной модели оставляет желать лучшего,
поскольку общее количество правил в разработанной адаптивной
системе нейро-нечеткого вывода равно 81, что затрудняет их визуальный контроль и оценку.
С помощью графических средств системы MATLAB можно выполнить контроль и настройку параметров функций принадлежности входных переменных и правил нечетких продукций. Для
выполнения соответствующих операций можно воспользоваться
редактором функций принадлежности (рис. 30). Однако до проверки адекватности построенной нечеткой модели оставим все параметры функций принадлежности без изменений.
Выполним проверку адекватности построенной нечеткой модели
гибридной сети. Для этой цели сделаем ретроспективный прогноз
значения курсовой стоимости EUR на следующий банковский день,
например, на 12 октября 2007, считая для этого текущим банковским днем 11 октября 2007. Поскольку точность количественных
значений, обеспечиваемая графическими средствами пакета Fuzzy
Logic Toolbox, является недостаточной для решения данной зада45
Рис. 30.Графический интерфейс редактора функций принадлежности
для построенной системы нечеткого вывода для проверки первой
входной переменной
чи, воспользуемся функцией командной строки evalfis. В качестве
аргументов этой функции укажем вектор значений курсовой стоимости EUR на текущий и три предшествующих банковских дня.
Полный формат вызова этой функции будет следующим:
>> out = evalfis([35.2652 35.1788 35.2693 35.2837],fis)
где out – условное имя выходной переменной; fis – имя структуры:
out = 35.2947
После выполнения этой команды с помощью разработанной
нечеткой модели получено значение выходной переменной для
12.10.07, равное 35.2947. Сравнивая полученное значение с соответствующим значением из табл. 2, можно констатировать, что
был получен достаточно хороший прогноз.
Таким образом, проверка построенной нечеткой модели гибридной сети показывает достаточно высокую степень ее адекватности
реальным исходным данным.
46
2. Порядок выполнения работы
На основе исходных данных построить нечеткую систему гибридной сети. При решении задачи прогнозирования стоимости валюты возможно использование исходных данных о курсовой стоимости любой валюты и за любой период при условии возможности
ретроспективного прогноза.
3. Оформление отчета
Отчет по лабораторной работе выполняется в рукописном виде.
Отчет должен содержать:
– структуру реализованной системы;
– состав нечеткой базы знаний;
– искомую поверхность «входы-выход» в пространстве координат;
– выводы.
Рекомендуемая литература
1. Леоненков А. В. Нечеткое моделирование в среде MATLAB и
fuzzyTech. СПб.: БХВ-Петербург, 2005. С. 479–487.
2. http://matlab.exponenta.ru\fuzzylogic\index.asp.htm
3. http:sedok.narod.ru/index.html – электронный вариант книги
Недосекина А. О. Нечетко-множественный анализ риска фондовых
инвестиций. СПб.: Сезам, 2002. 181 с.
47
Лабораторная работа № 5
РАБОТА С ТОЧЕЧНЫМИ, МНОГОМЕРНЫМИ ДАННЫМИ
В СИСТЕМЕ MATLAB
Цель работы: освоить основные особенности работы с m-файлами, ознакомиться с возможностями построения графиков; научиться работать с многомерными данными в системах MATLAB
и INTLAB.
1. Деловая графика в системе MATLAB
Деловая графика используется для визуализации результатов
экономических, статистических и социологических исследований
(столбиковые, круговые, плоские, объемные диаграммы). Библиотека графических функций MATLAB содержит: bar, barh, bar3,
bar3h, pie, pie3, area (рис. 31 и 32).
Для построения графика функции y = f(x), достаточно сформировать два вектора одинаковой размерности – вектор значений аргументов (x) и вектор значений функции (y):
plot (x, y);
plot (x1,y1,x2,y2).
4
3.5
3
2.5
2
1.5
1
0.5
0
1
2
3
Рис. 31. Пример столбиковой диаграммы, построенной в системе MATLAB
48
Рис. 32.Пример построения нескольких графиков в одном графическом
окне
hold on – блокирование режима создания нового графического
окна.
П р и м е р���
2:
��
>> y = [1 2 4]
>> y = [1;2;4]
>> bar(y)
П р и м е р 3:
>> subplot(2,2,2);bar(y);bar3(y)
2. Основные действия над точечными матрицами в системе
MATLAB
По умолчанию все числовые переменные в MATLAB считаются
матрицами. Скалярная величина есть матрица первого порядка,
а векторы являются матрицами, состоящими из одного столбца.
Матрицу можно ввести, задавая элементы матрицы или считывая
данные из файла, а также в результате обращения к стандартной
или написанной пользователем функции. Элементы матрицы в
пределах строки отделяются пробелами или запятыми.
[ ] – квадратные скобки используются при задании матриц и
векторов;
49
пробел – служит для разделения элементов матриц;
, – запятая применяется для разделения элементов матриц и
операторов в строке ввода;
; – точка с запятой отделяет строки матриц, а точка с запятой в
конце оператора (команды) отменяет вывод результата на экран;
: – двоеточие используется для указания диапазона (интервала
изменения величины) и в качестве знака групповой операции над
элементами матриц;
() – круглые скобки применяются для задания порядка выполнения математических операций, а также для указания аргументов функций и индексов матриц;
. – точка отделяет дробную часть числа от целой его части, а также применяется в составе комбинированных знаков;
… – три точки и более в конце строки отмечают продолжение выражения на следующей строке;
% – знак процента обозначает начало комментария.
MATLAB имеет четыре функции, которые создают основные
матрицы:
– zeros все нули;
– ones все единицы;
– rand равномерное распределение случайных элементов;
– randn нормальное распределение случайных элементов.
Ниже будут представлены основные команды линейной алгебры.
Знаки операций:
+,– – символы плюс и минус обозначают знак числа или операцию сложения или вычитания матриц, причем матрицы должны
быть одной размерности;
• – знак умножения обозначает матричное умножение;
‘ – апостроф обозначает операцию транспонирования (вместе с
комплексным сопряжением);
/ – левое деление;
\ – правое деление;
^ – оператор возведения в степень.
3. Основные действия над интервальными матрицами
Современный интервальный анализ и интервальные методы
первоначально возникли как средство автоматического учета ошибок округлений при счете на ЭВМ с конечной точностью представления чисел. Однако идеи, положенные в основу этого научного направления, оказались гораздо шире чисто «округленческих» при50
ложений. Интервальные подходы и модели получили чрезвычайно
плодотворное применение как язык описания некоторого особого
класса неопределенностей так называемых ограниченных по амплитуде неопределенностей (соответствующие английские термины
– bounded disturbances, bounded error approach и т. п.).
Интервалом [a,b] вещественной оси R называется множество
всех чисел расположенных между a и b, включая сами эти числа a
и b, т. е.
[a,b]:={x∈ Ra ≤ x ≤ b }.
При этом a и b называются концами интервала [a,b], левым и
правым соответственно [9].
Универсальная вычислительная система INTLAB представляет
собой интервальное расширение для универсальной вычислительной системы MATLAB, поддерживающая операции с действительными и комплексными интервалами, интервальными матрицами и
векторами. Универсальная вычислительная система INTLAB позволяет производить все действия интервальной арифметики для
интервальных чисел и матриц.
Установка системы INTLAB
Папка INTLAB должна быть скопирована в каталог matlabroot\
toolbox\. Для того чтобы воспользоваться функциями системы
INTLAB, необходимо запустить файл startintlab:
tempDirection = matlabroot
v = cd(uigetdir(strcat(tempDirection,’\toolbox\’),’MATLAB Toolbox
Directory’))
startintlab;
cd(v);
Ниже представлены некоторые операторы системы INTLAB:
1. x = infsup(a,b) – создает интервал x с нижней и верхней границами, равными a,b соответственно, т. е. x = [a,b].
2. X = infsup(A,B) – создает интервальную матрицу X, границы
элементов которой представляются элементами матриц A и B, соответственно, т. е. xij = [aij,bij].
3. X = inf(A) – создает точечную матрицу X, составленную из
нижних границ элементов интервальной матрицы A, т. е. x ij =aij .
4. X = sup(A) – создает точечную матрицу X, составленную из
верхних границ элементов интервальной матрицы A, т. е. x ij =aij .
5. X = mid(A) – создает точечную матрицу X, составленную из
центров элементов интервальной матрицы A, т. е. xij = mid(A(i,j)).
51
6. X = rad(A) – создает точечную матрицу X, составленную из
радиусов элементов интервальной матрицы A, т. е. xij = rad(A(i,j)).
7. intvalinit(‘DisplayInfSup’) – переключает представление интервалов по нижней и верхней границам.
Арифметические операции с интервальными числами и матрицами имеют синтаксис, аналогичный синтаксису MATLAB.
Сингулярное разложение интервальной матрицы осуществляется при помощи градиентного алгоритма [10], файл mainIntSingVal.
p. Для того чтобы получить сингулярное разложение интервальной
матрицы, необходимо ознакомиться с документацией данной функции (например, при помощи команды help mainIntSingVal), вызвать
данную функцию, передавая ей соответствующие параметры.
4. Многомерные матрицы (массивы)
Система MATLAB позволяет вводить матрицы динамической
размерности, пример задания трехмерной матрицы представлен
ниже.
П р и м е р 4:
>> F = 5*ones(3,3,2)
F(:,:,1) =
555
555
555
F(:,:,2) =
555
555
555
Сумма многомерных матриц равна:
Cii2 ...i p = Aii2 ...i p + Bii2 ...i p (i,i2,...,i p = ,2,...,n).
Операция нахождения суммы двух данных p-мерных матриц одного и того же порядка называется сложением этих матриц: A+B = C.
Операция сложения многомерных матриц обладает коммутативным
и ассоциативным свойствами:
A+B = B+A, (A+B)+C = A+(B+C),
где A, B, C – любые матрицы одного и того же числа измерений и
одного и того же порядка.
Произведением матрицы A на число t называется матрица
Bii2 ...i p = tA ii2 ...i p (i,i2,...,i p = ,2,...,n).
52
Таким образом, имеем: tA = B. В частности, если t = 1 или t = 0,
то 1A = A, 0A = 0. Из определения умножения многомерной матрицы на число вытекают следующие свойства этой операции:
t(A+B) = tA+tB,(t+u)A = tA+uA,t(uA) = (tu)A,
где A и B – произвольные матрицы одного и того же числа измерений
и одного и того же порядка над полем P, а t и u – числа из поля P.
5. Сингулярное разложение многомерной матрицы
Можно представить произвольную исходную многомерную матрицу через компоненты сингулярного разложения в виде
A = s1Z1BX1Y1T+ s2Z2BX2Y2T+…+ sPZPBXPYPT,
где
si = XiTAYiZiB, YiTYi = 1, XiTXi = 1, ZiTBZiB = 1, i = 1,2,…p,
p – ранг матрицы; s1≥ s2≥ s3≥ … ≥ sp≥0 – ранжированные сингулярные числа матрицы A; Yi,Xi,Zi – соответственно, нормированные
левый, правый и глубинный сингулярные векторы [3].
При помощи следующей сходящейся итеративной процедуры
можно вычислить сингулярные векторы Y, X, Z

, 
X ( p +) 


Y
( p +) 
Y(Bp +) = Z (Tp ) A TB X ( p +); Y( p +) =
,,
Y( p +) 

Z

p
+
(
)
Z (Bp +) = X (Tp +) AY( p +); Z ( p +) =
,
Z ( p +) 

X (Bp +) =
Z (Tp ) A BY( p ); X ( p +) =
X ( p +)
где p = 0,1,2… номер итерации;  – выбранная норма. При этом для
любого p = 0,1,2… выполняется равенство:
spZB = XpTApYp.
После вычисления максимального сингулярного числа и соответствующих сингулярных векторов формируется соответствующая многомерная матрица
A(1) = A-s1Z1BX1Y1T
для которой с использованием вышеприведенной вычислительной
процедуры определяются максимальное сингулярное число и соответствующие сингулярные векторы.
53
Эти же итерации используются и для матрицы A(p), равной
A(p) = A-s1Z1BX1Y1T-…-spZpBXpYpT.
Рассмотрим на примере сингулярное разложение заданной трехмерной матрицы.
П р и м е р 5:
Пусть задана исходная двухмерная матрица вида
0,2 0,5 2 ,8 2,5
A= 2
4 0,3 ,5 3 4,2 .
,2 2,3 3 2, 5
Для определения максимального сингулярного числа матрицы
A, правого, левого и глубинного сингулярных векторов использована вышеприведенная итеративная процедура. В результате вычисления получены следующие результаты:
0,36
0,42
0,53
s* = 9,57; X = 0,67 ; Y = 0,57 ; Z =
.
0,85
0,65
0,7
Первая компонента в разложении равна:
0,76 ,04 ,27 ,23 ,67 2,05
sZB XYT = ,43 ,94 2,38 2,29 3, 3,82 .
,39 ,88 2,3 2,22 3,0 3,7
Сформируем вспомогательную матрицу A2 = A1-s1Z1BX1Y1T:
0,24 −0,84 −0,77 0,77 0,3 0,45
A2 = 0,57 2,06 −2,08 −0,79 −0, 0,38 .
−0,9 0,42 0,69 −0,2 −2,0 ,3
Аналогично предыдущему случаю, вычисляем соответствующие максимальное сингулярное число, правый, левый и глубинный сингулярные векторы матрицы A2:
− 0,2
− 0,34
−0,8
s2* = 2,08; X2 = 0,3 ; Y2 = −0,44 ; Z 2 =
.
0,98
0,93
0,83
С учетом найденных сингулярных компонент их произведение
равно
0,03 0,04 −0,07 0,5
0,9 −0,36
s2Z 2B X2Y2T = −0,04 −0,05 0,09 −0,2 −0,28 0,52 .
−0,2 −0,5 0,28 −0,65 −0,84 ,58
54
Аналогично предыдущему сформируем вспомогательную матрицу A3 = A2-s2Z2BX2Y2T которая имеет вид
0,2 −0,88 −0,7 0,62 −0,06 0,8
A3 = 0,6
2, −2,7 −0,58 0,7 −0,4 .
− 0,07 0,57 0,4 0,53 −,7 −0,28
Сингулярное разложение многомерной матрицы осуществляется при помощи описанного выше алгоритма, представлено в файле mainSVD3d.p. Для того чтобы получить сингулярное разложение многомерной матрицы, необходимо ознакомиться с документацией данной функции (например, при помощи команды help
mainSVD3d), вызвать данную функцию, передавая ей соответствующие параметры.
6. Порядок выполнения работы
1. Задать векторы X и Y, построить 4 диаграммы 4 различных видов
с маркировкой осей x и y, с нанесением сетки и различных цветов.
2. Создать скрипт-файл, с помощью которого по заданному вектору X построить вектор Y. Построить график, сохранить в файл.
3. Создать функцию, вычисляющую сумму, в которой присутствует факториал.
4.Создать функцию вычисления суммы до бесконечности. Вычисление суммы прекращается, когда значение разности следующего слагаемого и предыдущего меньше 0,1∧15 (значение слагаемого мало, мы им пренебрегаем).
5. Написать функцию, выполняющую следующие действия: задавать интервальную матрицу A, вычислить произведение двух интервальных матриц; сумму, разность, двух интервальных матриц,
произведение матриц на число, сохранить в скрипт.
6. Получить сингулярное разложение интервальной и многомерной матриц.
7. Оформление отчета
В отчете представляются файлы с программами и результаты
вычислений.
Контрольные вопросы
1. Структура системы MATLAB.
2. Особенности работы с m-файлами.
3. Свойства интервальных и многомерных вычислений.
55
Рекомендуемая литература
1. Шарый С. П. Конечномерный интервальный анализ. Новосибирск: ВТ, 2008.
2. Соколова С. П., Тохтабаев А. Г. Вычислительная процедура определения интервальных сингулярных чисел интервальной
действительной матрицы //Тр. XIII Байкальской международной
школы-семинара «Методы оптимизации и их приложения». Иркутск: ИСЭМ СО РАН, 2005. Т. 4. С. 66–71.
3. Соколова С. П., Зиямов Т. П., Абрамов Б. А., Абдуллина В. З.
Интеллектуальный анализ многомерных данных на основе иммунокомпьютинга. Алматы: Институт проблем информатики и управления, 2005.
56
Лабораторная работа № 6
ПОСТРОЕНИЕ ИНТЕЛЛЕКТУАЛЬНОГО МОДУЛЯ
СИМУЛЯТОРА ДЛЯ АНАЛИЗА ДИНАМИКИ ФОНДОВОГО
РЫНКА
Цель работы: построить интеллектуальный модуль симулятора
для анализа динамики фондового рынка на основе «японских свечей» и подхода иммунокомпьютинга.
1. Технический анализ в оценке динамики фондового рынка
Технический анализ в целом можно определить как метод прогнозирования цены, основанный на статистических, а не на экономических выкладках. Согласно определению Дж. Мерфи, технический анализ – это исследование динамики рынка, чаще всего
посредством графиков, с целью прогнозирования будущего направления движения цен. Термин «динамика рынка» включает в себя
три основных источника информации, находящихся в распоряжении технического аналитика: цену, объем и открытый интерес.
В основе технического анализа лежат три постулата:
Аксиома 1. Движения рынка учитывают все.
Аксиома 2. Движение цен подчинено тенденциям.
Аксиома 3. История повторяется. С точки зрения технического
анализа, понимание будущего лежит в изучении прошлого [1, 2].
В противоположность классическому техническому анализу
Вильямс [2] опроверг постулат о повторяющейся истории и утверждает, что рынок является продуктом массовой психологии и
объединением фрактальных структур индивидуальных трейдеров.
Это означает, что рынок создается турбулентной коллективной
деятельностью и является нелинейным явлением. Все товарные
рынки создаются людьми, чьи мнения расходятся относительно
ценности, но есть согласие в цене. Возникающий на рынках хаос
является более высокой формой порядка, где случайность и бессистемные импульсы становятся организующим принципом скорее,
чем более традиционные причинно-следственные отношения.
Мандельброт Б.Б., Пригожин И. и другие ученые обнаружили,
что на границе между конфликтами противоположных сил стоит
не рождение хаотических структур, как считалось ранее, а происходит спонтанное возникновение самоорганизации более высокого
порядка. Более того, структура этой самоорганизации не структу-
57
рирована, а является новым видом организации: она не статична, а
находится внутри движения и роста.
Теория динамического хаоса построена на противопоставлении
хаотичности и стохастичности. Хаотические ряды только выглядят случайными, но, как детерминированный динамический процесс, вполне допускают краткосрочное прогнозирование. Область
возможных предсказаний ограничена по времени горизонтом прогнозирования, но этого может оказаться достаточно для получения
реального дохода от предсказаний. И тот, кто обладает лучшими
математическими методами извлечения закономерностей из зашумленных хаотических рядов, может надеяться на большую норму прибыли [1, 2].
Зачастую детерминированные и вероятностные модели оказываются малоэффективными для решения задачи прогнозирования
рынка, это связано с тем, что расчет модели требует больших временных и вычислительных затрат. Вероятностные технологии также обладают существенными недостатками при решении практических задач. Статистические методы хорошо развиты только для
одномерных случайных величин. Если же мы хотим учитывать для
прогнозирования курса акций несколько взаимосвязанных факторов (например, объем сделок, курс валюты и т. д.), то придется
обратиться к построению многомерной статистической модели. Однако такие модели либо предполагают гауссовское распределение
наблюдений (что не выполняется на практике), либо не обоснованы
теоретически. Из-за описанных выше недостатков традиционных
методик в течение последних 10 лет идет активное развитие аналитических систем нового типа: в их основе лежат технологии искусственного интеллекта, имитирующие природные процессы, такие как деятельность нейронов мозга (нейрокомпьютинг), процесс
естественного отбора (генетические алгоритмы) или механизмы
защиты иммунной системы (иммунокомпьютинг). Наиболее популярными технологиями в настоящее время являются нейронные
сети и генетические алгоритмы. Первые коммерческие реализации
на их основе появились в 80-х гг. Из-за способности работать с быстро меняющимися нечеткими, неопределенными или недостаточными данными, нейронные сети стали важным методом прогнозирования фондового рынка [3]. Преимущество использования нейронных сетей для решения экономических задач по сравнению с
классическими методами, не включающими методики искусственного интеллекта, подтверждено в многочисленных приложениях
и исследованиях. Использование подхода нейронных сетей имеет
ряд неоспоримых преимуществ:
58
– нейросетевой анализ не предполагает никаких ограничений
на характер входной информации. Это могут быть как индикаторы данного временного ряда, так и сведения о поведении других
рыночных инструментов. Недаром нейросети активно используют
именно институциональные инвесторы (например, крупные пенсионные фонды), работающие с большими портфелями, для которых
особенно важны корреляции между различными рынками;
– нейросети способны находить оптимальные для данного инструмента индикаторы и строить по ним оптимальную для данного
ряда стратегию предсказания, которые могут быть адаптивными,
меняясь вместе с рынком.
Тем не менее подход нейронных сетей имеет ряд недостатков,
среди которых можно выделить следующие: большую размерность
сети, использование для моделирования лишь исходных данных
без привлечения априорных соображений, непрозрачность процедуры получения и интерпретации результата и т. д.
Подход иммунокомпьютинга, основанный на математических
моделях и вычислительных процедурах биологического прототипа
иммунной сети, понятиях формального протеина и формальной иммунной сети (ФИС) [4, 5], продемонстрировал мощные и робастные
возможности обработки больших массивов информации при решении сложных прикладных задач. С использованием этого подхода
эффективно решено значительное количество прикладных задач:
информационная безопасность компьютерных сетей, мониторинг
сложной биологической системы (на примере проблемы чумы), интеллектуальные системы охраны и т. д.
2. Симулятор для оценивания динамики фондового рынка
Графики изменения динамики ценных бумаг могут представляться различным образом в виде непрерывной кривой, баров,
«японских свечей» и т. д. Графики в виде «японских свечей» отображают динамику особым способом с указанием связи между ценой открытия и ценой закрытия за выбранный период времени.
Каждый период изображается в виде «свечи», состоящей из «тела»
и «теней». Тело свечи изображает цены открытия или закрытия
(или цену открытия и последнюю цену), а тени изображают максимальную и минимальную цену, если они находятся за пределами
цен открытия и закрытия. Кроме того, свеча дает визуальное представление об относительном изменении акции за определенный
период: если цена закрытия или последняя цена ниже, чем цена
открытия, то тело свечи закрашивается черным. Если цена закры59
тия или последняя цена выше, чем цена открытия, то тело свечи
остается белым.
Рассмотрим выбранный график изменения динамики акции
Газпрома RTKM (ММВБ) за месяц, формализованный в виде «японских свечей» с указанием объемов торгуемой акции (использована
информация с сайта www.rbc.ru), который приведен на рис. 33.
В качестве индикаторов были выбраны следующие показатели:
интервал изменения стоимости акции за торговую сессию (минимальная и максимальная цена), цена открытия, цена закрытия и
объем продаж. Значения индикаторов приведены в табл. 4. Отметим, что индикатор изменения стоимости акции за торговую сессию является интервальной величиной.
Для оценивания динамики фондового рынка на основе «японских
свечей» и фракталов, а также подхода иммунокомпьютинга предложена следующая структура симулятора, приведенная на рис. 34.
Структура симулятора включает четыре блока:
– блок исходной информации;
– блок обучения;
– блок распознавания;
– блок интерпретации полученных результатов.
Рис. 33.Динамика акций Газпрома (ММВБ) c 09.01.07 по 28.02.07
60
Таблица 4. Динамика акций Ростелеком (ММВБ) c 09.01.07 по 28.02.07
Значения индикаторов
Время
Интервальная
величина, изменения стоимости акции, дол.
Цена
открытия,
дол.
Цена
закрытия,
дол.
Объем
продаж,
10 тыс. шт.
09.01.2007
[194.55, 205.5]
196
198.5
372.5975
10.01.2007
[185.5, 199]
198.61
192.5
526.9448
11.01.2007
[186.07, 198.35]
190.13
194.75
312.2067
12.01.2007
[192.5, 196.49]
195.13
194.25
180.4179
15.01.2007
[194.6, 199.75]
196
198.8
200.9812
16.01.2007
[195.88, 201.07]
198.88
196.5
279.9821
17.01.2007
[192.04, 198]
197
195
189.0774
18.01.2007
[193.58, 198.3]
195.5
196.24
166.7424
19.01.2007
[194.6, 198.89]
195
197.01
96.1627
22.01.2007
[198.1, 199.92]
199
199
95.8795
23.01.2007
[198.5, 203.7]
198.95
202.15
328.448
24.01.2007
[200.01, 205.65]
205.65
200.89
194.8484
25.01.2007
[199.5, 205.79]
203.34
205.45
315.077
26.01.2007
[201.01, 205]
202.46
203.64
154.8225
29.01.2007
[203.02, 208.99]
204.48
205
288.9951
30.01.2007
[204.3, 207.99]
205.76
207.5
198.3161
31.01.2007
[207.4, 209.9]
208
209.7
160.4682
01.02.2007
[209.88, 215.5]
209.95
212.7
322.6988
02.02.2007
[211.22, 215.99]
214.95
213.65
170.065
05.02.2007
[212, 215.75]
214.64
214.5
142.1791
06.02.2007
[210.12, 214.88]
214.1
212.55
230.9161
07.02.2007
[208.21, 212.8]
212.7
209.43
231.7992
08.02.2007
[206.84, 215.1]
215.1
208.01
168.796
09.02.2007
[207.01, 211]
208.31
208.95
70.242
12.02.2007
[200, 210.98]
210.98
202.22
220.6945
13.02.2007
[201.2, 210]
203.01
209.8
182.4916
14.02.2007
[207.22, 210.4]
209.71
209.03
69.1688
15.02.2007
[208.7, 215]
210.3
214.5
270.0065
61
Окончание табл. 4
Значения индикаторов
16.02.2007
[213.67, 218]
214.87
215.5
166.7172
19.02.2007
[212.12, 215.9]
213.71
214
176.1073
20.02.2007
[211.75, 215.63]
211.75
215
130.4833
21.02.2007
[213.6, 218.55]
214.49
215.25
179.6234
22.02.2007
[213.61, 217.23]
216.14
216.39
119.9617
26.02.2007
[216.01, 220.9]
216.5
219.8
145.66
27.02.2007
[208, 224]
218
210.46
302.0628
[200.16,
211.45]
207
28.02.2007
209.99
301.9925
Симулятор оценки динамики фондового рынка на
основе фракталов и подхода иммунокомпьютинга
Блок исходной
информации
Фидер – сервер
биржевых
котировок
Каналы связи
Фидер – сервер
новостей
Блок обучения
Формирование обучающих
классов
Формирование таблицы
индикаторов на основе
фракталов
Формирование
многомерной таблицы с
различными периодами
наблюдений
Формирование
многомерной
интервальной матрицы
индикаторов
Сингулярное разложение
Блок распознавания
Выбор анализируемой акции
Формирование обучающих
классов
Формирование таблицы
индикаторов на основе
фракталов
Формирование многомерной
таблицы с различными
периодами наблюдений
Формирование многомерной
интервальной матрицы
индикаторов
Сингулярное разложение
Решение задачи
классификации
Решение задачи
кластеризации
Блок интерпретации полученных
результатов
Рис. 34.Структура симулятора
Совокупность блоков: обучения и распознавания представляют
собой интеллектуальный модуль симулятора. Рассмотрим подробно функции интеллектуальный модуль симулятора.
Назначением блока Обучения является формирование обучающих
классов с использованием комбинаций «японских свечей» и подхода
иммунокомпьютинга. В блок Обучения входят следующие модели.
62
Формирование обучающих классов
Ниже представлены некоторые комбинации японских свечей, которые были использованы при формировании обучающих классов.
Класс 1: башня (tower) – существует вершина и основание «башня». Башенная вершина – модель разворота восходящей тенденции – состоит из высокой белой свечи, за которой следует область
застоя, а затем одна или несколько длинных черных свечей. В этой
модели по обе стороны области застоя вырисовываются контуры башен. Башенное основание – это модель разворота нисходящей тенденции. После длинной черной свечи цены некоторое время колеблются в горизонтальной полосе. Затем происходит резкий подъем в
виде одной или нескольких белых свечей.
Класс 2: звезда (star) – маленькое тело (т. е. волчок), образующее разрыв относительно предшествующего длинного тела. Звезда
указывает на ослабление предшествующей ей тенденции. Иногда
звезду, возникающую вслед за длинной черной свечой при нисходящей тенденции, называют «каплей дождя».
Класс 3: завеса из темных облаков (dark-cloud cover) – «медвежий» сигнал разворота. При восходящей тенденции за длинной белой свечой следует черная свеча с ценой открытия выше максимума предыдущей белой свечи и ценой закрытия ниже середины тела
этой белой свечи.
Формирование таблицы индикаторов на основе
«японские свечи»
Графики выбранной акции и сформированные таблицы индикаторов за период (1 год, 6 мес., 3 мес.) приведены на рис. 35–40.
Формирование многомерной таблицы
с различными периодами наблюдений
Совместная работа в средах MATLAB и MS Excel. Надстройка excllink.xla реализует совместную работу в среде MATLAB и MS
Excel. Для связи инструментариев MATLAB и MS Excel определен
ряд функций.
Конфигурирование MS Excel. Перед тем как настраивать MS
Excel на совместную работу с MATLAB, следует убедиться, что MS
Excel Link входит в установленную версию MATLAB. В подкаталоге exlink основного каталога MATLAB или подкаталога toolbox должен находиться файл с надстройкой excllink.xla.
Запустите MS Excel. В меню Сервис выберите пункт Надстройки. Открывается диалоговое окно, содержащее информацию о доступных в данный момент надстройках.
63
Рис. 35.График акций Газпрома за 1 год
Рис. 36. Таблица индикаторов
64
Рис. 37.График акций Газпрома за 6 мес.
Рис. 38.Таблица индикаторов
65
Рис. 39.График акций Газпрома за 3 мес.
Рис. 40.Таблица индикаторов
66
Используя кнопку Обзор, укажите путь к файлу excllink.xla. В
списке надстройки диалогового окна появилась строка MS Excel
Link с установленным флагом. Нажмите ОК, требуемая надстройка
добавлена в MS Excel.
Следует обратить внимание, что в MS Excel присутствует панель
инструментов MS Excel Link, содержащая кнопки: startmatlab,
putmatrix, getmatrix, evalstring. Данные кнопки реализуют основные действия, требуемые для осуществления взаимосвязи между
MS Excel и MATLAB – обмен матричными данными и выполнение
команд MATLAB из среды MS Excel. При повторных запусках MS
Excel надстройка excellink.xla подключается автоматически. Избежать подключения надстройки можно сбросом соответствующего
флага в диалоговом окне Надстройки.
Обмен данными между MATLAB и MS Excel. Убедитесь, что
подключена надстройка MS Excel Link, затем выделите на листе
необходимые ячейки (для отделения десятичных знаков должна
использоваться запятая) и нажмите кнопку putmatrix, появляется
диалоговое меню со строкой ввода, предназначенной для определения имени переменной рабочей среды MATLAB, в которую следует
экспортировать данные из выделенных ячеек MS Excel.
Для импорта данных выделите ячейку, нажмите кнопку
getmatrix, появится окно со строкой ввода, в которой необходимо
указать имя импортируемой переменной в MS Excel. Для импорта
матрицы достаточно указать одну ячейку, которая будет являться
верхним левым элементом импортируемого массива. Остальные
элементы запишутся в ячейки листа согласно размерам массива.
Функции MS Excel Link. Всего в MS Excel Link определено тринадцать функций, распадающихся на две категории: функции для
обмена данными между MATLAB и MS Excel и функции, предназначенные для установления связи между приложениями. Данные
функции могут вызываться как из ячеек рабочего листа книги MS
Excel, так и из приложений на VBA [7].
Формирование многомерной интервальной
матрицы индикаторов
На основе вышеприведенных плоских интервальных матриц с различными периодами наблюдения формируется интервальная многомерная матрица индикаторов (OLAP-куб), показанная на рис. 41.
3. Порядок выполнения работы
1. Выбрать
���������������������������������������������������
анализируемую акцию из предложенного списка
67
2. Сформировать
���������������������������������
таблицы индикаторов.
3. Сформировать
�������������������������������������������������������
интервальную многомерную таблицу с различными периодами наблюдений.
4. Получить
������������������������������������������������������
сингулярное разложение плоских и многомерной
интервальных матриц [7].
5. ����������������������������������������������������������
Решить задачи обучения с экспертом и самообучения на основе подхода иммунокомпьютинга.
6. Представить
�������������������������������������������������������
результаты решения вышеперечисленных задач
и дать интерпретацию полученных результатов.
Контрольные вопросы
1. Аксиомы технического анализа.
2. Какие блоки входят в структуру симулятора для анализа динамики фондового рынка?
3. Какие задачи технического анализа решаются с помощью интеллектуального модуля симулятора?
Рис. 41.Многомерная интервальная матрица индикаторов
68
Рекомендуемая литература
1. Эрлих А. Прогнозы цен: технический анализ, или история повторяется. http://www.trader-lib.ru/ (по состоянию на 15.03.2007).
2. Вильямс Б. Торговый хаос. Экспертные методики максимизации прибыли. М.: ИК Аналитика, 2000. С. 35–36.
3. Trippi R. R., DeSieno D. Trading Equity Index Futures with a
Neural Network //The Journal of Portfolio Management. 1992. P.
27–33.
4. Tarakanov A. O., Skormin V. A., Sokolova S. P. Immunocomputing:
Principles and Applications. N.Y.: Springer, 2003. 193 p.
5. Соколова С. П., Соколова Л. А. Интеллектуальные информационные системы на основе иммунокомпьютинга: учебное пособие.
Алматы: КБТУ, 2005.
6. Кузьмина Е. А. Градиентный алгоритм сингулярного разложения многомерной матрицы //Сб. докл. Научная сессия ГУАП,
СПб. Ч. 3. 2007.
7. Ануфриев И. Е., Смирнов А. Б., Смирнов Е. Н. MATLAB 7. СПб.:
БХВ-Петербург, 2005.
69
Содержание
Лабораторная работа № 1. Работа в системе matlab............... 3
Лабораторная работа № 2. Проектирование нечетких систем
средствами системы MATLAB............................................... 7
Лабораторная работа № 3. Нечеткая модель оценивания
финансовой состоятельности клиентов...................................23
Лабораторная работа № 4. Нечеткая система для анализа и
прогнозирования валютных цен на финансовом рынке.............40
Лабораторная работа № 5. Работа с точечными, многомерными данными в системе MATLAB........................................48
Лабораторная работа № 6. Построение интеллектуального
модуля симулятора для анализа динамики фондового рынка....57
70
Документ
Категория
Без категории
Просмотров
7
Размер файла
1 450 Кб
Теги
sokolov, lab, analiz, mnogomer, intel, dan, rab
1/--страниц
Пожаловаться на содержимое документа