Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011 МР Имитационное моделирование Кабанов Кужель.doc
Скачиваний:
66
Добавлен:
15.03.2016
Размер:
496.13 Кб
Скачать

3. Технологии моделирования

Базой имитационного моделирования являются интеллектуальные информационные технологии (ИИТ):

  1. Системная динамика.

  2. Самоорганизующиеся карты Кохонена (СОК).

  3. Многоагентное моделирование.

  4. Эволюционное программирование.

  5. Date Mining.

  6. Нейронные сети.

  7. Генетические алгоритмы.

  8. Нечеткая логика.

3.1. Основные принципы построения моделей

Построение моделей является универсальным способом изучения окружающего мира. Построение моделей позволяет обнаруживать зависимости, извлекать новые знания, прогнозировать, управлять и решать много других задач.

Особенно важно моделирование сложных систем. Сложная система является наиболее трудной для исследования. Это обусловлено следующими причинами:

1. Закон распределения воздействующих на систему параметров неизвестен, или на его получение требуется потратить значительное количество временных и финансовых ресурсов.

2. Функционирование системы происходит в условиях неопределенности, которую вносит главным образом человеческий и случайный факторы.

3. Переменные системы могут иметь количественно-качественное описание.

Большинство экономических систем относятся к категории сложных.

Перед построением модели следует отталкиваться от задачи. Задачу можно рассматривать как ответ на интересующий исследователя вопрос. Следует провести анализ проблемной ситуации.

После этого провести систематизацию и консолидацию всех доступных ресурсов (материальных, финансовых, информационных), необходимых для построения модели. В случае отсутствия требуемых ресурсов может быть принято решение либо о сужении требований к результатам, либо вообще отказ от построения модели. Здесь встает вопрос о соответствии будущей модели интересующему процессу или системе. Поскольку процесс построения модели носит итерационный характер, в процессе которого она корректируется и уточняется, то нет смысла на сразу требовать высокую точность модели. Гораздо правильнее говорить об адекватности модели.

Первоначальная модель может быть грубой, но адекватной. Адекватность означает, что при построении модели исследователь учел наиболее важные, существенные факторы, влияющие на конечный результат. Можно утверждать, что с ростом количества факторов увеличивается сложность модели.

Итак, основные принципы построения моделей сложных систем, к каким относятся модели экономических процессов:

1. Решение проблемы начинать с построения модели.

2. При анализе отталкиваться от опыта эксперта.

3. Рассматривать проблему под разными углами и комбинировать подходы.

4. Не стремиться к высокой точности модели, а двигаться от более простых и грубых моделей к более сложным и точным.

5. По прошествии времени и накоплению новых сведений нужно повторять цикл моделирования.

3.2. Технологии извлечения знаний

3.2.1. Технология Data Mining

Специфика современных требований к обработке информации (огромный объем данных и их разнородная природа) делает бессильными как статистические, так и экспертные подходы во многих практических областях, в том числе и экономических. Поэтому для анализа информации, накопленной в современных базах данных, методы должны быть эффективными, т.е. простыми в использовании, обладать значительным уровнем масштабируемости и определенным автоматизмом.

Эта концепция лежит в основе технологии Data Mining. Классическое определение технологии «добычи данных» (Data Mining) звучит следующим образом: это обнаружение в исходных («сырых») данных ранее неизвестных, нетривиальных, практически полезных и доступных интерпретации знаний. То есть информация, найденная в процессе применения методов Data Mining, должна быть нетривиальной и ранее неизвестной, например, средние продажи не являются таковыми. Знания должны описывать новые связи между свойствами, предсказывать значения одних признаков на основе других.

Извлечение знаний – это последовательность действий, которую необходимо выполнить для построения модели. Эта последовательность не описывает конкретный алгоритм или математический аппарат и не зависит от предметной области. Это набор операций, комбинируя которые, можно получить нужное решение.

Эта последовательность включает в себя этапы подготовки данных, выбора информативных признаков, очистки данных, применения методов Data Mining, постобработки данных, интерпретации полученных результатов. Сердцем всего этого процесса являются методы Data Mining, позволяющие обнаруживать закономерности и знания.

Кратко рассмотрим этапы построения моделей. Более подробное рассмотрение этапов с анализом возможных затруднений на каждом этапе приведено в подразделе 3.3.

Подготовка исходного набора данных. Этот этап заключается в подготовке набора данных, в том числе из различных источников, выбора значимых параметров и т.д. Для этого должны существовать развитые инструменты доступа к различным источникам данных.

Предобработка данных. Для эффективного применения методов Data Mining следует обратить серьезное внимание на вопросы предобработки данных. Данные могут содержать пропуски, шумы, аномальные значения и т.д. Кроме того, данные могут быть избыточны, недостаточны и т.д. В некоторых задачах требуется дополнить данные некоторой априорной информацией. Ошибочно предполагать, что если подать данные на вход системы в существующем виде, то на выходе будут получены полезные знания. Входные данные должны быть качественны и корректны.

Трансформация и нормализация данных. Этот шаг необходим для тех методов, которые требуют, чтобы исходные данные были в каком-то определенном виде. Дело в том, что различные алгоритмы анализа требуют специальным образом подготовленные данные, например, для прогнозирования необходимо преобразовать временной ряд при помощи скользящего окна или вычисление агрегируемых показателей. К задачам трансформации данных относятся:

  • скользящее окно;

  • приведение типов;

  • выделение временных интервалов;

  • преобразование непрерывных значений в дискретные и наоборот;

  • сортировка, группировка и т.п.

Data Mining. На этом этапе применяются различные алгоритмы для нахождения знаний. Это нейронные сети, деревья решений, алгоритмы кластеризации и установления ассоциаций и др.

Постобработка данных. Интерпретация результатов и применение полученных знаний в бизнес-приложениях.

Например, требуется получить прогноз объемов продаж на следующий месяц. Имеется сеть магазинов розничной торговли. Первым шагом будет сбор истории продаж в каждом магазине и объединение ее в общую выборку данных. Следующим шагом будет предобработка собранных данных: их группировка по месяцам, сглаживание кривой продаж, устранение факторов, слабо влияющих на объемы продаж. Далее следует построить модель зависимости объемов продаж от выбранных факторов. Это можно сделать с помощью линейной регрессии или нейронных сетей. Имея такую модель, можно получить прогноз, подав на вход модели историю продаж. Зная прогнозное значение, его можно использовать, например, в приложениях оптимизации для улучшения логистики.

Одно из главных преимуществ моделей в том, что полученные таким способом знания можно тиражировать, т.е. построенную одним человеком модель могут применять другие, без необходимости понимания методик, при помощи которой эти модели построены. Найденные знания должны быть использованы на новых данных с некоторой степенью достоверности.

Все задачи, решаемые методами Data Mining, можно условно разбить на пять классов[10].

1. Классификация – отнесение объектов (наблюдений, событий) к одному из заранее известных классов. Это делается посредством анализа уже классифицированных объектов и формулирования некоторого набора правил.

2. Кластеризация – это группировка объектов (наблюдений, событий) на основе данных (свойств), описывающих сущность объектов. Объекты внутри кластера должны быть «похожими» друг на друга и отличаться от объектов, вошедших в другие кластеры. Чем больше похожи объекты внутри кластера и чем больше отличий между кластерами, тем точнее кластеризация. Часто применительно к экономическим задачам вместо кластеризации употребляют термин сегментация.

3. Регрессия, в том числе задача прогнозирования. Это установление зависимости непрерывных выходных переменных от входных. К этому же типу задач относится прогнозирование временного ряда на основе исторических данных.

4. Ассоциация – выявление закономерностей между связанными событиями. Примером такой закономерности служит правило, указывающее, что из события X следует событие Y. Такие правила называются ассоциативными. Впервые это задача была предложена для нахождения типичных шаблонов покупок, совершаемых в супермаркетах, поэтому иногда ее еще называют анализом рыночной корзины (market basket analysis).

5. Последовательные шаблоны – установление закономерностей между, связанными во времени событиями.

Для решения вышеперечисленных задач используются различные методы и алгоритмы Data Mining. Data Mining -это не один метод, а совокупность большого числа различных методов обнаружения знаний. Ввиду того, что технология Data Mining развивалась и развивается на стыке таких дисциплин, как математика, статистика, теория информации, машинное обучение, теория баз данных, вполне закономерно, что большинство алгоритмов и методов Data Mining были разработаны на основе различных методов из этих дисциплин.

Теоретически не принципиально, каким именно алгоритмом будет решаться одна из пяти задач Data Mining – главное иметь метод решения для каждого класса задач. На практике же необходимо проверить несколько методов и выбрать наилучшие -для конкретной задачи.

Рассмотрим кратко наиболее известные методы Data Mining.

Деревья решений.

Деревья решений предназначены для решения задач классификации. Иногда используют другие названия метода -деревья классификации, деревья решающих правил. Они создают иерархическую структуру классифицирующих правил типа «если…,то…», имеющую вид дерева.

Чтобы принять решение, к какому классу следует отнести некоторый объект или ситуацию, требуется ответить на вопросы, стоящие в узлах этого дерева, начиная с его корня. Вопросы имеют вид «Значение параметра А больше В?». Если ответ положительный, осуществляется переход к правому узлу следующего уровня; затем снова следует вопрос, связанный с соответствующим узлом и т.д.

Приведенный пример иллюстрирует работу так называемых бинарных деревьев решений, в каждом узле которых, ветвление производится по двум направлениям (т. е. на вопрос, заданный в узле, имеется только два варианта ответов, например «Да» или «Нет»). Однако, в общем случае, ответов а, следовательно, ветвей, выходящих из узла, может быть больше.

Дерево решений состоит из узлов, где производится проверка условия, и листьев – конечных узлов дерева, указывающих на класс (узлов решения).

Качество построенного дерева после обучения можно оценить по нескольким параметрам.

Во-первых, это число распознанных примеров в обучающем и тестовом наборах данных. Чем оно выше, тем качественнее построенное дерево.

Во-вторых, это количество узлов в дереве. При очень большом их числе дерево становится трудным для восприятия. Это также означает очень слабую зависимость выходного поля от входных полей.

Каждое правило характеризуется поддержкой и достоверностью.

Поддержка – общее количество примеров классифицированных данным узлом дерева. Достоверность – количество правильно классифицированных данным узлом примеров. Дерево решений строится по определенному алгоритму.

Нейронные сети.

Искусственные нейронные сети, в частности, многослойный персептрон, решают задачи регрессии и классификации. Однако, в отличие от дерева решений, нейронные сети не способны объяснять выдаваемое решение, поэтому их работа напоминает «черный ящик» со входами и выходами.

Нейронные сети представляют собой вычислительные структуры, моделирующие простые биологические процессы, аналогичные процессам, происходящим в человеческом мозге.

Искусственные нейронные сети – это распределенные и параллельные системы, способные к адаптивному обучению путем реакции на положительные и отрицательные воздействия. В основе их построения лежит элементарный преобразователь, называемый искусственным нейроном или просто нейроном по аналогии с его биологическим прототипом. Существует около 200 типов нейросетей.

Структуру наиболее известного типа нейросети – многослойного персептрона -можно описать следующим образом.

Нейросеть состоит из нескольких слоев: входной, внутренний (скрытый) и выходной слои. Входной слой реализует связь с входными данными, выходной – с выходными. Внутренних слоев может быть от одного и больше. В каждом слое содержится несколько нейронов. Все нейроны соединяются между собой связями, называемые весами.

Перед использованием нейронной сети производится ее обучение, которое представляет собой итерационный процесс настройки весовых коэффициентов. Для обучения применяются специальные алгоритмы. Наибольшее распространение получили градиентные методы обучения – алгоритм обратного распространения ошибки (Back Propagation), сопряженных градиентов и другие.

Для проверки адекватности построенной нейронной сети используется специальный прием - тестовое подтверждение.

Основное достоинство нейронных сетей состоит в том, что они моделируют очень сложные нелинейные зависимости между входными и выходными переменными.

Линейная регрессия.

Линейная регрессия, как это следует из названия, решает задачи регрессии. Но она предназначена только для поиска линейных зависимостей в массивах данных. Если же зависимости нелинейные, то модель с использованием линейной регрессии может быть не построена вообще. Для этого лучше воспользоваться более универсальным методом нахождения зависимостей, например, искусственной нейронной сетью или технологией эволюционного программирования.

Кластерный анализ.

Главное назначение кластерного анализа – разбиение множества исследуемых объектов и признаков на однородные в определенном понимании группы или кластеры. Большое достоинство кластерного анализа в том, что он позволяет производить разбиение объектов не по одному параметру, а по целому набору признаков.

Кластерный анализ в отличие от большинства математико-статистических методов не накладывает никаких ограничений на вид рассматриваемых объектов, и позволяет рассматривать множество исходных данных практически произвольной природы. Это имеет большое значение, например, для прогнозирования конъюнктуры, сегментации, когда показатели имеют разнообразный вид, затрудняющий применение традиционных эконометрических подходов.

Кластерный анализ позволяет рассматривать достаточно большой объем информации и резко сокращать, сжимать большие массивы экономической информации, делать их компактными и наглядными.

В больших массивах данных получил распространение алгоритм k-средних (k-means). Его суть в том, что весь исходный набор примеров разбивается на k классов таким образом, что минимизируется евклидово расстояние между объектами внутри классов и максимизируется евклидово расстояние между классами.

Самоорганизующиеся карты.

Самоорганизующиеся карты (Self Organizing Maps – SOM), или карты Кохонена, так же как и методы кластерного анализа, используются для решения задач кластеризации и сегментирования, например, при экспертизе надёжности систем [11].

Самоорганизующаяся карта является разновидностью нейронной сети. Алгоритм функционирования самоорганизующихся карт представляет собой один из вариантов кластеризации многомерных данных.

В алгоритме SOM все нейроны (узлы, центры классов) упорядочены в некоторую структуру, обычно двумерную сетку. В ходе обучения модифицируется не только нейрон-победитель (нейрон карты, который в наибольшей степени соответствует вектору входов и определяет, к какому классу относится пример), но и его соседи, хотя и в меньшей степени. За счет этого SOM можно считать одним из методов проецирования многомерного пространства в пространство с более низкой размерностью.

При использовании этого алгоритма, векторы близкие на полученной карте, оказываются близки и в исходном пространстве. Одно из достоинств самоорганизующихся карт состоит в том, что для своего построения они не требуют обучения «с учителем» (как например рассмотренный выше персептрон), то есть являются самообучающимися нейронными сетями [12].

Ассоциативные правила.

Ассоциативные правила (association rules) позволяют находить закономерности между связанными событиями. Соответственно, они применимы для решения задач выявления ассоциаций. Примером ассоциативного правила, служит утверждение, что покупатель, приобретающий хлеб, приобретет и молоко с вероятностью 75%. Впервые эта задача была предложена для поиска ассоциативных правил для нахождения типичных шаблонов покупок, совершаемых в супермаркетах, поэтому иногда ее еще называют анализом рыночной корзины (market basket analysis). Ассоциативные правила эффективно используются в сегментации покупателей по поведению при покупках, анализе предпочтений клиентов, планировании расположения товаров в супермаркетах, адресной рассылке в задачах прямого маркетинга.

Сфера применения этих алгоритмов не ограничивается лишь одной торговлей. Их также успешно применяют и в других областях: медицине, для анализа посещений вебстраниц (Web Mining), для анализа текста (Text Mining), для анализа данных по переписи населения, в анализе и прогнозировании сбоев телекоммуникационного оборудования и т.д.

Задачей поиска ассоциативных правил не является выявление всех правил, поскольку часть из них известны аналитикам, другие могут не представлять статистической ценности. Поэтому при поиске вводятся пороги поддержки и достоверности ассоциативных правил. Классическим алгоритмом нахождения ассоциативных правил считается алгоритм APriori.

Последовательные шаблоны.

Последовательные шаблоны (sequential patterns) представляют собой закономерности между связанными во времени событиями. Примером последовательного шаблона является утверждение, что клиент, заключивший договор на страхование имущества, через полгода заключает договор страхования от несчастного случая с вероятностью 70%. Для выявления подобных закономерностей в базе данных кроме самого события должна храниться информация о клиенте и времени события.

Алгоритмы последовательных шаблонов похожи на алгоритмы ассоциативных правил. Распространение получили AprioriAll и AprioriSome.