close

Вход

Забыли?

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

?

Andronov 08735011A9

код для вставкиСкачать
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное автономное образовательное
учреждение высшего профессионального образования
САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
АЭРОКОСМИЧЕСКОГО ПРИБОРОСТРОЕНИЯ
С. А. Андронов
ИНТЕЛЛЕКТУАЛЬНЫЙ
АНАЛИЗ ДАННЫХ
Лабораторный практикум
Санкт-Петербург
2014
УДК 004.8
ББК 32.97
А66
Рецензенты:
доктор технических наук, профессор А. В. Кириченко;
доктор технических наук, профессор Э. А. Пиль
Утверждено
редакционно-издательским советом
в качестве лабораторного практикума
Андронов, С. А.
А66 Интеллектуальный анализ данных: лабораторный практикум / С. А. Андронов. – СПб.: ГУАП, 2014. – 164 с.
ISBN 978-5-8088-0912-3
Программный комплекс Deductor [1] (версия Professional 4.0)
применяется в учебном процессе Санкт-Петербургского государственного университета аэрокосмического приборостроения с 2006 г.
В предлагаемом практикуме рассматриваются теоретические и практические основы использования свободно распространяемой аналитической платформы Deductor Studio Academic 5.2 [7].
Реализованные в Deductor технологии позволяют пройти все этапы построения СППР: от создания хранилища данных до автоматического подбора моделей и визуализации полученных результатов. В
результате выполнения лабораторных работ у студентов формируются навыки создания, наполнения и использования хранилищ данных
для решения задач интеллектуального анализа данных, который нашел широкое применение в различных областях знаний.
Практикум подготовлен на кафедре «Системный анализ и логистика» и предназначен для бакалавров и магистров, изучающих дисциплины, связанные с методами Data Mining, технологиями OnLine
Analytica Processing (OLAP), разработкой и использованием систем
поддержки принятия решений, средствами автоматизации решения
задач системного анализа сложных систем и логистикой. Практикум
также может быть полезен студентам, интересующимся методами интеллектуального анализа данных, а также использован при выполнении курсовых и дипломных работ.
УДК 004.8
ББК 32.97
ISBN 978-5-8088-0912-3 © Санкт-Петербургский государственный
университет аэрокосмического
приборостроения, 2014
© Андронов С. А., 2014
ВВЕДЕНИЕ
Системный анализ (СА) – методология анализа сложных систем (т. е. многоуровневых, многокомпонентных, слабоструктурированных) с целью принятия обоснованных решений. Такие
системы встречаются в различных областях человеческой деятельности и, в первую очередь, в экономике, социологии, медицине, экологии и пр. Необходимость в СА возникает в силу многочисленных неопределенностей, присущих таким системам, и
цель СА – сделать эти неопределенности более обозримыми, чтобы продвинуться в структуризации и перевести систему в разряд
формализованных. Классическим подходом при моделировании
подобных систем традиционно является иерархический подход
как методологический прием расчленения формально описанной
системы на уровни.
Отдельный интерес при СА представляют системы, для анализа
которых в распоряжении системного аналитика имеются данные о
процессе их функционирования. Ярким примером являются логистические системы, в которых источником данных являются потоки (материальные, информационные, финансовые и пр.). Анализ
данных, циркулирующих в цепи поставок, позволяет повысить
качество ее управления. Как правило, данные в названных выше
приложениях, имеют большие объемы и требуют привлечения специальных технологий их обработки (BigDatа).
Данное пособие затрагивает область компьютерной поддержки
при исследовании слабо структурированных систем. Программные
средства такого назначения получили название систем поддержки принятия решений (СППР) или Decision Support System (DSS).
Совместно с пользователем СППР помогает создавать новую информацию для СА и принятия решений на его основе.
Важными компонентами в составе СППР являются аналитические системы, которые позволяют на основе ретроспективных данных, характеризующих оригинал, строить модели и извлекать знания. Специфика современных требований к обработке информации
(большие объемы данных и их разнородная природа) диктуют необходимость разработки эффективных методов анализа информации,
которые должны обладать значительным уровнем масштабируемости и определенным автоматизмом. Это концепция лежит в основе двух современных технологий: Data Mining (DM) и Knowledge
Discovery in Databases (KDD), разрабатываемых на стыке таких
дисциплин, как математика, прикладная статистика, теория
3
информации, машинное обучение, теория баз данных, параллельные вычисления и др.
Названные технологии ориентированы на поиск ценной информации (minig – «добыча полезных ископаемых»), практически полезных закономерностей в больших информационных массивах.
Можно сказать, что методы интеллектуального анализа данных дополняют классические, «ручные» схемы анализа сложных систем,
а СППР на базе DM становятся практическим средством автоматизации решения задач СА на первом его этапе – анализе системы,
что существенно облегчает второй его этап – процесс принятия решения. Совершенно очевидно, что при решении практических задач анализа сложных систем при наличии объемных данных ручные методы системного анализа не работают. Первым шагом следует максимально использовать имеющуюся в наличии информацию
и повысить наглядность ее представления. Классическими приложениями DM являются такие задачи анализа, как поиск ассоциаций, классификация и кластеризация (сегментация, группировка,
самоорганизация). Кластеризацию, в частности, применяют в отсутствии априорных сведений о наличии классов для облегчения
анализа, для сжатия данных, изучения информативности свойств
системы в том случае, когда число объектов и их признаков велико.
Поскольку каждый кластер обрабатывается индивидуально, модель создается для каждого кластера в отдельности. По сути, данная процедура соответствует типовой задаче системного анализа –
задаче декомпозиции, иначе говоря, разложению системы на части
с целью упрощения и повышения наглядности. Примерами кластеризации являются: в бизнесе – сегментация клиентов, совместно
покупаемых продуктов; в социальной сфере – при миграционных
исследованиях; в технической диагностике – при классификации
неисправностей и т. д.
Наиболее распространенными представителями СППР в области интеллектуального анализа данных являются системы Business
Intelligence (BI), например такие, как Cognos BI (корпорация
Cognos), универсальные инструменты, которые включают методы
классификации, кластеризации и предварительной подготовки
данных. К этой группе относятся такие известные коммерческие
инструменты как: Clementine (http://www.spss.com/clementine),
DB Miner 2.0 Enterprise (http://www.dbminer.com), IBM Intelligent
Miner for Data (http://www.ibm.com/software/data/iminer/
fordata/), Oracle Data Miner(http://www.oracle.com/technetwork/
middleware/bi-enterprise-edition/downloads/), SAS Enterprise Miner
4
(http://www.sas.com/) или отечественные: Polyanalyst (http://
www.megaputer.com/), Deductor [7] и др. Обзорные материалы по
коммерческим и свободно распространяемым системам представлены в работе [3]. Наиболее полным пособием по методам и алгоритмам из области автоматического анализа данных и бизнес-аналитики является книга [4].
Сейчас технология Data Mining используется практически во
всех сферах деятельности человека, где накоплены ретроспективные данные. Вот некоторые из них [2,8]:
1. Решение бизнес-задач. Основные направления: банковское
дело, финансы, страхование, CRM, производство, телекоммуникации, электронная коммерция, маркетинг, фондовый рынок [9]
и другие. Так, прогноз остатков на банковских счетах позволяет
оценить ликвидность банка. Для выявления подозрительных операций с кредитными карточками применяются так называемые
«подозрительные стереотипы поведения», выявляемые на основе
транзакций, которые впоследствии являлись мошенническими.
Если применяемый метод DM считает очередную операцию подозрительной, операции с определенной банковской картой блокируются.
2. Решение задач государственного уровня. Основные направления: поиск лиц, уклоняющихся от налогов; борьба с терроризмом
и пр.
3. Научные исследования. Основные направления: медицина,
биология, молекулярная генетика и генная инженерия, биоинформатика, астрономия, прикладная химия и другие. Например, это
может быть анализ влияния различных факторов на среднюю продолжительность жизни населения, в частности от степени концентрации различных химических веществ в выбросах промышленных объектов по регионам.
4. Решение web-задач. Основные направления: поисковые машины (searchengines), счетчики и другие.Text Mining охватывает
новые методы для выполнения семантического анализа текстов,
поиска знаний в тексте, Call Mining объединяет в себе распознавание речи, фонетический анализ, в ходе которого в зависимости от
содержания разговоров формируется статистика телефонных вызовов («добыча» и анализ звонков). Оба подхода позволяют снизить
затраты на обработку информации.
5. Сфера промышленного производства. Технологические процессы, по определению, требуют контроля отклонений от плановых
показателей. Основные задачи DM в промышленном производстве:
5
– комплексный системный анализ производственных ситуаций,
прогноз их развития;
– выработка вариантов оптимизационных решений;
– прогнозирование качества изделия в зависимости от некоторых параметров технологического процесса;
– обнаружение скрытых тенденций и закономерностей развития производственных процессов, обнаружение скрытых факторов
влияния на параметры производства;
– выработка оптимизационных рекомендаций по управлению
производственными процессами и др.
6. Промышленная логистика.
6
ПРИМЕНЕНИЕ DM В ЛОГИСТИКЕ
Существует множество определений логистики и каждый автор делает акцент на особенностях понятия в контексте решаемой
им задачи. Логистику можно понимать узко (некоторые понимают логистику лишь как хранение и доставку, другие – наоборот
очень широко, как основной резерв развития мировой экономики,
основную концепцию развития в мире (все должно быть рассчитано, оптимизировано). На самом деле логистика – это больше не
об оптимизации, как многие считают, а о потоках данных – ценных поставщиков фактов для системного анализа. В основе интегральной логистики, как известно, лежит задача формирования
согласованных сквозных материальных и информационных потоков в логистической цепи поставок от источника возникновения до потребителя. Управление потоками, конечно, подразумевает, что реализовываться оно должно наилучшим образом (что
не обязательно соответствует оптимальности в строгом смысле).
Поскольку внешняя ситуация постоянно меняется, то, что было
вчера оптимальным, – сегодня уже не работает, то, что будет завтра, часто уже невозможно предсказать. Компании надо функционировать в этих постоянно меняющихся условиях, и анализ
данных и оперативный прогноз именно и делает логистическую
систему управляемой.
Применение DM в производственной сфере относится к прерогативе СППР в области промышленной логистики (или operations
management). Соответствующие модули названной СППР позволят
повысить эффективность анализа и прогнозирования в составе систем планирования ресурсов производства(Manufacturing resource
planning – MRP II).
Отечественная аналитическая платформа Deductor (версии от
4.0 и выше) является удачной платформой для создания СППР
в области логистики. Логистические системы, как сложные экономико-социальные системы, безусловно являются предметом СА.
Современные технологии анализа данных, встроенные в Deductor,
позволяют обрабатывать большие массивы, определять скрытые
закономерности и связи между логистическими процессами для
получения непротиворечивой картины организации закупок, сбыта, расчета товарных запасов, прокладки транспортных маршрутов
и многого другого. На базе Deductor можно провести сколь угодно
сложную аналитическую обработку и выявить принципиально новые решения для широкого спектра логистических задач [7]:
7
• Логистическое планирование. Deductor содержит современные алгоритмы прогнозирования, а без прогнозов объема рынка,
поставок в логистических цепях, в том числе с учетом неопределенности, сезонности и прочих факторов, невозможно управлять ЦП и
планировать продажи.
• Оптимизация. Все, что возможно, должно быть оптимизировано. В задачах логистики оптимизировать приходится очень
многое: складские площади, маршрутные сети, страховые запасы
и т. д. Важное направление оптимизации в ЦП – управление запасами. Как известно, эффективность систем управления запасами
можно оценить, сопоставив затраты на ее содержание (затраты на
хранение запасов) и потери от дефицита, затраты на выполнение
заказов и потери от предоставления скидок. Очевидно, что реальные процессы далеки от «нормальных» и необходимо создавать системы управления с постоянным контролем за уровнем запасов и
подачей заказов при достижении точки заказа. Модели управления
запасами поэтому строят исходя из ежедневных данных о расходе,
сроках и объемах поставок. При наличии исторических данных задачу оптимизации можно решить, графически построив требуемую
зависимость (например, прибыль от скидки) с помощью обработчика нейросеть и диаграммы «что если?», а алгоритмы прогнозирования, реализованные в Deductor, позволяют не только найти оптимальные значения, но и выдать рекомендации по оптимизации
закупок с учетом прогноза.
• Анализ рисков. Риски логистических систем, будь то риски
возврата, задержки, сбоя или любые другие, зависят от ряда факторов: начиная от ценовой конъюнктуры и изменения спроса и заканчивая деятельностью конкурентных организаций и стихийными бедствиями.
• Размещение на складе. Современные системы управления
складом – Warehouse Management System (WMS), широко внедряемые в России, располагают ограниченными возможностями аналитической обработки хода складских логистических процессов.
В Deductor реализован такой алгоритм DM, как поиск ассоциативных правил, с помощью которого можно выявлять потенциальные
потребности заказчиков и предлагать на их основе новые товары и
услуги, а также оптимизировать размещение товара за счет анализа приобретаемых вместе товаров, минимизировав тем самым внутрискладские перемещения.
• Транспортная логистика. В целях снижения себестоимости
товара необходимо снизить расходы на его доставку. Исходя из
8
опыта предыдущих поставок, реализованные в Deductor механизмы позволяют спрогнозировать стоимость доставки, учитывая не
только тип транспортного средства, но и маршрут перевозки.
Заметим, что встроенные механизмы кластеризации исходя из
одинакового поведения групп пассажиров (фактического и ожидаемого, которое меняется с течением времени), позволяют улучшить
планирование движения пассажирского транспорта, смягчить нежелательные последствия от его ожидания, скорректировать отправку транспорта в пиковые периоды и в нерабочее время, определить сезонность спроса на отдельные маршруты, оптимизировать
инвестиции в инфраструктуру. В частности, в результате анализа
пополнения количества пассажиров на борту транспортного средства на каждой остановке и количества остановок на маршруте
могут быть построены соответствующие прогнозные нейросетевые
модели.
В данном пособии акцент сделан на технологию работы системы
и иллюстрацию ее возможностей при решении разного рода задач
анализа данных. Отдельную группу составляют лабораторные работы из области анализа в логистике. Лабораторные работы № 2, 3
связаны с анализом и планированием в коммерческой логистике,
№ 5–7 – классические задачи сегментации, выбора посредника и
управления запасами, работа № 8 – кластеризация при управлении
финансовыми потоками в задаче скоринга.
Практикум предназначен для студентов, изучающих такие дисциплины как «Методы системного анализа и принятия решений»,
«Экономико-математические методы и модели», «Системы поддержки принятия решений», «Логистика», «Системный анализ
в логистике» и др. (специальности: 20010020, 21100020, 5530000,
22030000, 2010465, 19070165, 08011165).
9
ПРИНЦИПЫ РАБОТЫ ПРОГРАММЫ DЕDUCTOR
Программный комплекс Deductor состоит из трех частей: многомерного хранилища данных – Deductor Warehouse; аналитического приложения – Deductor Studio и рабочего места пользователя –
Deductor Viewer (рис. 1.1).
Deductor Warehouse – многомерное хранилище данных, аккумулирующее всю необходимую для анализа предметной области
информацию. Использование единого хранилища позволяет обеспечить непротиворечивость данных, их централизованное хранение и автоматически обеспечивает всю необходимую поддержку
процесса анализа данных. Deductor Warehouse оптимизирован для
решения именно аналитических задач, что положительно сказывается на скорости доступа к данным.
Deductor Studio – программа, реализующая функции импорта,
обработки, визуализации и экспорта данных. Deductor Studio может функционировать и без хранилища данных, получая информацию из любых других источников, однако наиболее эффективным
является их совместное использование. В Deductor Studio включен
полный набор механизмов, позволяющий получить информацию
из произвольного источника данных, провести весь цикл обработки (очистку, трансформацию данных, построение моделей), отобразить полученные результаты наиболее удобным образом (OLAP,
диаграммы, деревья…) и экспортировать результаты на сторону.
Это полностью соответствует концепции извлечения знаний из баз
данных (KDD).
Импорт
Обработка
Визуализация
Deductor Studio
Deductor Warehouse, СУБД, учетные системы, офисные приложения
Экспорт
Deductor Warehouse, СУБД, учетные системы, офисные приложения
Рис. 1.1. Архитектура Deductor
10
Deductor Viewer – рабочее место конечного пользователя.
Позволяет отделить процесс построения моделей от использования
уже готовых моделей. Все сложные операции по подготовке моделей выполняются аналитиками-экспертами при помощи Deductor
Studio, а Deductor Viewer обеспечивает пользователям простой
способ работы с готовыми результатами, скрывает от них все сложности построения моделей и не предъявляет высоких требований
к квалификации сотрудников.
Архитектура системы построена таким образом, что вся работа
по анализу данных в Deductor Studio базируется на выполнении
следующих действий:
– импорт данных;
– обработка данных;
– визуализация;
– экспорт данных.
Процесс построения моделей в Deductor основывается на следующих трех принципах:
1. Использование обработчиков;
2. Использование визуализаторов;
3. Создание сценариев.
Обработка и визуализация (рис. 1.2) – две атомарные операции
с данными в Deductor. Под обработкой понимаются любые манипуляции с данными: от самых простых (например, сортировка) до
сложных (построение нейронной сети). Обработчика можно представить в виде «черного ящика», на вход которого подается набор
данных, а на выходе формируется преобразованный набор данных.
Реализованные в Deductor обработчики покрывают основную
потребность в анализе данных и создании законченных аналитических решений на базе Data Mining. Их классификация приведена
на рис. 1.3.
Любой набор данных можно визуализировать каким-либо доступным способом или несколькими способами, поскольку визуализация помогает интерпретировать построенные модели.
Набор
данных
Обработка
Преобразованный
набор данных
Визуализация
Рис. 1.2. Обработка и визуализация
11
Алгоритмы
Очистка
данных
Трансформация
данных
Data Mining
Редактирование
аномалий
Замена пустых
значений
Нейронные сети
Заполнение
пропусков
Квантование значений
Линейная
регрессия
Замена значений
Автокорреляция
Скользящее окно
Прогнозирование
Преобразование
даты
Деревья решений
Сглаживание
Очистка от шумов
Обнаружение
дубликатов и
противоречий
Группировка
Разгруппировка
Понижение
размерности
Устранение незначащих факторов
Самоорганизующиеся карты
Ассоциативные
правила
Пользовательская модель
Скрипты
Рис. 1.3. Классификация алгоритмов (обработчиков) в Deductor
В Deductor предусмотрены следующие способы визуализации
данных:
1. OLAP – многомерное представление данных. Любые данные, используемые в программе, можно посмотреть в виде кросстаблицы и кросс-диаграммы.
2. Таблица – стандартное табличное представление с возможностью фильтрации данных.
3. Диаграмма – график изменения любого показателя.
4. Гистограмма – график разброса показателей.
5. Статистика – статистические показатели набора данных.
6. Диаграмма рассеяния – график отклонения прогнозируемых
при помощи модели значений от реальных. Может быть построена
только для не прерывных величин и только после использования
механизмов построения модели, например, нейросети или линейной регрессии. Используется для визуальной оценки качества построенной модели.
12
7. Таблица сопряженности предназначена для оценки результатов классификации вне зависимости от используемой модели.
Она отображает результаты сравнения категориальных значений
исходного выходного столбца с рассчитанного выходного столбца.
Используется для оценки качества классификации.
8. «Что-если» – таблица и диаграмма, позволяющие «прогонять»
через построенную модель любые данные, интересующие пользователя и оценить влияние того или иного фактора на результат.
9. Обучающая выборка – набор данных, используемых для построения модели.
10. Диаграмма прогноза применяется после использования метода обработки (прогнозирование). Прогнозные значения выделяются цветом.
11. Граф нейросети – визуальное отображение обученной нейросети. Отображается ее структура и значения весов.
12. Дерево решений – отображение решений, полученных при
помощи соответствующего алгоритма.
13. Дерево правил – отображение в иерархическом виде(в виде
дерева) ассоциативных правил.
14. Правила – тип визуализации для отображения в текстовом
виде правил, полученных при помощи алгоритма построения деревьев решений или поиска ассоциаций.
15. Карта Кохонена – отображение карт, построенных при помощи соответствующего алгоритма.
16. Описание – текстовое описание параметров импорта/обработки/ экспорта в дереве сценариев обработки.
17. Сценарий (рис. 1.4) – иерархическая последовательность обработки и визуализации наборов данных. Сценарий всегда начина-
Рис. 1.4. Пример сценария в Deductor
13
ется с импорта набора данных из произвольного источника, после
чего может следовать произвольное число обработчиков любой степени глубины и вложенности. Каждой операции обработки соответствует отдельный узел дерева, или объект сценария. Любой объект можно визуализировать тем или иным доступным средством.
Набор данных служит механизмом, соединяющим все объекты
сценария. Можно сказать, что сценарий – наиболее естественный
с точки зрения аналитика способ представления этапов построения
модели. Это позволяет быстро создавать и сравнивать модели.
Мощным средством расширения линейной обработки данных
сценария является средство скрипт, предназначенное для автоматизации процесса добавления в сценарий однотипных ветвей обработки (в языках программирования аналогом скрипта является
подпрограмма).
18. Интерфейс Deductor Studio состоит из главного окна, внутри которого располагаются панели сценариев, отчетов, источников данных и результаты моделирования (таблицы, графики,
кросс-диаграммы, правила и т. д.).
Все сценарии создаются на основе запуска Мастеров. В распоряжении аналитика имеется 5 Мастеров: импорт, подключение, обработка, визуализация, экспорт.
19. Мастер импорта предназначен для автоматизации получения данных из любого источника, предусмотренного в системе. На
первом его шаге открывается список всех предусмотренных в системе типов источников данных. Число шагов Мастера импорта, а
также набор настраиваемых параметров различаются для разных
типов источников.
20. Мастер обработки предназначен для настройки всех параметров выбранного алгоритма.
21. Мастер отображений позволяет в пошаговом режиме выбрать и настроить наиболее удобный способ представления данных.
В зависимости от обработки, в результате которой была получена
ветвь сценария, список доступных для него видов отображений будет различным. Например, после построения деревьев решений их
можно отобразить с помощью визуализаторов Деревья решений и
Правила. Эти способы отображения недоступны для других обработчиков.
22. Мастер экспорта позволяет в пошаговом режиме выполнить
экспорт данных в файлы наиболее распространенных форматов.
Все операции (создание, открытие и сохранение) осуществляются стандартным способом через пункт меню «Файл». Важно заме14
тить, что одна копия запущенной программы может одновременно
работать только с одним проектом.
Проект программы – это файл с расширением *.ded, по структуре соответствующий стандартному xml-файлу. Он хранит последовательности обработки данных (сценарии), переменные проекта,
настроенные визуализаторы и служебную информацию.
15
Лабораторная работа № 1
ЗНАКОМСТВО С DEDUCTOR
Цель работы – ознакомиться с архитектурой, основными частями и пользовательским интерфейсом аналитической платформы
Deductor, получить навыки создания сценариев обработки и визуализации данных, создания и наполнения хранилища данных.
В настоящем практикуме используется студенческий вариант
программы Deductor Academic, у которого есть ряд ограничений.
Прежде всего, это возможность использования в качестве источников данных только текстовых файлов, а также запрет на обмен
с базами данных. Рассмотрим порядок выполнения лабораторной
работы.
Порядок выполнения лабораторной работы
Прежде всего, необходимо на диске создать папку с номером
группы, в которой создать папку с именем студента (или бригады)
и в ней папку с номером лабораторной работы. Скопируйте в эту
папку текстовые файлы (goods.txt и groups.txt) из папки преподавателя для первой лабораторной работы.
После запуска программы новый проект будет автоматически создан. Его надо сразу сохранить под именем lab1.ded (меню
«Файл») в той же папке, что и текстовые файлы. В этом случае
имеется возможность использования относительных путей, что
позволит не перенастраивать узлы импорта при изменении местоположения папки на жестком диске и переносе сценариев с одного
компьютера на другой.
1.1. Создание хранилища данных
Хранение данных в многомерном виде в специальной структуре – хранилище данных – облегчает последующий доступ к ним, их
анализ и обработку.
Хранилище данных Deductor Warehouse основано на реляционной базе данных (Firebird), которая содержит таблицы для хранения информации и таблицы связей, обеспечивающие целостное
хранение сведений. Поверх реляционной базы данных реализован
специальный семантический слой, который преобразует реляционное представление в многомерное.
16
Хранилище данных (ХД) Deductor Warehouse включает в себя
потоки данных, поступающие из различных источников, и специальный семантический слой, содержащий так называемые метаданные (данные о данных).
Семантический слой – механизм, позволяющий аналитику оперировать данными посредством терминов предметной области.
Объекты хранилища данных Deductor Warehouse перечислены
далее.
Измерение – это последовательность значений одного из анализируемых параметров. Например, для параметра «время» это
последовательность календарных дней, для параметра «поставщик» – список названий предприятий-поставщиков. Каждое значение измерения может быть представлено координатой в многомерном пространстве процесса, например фирма, дата.
Атрибут – это свойство измерения (т. е. точки в пространстве).
Атрибут как бы скрыт внутри другого измерения, он помогает
пользователю полнее описать исследуемое измерение. Например,
для измерения Код_группы атрибутом является Группа.
Факт – значение, соответствующее измерению. Факты – это
данные, отражающие сущность события. В большинстве случаев
фактами являются численные значения, например сумма, количество, объем.
Ссылка на измерение – это установленная связь между двумя и
более измерениями. Некоторые понятия (соответствующие измерениям в хранилище данных) могут образовывать иерархии. В этом
случае первое измерение содержит ссылку на второе, второе – на
третье и т. д.
Процесс – совокупность измерений, фактов и атрибутов.
Процесс описывает определенное действие, например продажу, отгрузку.
Атрибут процесса – свойство процесса. В отличие от измерения не определяет координату в многомерном пространстве. Это
справочное значение, относящееся к процессу. Значение атрибута процесса в отличие от измерения может быть не всегда определено.
Все загружаемые в ХД данные обязательно должны быть определены как измерение, атрибут либо факт. Принадлежность данных к типу (измерение, ссылка на измерение, атрибут или факт)
содержится в семантическом слое хранилища.
На логическом уровне различают две схемы построения ХД
«звезда» и «снежинка». Вся информация в хранилище Deductor
17
Рис. 1.5. Окно создания хранилища данных
Warehouse хранится в структурах типа «снежинка», где в центре расположены таблицы фактов, а «лучами» являются измерения, причем каждое измерение может ссылаться на другое измерение.
Для создания нового хранилища данных в Deductor Academic
необходимо выполнить следующий порядок действий.
1. Откройте панель подключений.
2. На дереве источников данных правой кнопкой вызовите контекстное меню и выберите действие «Мастер подключений». На
экране появится диалоговое окно, в котором в поле база данных
надо задать имя (lab1.gdb). Для определения расположения хранилища данных можно было бы через обзор задать абсолютный путь,
но, поскольку папка выше была определена для переносимости, используем относительный путь (рис. 1.5).
При задании параметров базы данных необходимо задать логин
(sysdba) и пароль (master key) и установить флажок Сохранять пароль. Тест подключения пока не выполняется.
По кнопке Далее выбираем 6-ю версию хранилища данных и
с помощью кнопки «Создать файл базы данных со структурой»
(рис. 1.6) протестируем соединение. Должно появиться сообщение
рис. 1.7.
В поле Метка впишем название Фармацея, а в описание впишем
название «Аптечные товары».
18
Рис. 1.6. Варианты работы с ХД
Рис. 1.7. Сообщение об успехе создания ХД
Рис. 1.8. Шаг создания ХД
Тестирование уже созданного хранилища можно выполнить по
. Далее следует сохранить настройки подключения по
кнопке
Таким образом было создано пустое ХД (рис. 1.8).
кнопке
19
1.2. Проектирование структуры хранилища данных
Прежде всего, необходимо определиться, что является измерением, что атрибутом, что фактом или процессом. Поскольку в пустом хранилище объекты (процессы, измерения, факты) отсутствуют, необходимо для создания структуры войти в режим редакти)
рования. Для этого используем редактор метаданных (кнопка
на панели Подключения. В редакторе для внесения изменений на. По сути в этом процессе выполняется редакжмем на кнопку
тирование, добавление, удаление полей таблиц реляционной базы
данных. Важно, чтобы типы данных полей хранилища совпадали
с типами данных в колонках txt – файла. Это необходимо учитывать также при определении полей импортируемых файлов.
Добавим измерения, нажав на кнопку с зеленым плюсом:
1. Код группы – целый тип.
2. Код товара – целый тип.
3. Производитель – строковый тип.
К каждому измерению добавим по атрибуту строкового типа, например для кода группы – Группа. Данный процесс иллюстрируется следующим рисунком (рис. 1.9).
Теперь создадим Процесс. Назовем его Продажи и соберем из
уже заданных измерений (используем кнопку Добавить (+)) и фактов (в нашей задаче это Количество проданного).
.
Принятие изменений выполняется по кнопке
а
Рис. 1.9. Шаг создания структуры (начало):
а – добавление измерения; б – добавление атрибута;
в – добавление измерения; г – редактирование (см. с. 21)
20
б
в
г
Рис. 1.9. (Окончание)
21
1.3. Наполнение хранилища данных
Рассмотрим на примере нескольких таблиц последовательность
действий, необходимую для наполнения хранилища данных информацией.
В папке \Lab1 располагаются две таблицы с именами «Товары»
(goods.txt) и «Группы» (groups.txt), содержащие информацию о
номенклатуре фармацевтической продукции некоторого торгового
предприятия (табл. 1.1, 1.2).
Таблица 1.1
Товары
Код Количество
товара в партии
20
21
22
26
27
…
6
15
270
1
1
…
Производитель
Код
группы
САГМЕЛ
БЕРЛИН-ХЕМИ АГ (ГРУППА МЕНАРИНИ)
БЕРЛИН-ХЕМИ АГ (ГРУППА МЕНАРИНИ)
АРМАВИРСКАЯ БИОФАБРИКА
ГЕКСАЛ АГ (САЛЮТАС ФАРМА)
…
4
5
5
6
4
…
Таблица 1.2
Группы
Код группы
Название
1
2
3
4
5
6
…
Витамины
Сердечно-сосудистые средства
Противоревматические и жаропонижающие
Респираторные заболевания
Гормоны
Противоопухолевые средства
…
Сценарий всегда начинается с узла импорта из текстовых файлов или из собственного хранилища. В папке \lab1 присутствуют
две таблицы:
– Товары (goods.txt );
– Группы (gruops.txt).
Изучить исходные данные и определить семантический слой,
т. е. понять, что в таблицах относится к определенным выше измерениям, фактам, свойствам, процессам. При загрузке данных в хранилище сначала загружаются таблицы измерений со
22
Рис. 1.10. Шаг операции импорта
своими атрибутами и только после этого загружается таблица
процесса.
Таблицы нормализованы. В дальнейшем свяжем их по общему
полю Код Группы, поскольку с кодами групп работать неудобно.
Выполним импорт ( рис. 1.10) в Deductor данных из таблиц (важно, что сначала загружаются измерения, потом процессы). Файл
gruops.txt не содержит фактов, поэтому начнем загрузку с него.
Переключиться на панель сценарии. С помощью Мастера импорта
загружаем файл gruops.txt.
Следуя указаниям Мастера по кнопке Далее переходим к указанию столбцов таблицы.
Рис. 1.11. Настройка полей
23
Рис. 1.12. Шаг операции экспорта
При этом определяем поля:
– КодГруппы – измерение (целого типа)
– Группа – атрибут
Далее, к узлу со строкой импорта присоединяем узел, соответствующий загрузке в хранилище с помощью Мастера экспорта
(рис. 1.12). В данном случае нужно загрузить измерение Код группы, поэтому, находясь на первом узле сценария, вызываем Мастер
экспорта и выбираем нужное нам хранилище. На следующей
вкладке требуется указать, в какое именно измерение будет загружаться информация. Выберем Код группы.
При этом нужно задать соответствие полей входного источника
данных и полей, определенных в хранилище. Если имена полей
в текстовом файле и метки в семантическом слое хранилища не совпадают, то нужно проверить и скорректировать (с помощью обработчика Настройка набора данных) типы соответствующих данных
источника и приемника.
Рис. 1.13. Установление соответствия полей
24
Рис. 1.14. Настройка полей второй таблицы
Рис. 1.15. Шаг операции экспорта процесса в ХД
Нажатие кнопки Пуск загружает в измерение данные. При этом
старые данные, если они были, будут заменены новыми.
Теперь импортируем следующую таблицу (табл. goods.txt).
К первому узлу (с импортом) присоединяем 2-й узел и здесь же задаем метки столбца и определяем тип данных (Количество – Факт,
остальные поля – Измерение) – рис. 1.14.
Далее по этому узлу выполняем загрузку в хранилище процесса
Продажи с помощью мастера экспорта, устанавливая, как раньше, соответствие полей с полями хранилища (рис. 1.15).
Процесс наполнения хранилища данных закончен. Теперь уже
в новом проекте можно выполнить импорт данных из хранилища,
выполнить их анализ, например построить визуализацию.
1.4. Импорт данных из хранилища
Итак, импортируем нужные данные теперь уже из хранилища.
Для этого при импорте нужно выбрать хранилище данных и указать, что используем процесс продажи. На рис. 1.16 отмечены не25
Рис. 1.16. Определение импортируемых данных и видов агрегации фактов
обходимые для анализа поля (поскольку в нашей базе есть коды товара, сами названия товара отсутствуют, данное поле не помечено).
Заметим, что при импорте можно установить тип фильтра данных
(например, выбрать пользовательский фильтр). Управление –
флажок активный на узле импорта.
Определим виды агрегаций фактов (в большинстве случаев требуется агрегация в виде суммы объединяемых фактов).
Отметим, что OLAP-куб можно использовать не только как метод визуализации, но и как средство оперативного формирования
отчетов и представления информации в нужном разрезе. OLAP-куб
позволяет анализировать данные сразу по нескольким измерениям, т. е. выполнять многомерный анализ. Пользователь, анализирующий информацию, может получать результаты в разрезе любых измерений куба.
Отображения, используемые в OLAP-системах, чаще всего
бывают двух видов: кросс-таблицы и кросс-диаграммы. Кросстаблица является основными наиболее распространенным способом отображения куба. Она отличается от обычной плоской таблицы наличием нескольких уровней вложенности (например, она
допускает разбиение строк на подстроки, а столбцов – на подстолбцы). Кросс-диаграмма представляет собой диаграмму заданного
типа (гистограмму, линейную диаграмму и т. д.), построенную на
основе кросс-таблицы. Очевидно, что пользователь может одновременно анализировать диаграммы с числом измерений не выше
26
Рис. 1.17. Выбор визуализации Куб
трех. Основное отличие кросс-диаграммы от обычной в том, что она
однозначно соответствует текущему состоянию куба и при любых
его изменениях (транспонирование, фильтрация по измерениям и
т. д.) также синхронно изменяется. Построим таблицу и OLAP-куб
(рис. 1.17).
Настроим размещение измерений (рис. 1.18).
Для отображения фактов предусмотрено восемь способов объединения (агрегирования):
– сумма – вычисляется сумма объединяемых фактов;
Рис. 1.18. Размещение полей куба
27
Рис. 1.19. Агрегация фактов в OLAP-кубе
– минимум – среди всех объединяемых фактов в таблице отображается только минимальный;
– максимум – среди всех объединяемых фактов в таблице отображается только максимальный;
– среднее – вычисляется среднее значение объединяемых фактов;
– количество – в кубе будет отображаться количество объединенных фактов;
– стандартное отклонение;
– сумма квадратов;
– количество пропусков;
– кроме того, всегда присутствует факт Количество, который
рассчитывает число записей, соответствующих совокупности измерений.
Определим факты и их агрегацию в кросс-таблице (рис. 1.19)
На рис. 1.20 приведен пример сценария и результат построения
таблицы.
Заметим, что иконка с синей воронкой означает возможность
фильтрации в таблице. Ниже приведены другие варианты визуализации (рис. 1.21).
Другой срез в OLAP кубе приведен на рис. 1.22, 1.23.
28
29
Рис. 1.20. Пример сценария и таблицы
30
Рис. 1.21. Вариант визуализации (OLAP-куб в виде кросс-таблицы с кросс-диаграммой)
31
Рис. 1.22. Срез по товарным группам
32
Рис. 1.23. Круговая диаграмма
Операция слияния
Соединение таблиц можно было выполнить путем слияния.
Существуют несколько типов соединения двух узлов сценария:
Пусть нам необходимо соединить таблицу goods.txt с другим
узлом дерева сценария – таблицей, созданной из файла gruops.txt.
Эти таблицы можно объединить по полю КодГруппы, которое присутствует в обоих таблицах. Сделаем слияние использовав, «внутренне соединение», установив связь по названному общему полю.
К таблице goods.txt (узел связи) применим обработчик Слияние
с указанным узлом (в данном случае это gruops.txt) – рис. 1.24, а и
б. Указываем поля, которые хотим видеть в итоговой таблице (рис.
1.24, в и г).
а
Рис. 1.24. Шаги слияния: а – шаг слияния 1; б – шаг слияния 2; в – шаг
слияния 3; г – установка соответствия полей (см. с. 34)
33
б
в
г
Рис. 1.24. (Окончание)
34
Рис. 1.25. Результат слияния
На рис. 1.25 показан результат слияния.
Заметим, что, например, группа Гомеопатия не попала в итоговую таблицу, поскольку для нее не нашлось соответствия в связываемой таблице по этому способу соединения.
Задание
Обратите внимание на контекстное меню в OLAP-кубе.
Отработайте технику слияния узлов и изучите элементы интерфейса (назначение иконок и возможности визуализации). По результатам сделайте заключение о том, какой производитель является
лидером производства.
35
Лабораторная работа № 2
МНОГОМЕРНЫЕ ОТЧЕТЫ И ПРОСТАЯ АНАЛИТИКА
Цель работы – освоить и закрепить навыки создания хранилища данных и извлечения из него информации, построения многомерных отчетов и кросс-диаграмм и их анализа.
В папке \Lab2\Part1 (варианты 6–10 – \Lab2\Part2) находятся
четыре таблицы (файлы с расширением *.txt). Это таблицы со следующей информацией:
– «Товары» (produces.txt) – номенклатура товаров (фармацептика);
– «Товарные группы» (groups.txt) – группы товаров, например,
витамины, желчегонные средства, иммуномодуляторы, анестетики, адаптогены и т. д.
– «Торговые отделы» (stores.txt) – информация о торговых отделах (в файле они названы «Аптека 1»,..);
– «Продажи» (sales.txt) – история продаж товаров за 1 год.
Каждая транзакция содержит дату и время продажи, товар, количество, сумму и торговый отдел (аптека).
Задание
Спроектировать хранилище данных. Построить сценарии и на
их основе, а также при помощи операций транспонирования измерений и агрегирования фактов сформировать отчеты и ответить на
вопросы в заданиях.
Для выполнения заданий понадобятся сведения из лабораторной работы № 1 и дополнительные обработчики:
– преобразование даты/времени;
– фильтрация.
Обработчик «Преобразование даты/времени»
Разбиение даты служит для анализа всевозможных показателей
за определенный период (день, неделя, месяц, квартал, год). Суть
разбиения заключается в том, что на основе столбца с информацией
о дате формируется другой столбец, в котором указывается, к какому заданному интервалу времени принадлежит строка данных.
Тип интервала задается аналитиком, исходя из того, что он хочет
получить, – данные за год, квартал, месяц, неделю, день или сразу
по всем интервалам.
36
Значения нового столбца, полученного после применения преобразования даты, могут быть одного из трех типов: строка, число
или дата. Например, нужно преобразовать дату «10.04.2004» и заменить ее месяцем. Тогда в столбце строкового типа будет содержаться
«2004-М04» и его уже нельзя использовать как дату, например, к нему нельзя снова применить преобразование даты. А в столбце типа
«дата» будет значение «01.04.2004». К нему снова можно применить
преобразование и заменить, например, номером квартала. Новый
столбец будет содержать значение 2-го числового типа.
Пример использования преобразования даты приведен в табл.
2.1. Первый столбец «Дата» – это исходный столбец. Остальные получены после обработки.
Таблица 2.1
01.01.2004
09.01.2004
17.01.2004
25.01.2004
Год + Квар- Год + Метал
сяц
01.01.2004
01.01.2004
01.01.2004
01.01.2004
День
недели
(число)
День
недели
(строка)
Четверг
Пятница
Суббота
Воскресенье
Понедельник
Вторник
Среда
Четверг
Пятница
Суббота
01.01.2004
05.01.2004
12.01.2004
19.01.2004
1
1
1
1
1
2
3
4
1
9
17
25
4
5
6
7
02.02.2004 01.01.2004 01.02.2004 02.02.2004
2
6
33
1
10.02.2004
18.02.2004
26.02.2004
05.03.2004
13.03.2004
2
2
2
3
3
7
8
9
10
11
41
49
57
65
73
2
3
4
5
6
01.01.2004
01.01.2004
01.01.2004
01.01.2004
01.01.2004
01.01.2004
01.01.2004
01.01.2004
01.01.2004
Год + Неделя
Неделя
День
года
Дата
Месяц
Пример использования преобразования даты
01.02.2004
01.02.2004
01.02.2004
01.03.2004
01.03.2004
09.02.2004
16.02.2004
23.02.2004
01.03.2004
08.03.2004
Обработчик «Фильтрация»
С помощью операции фильтрации можно оставить в таблице
только те записи, которые удовлетворяют заданным условиям, а
остальные скрыть.
Список заданий
1. Построить куб по трем измерениям (торговый отдел (аптека),
месяц года, товарная группа), в ячейках которого отображается
сумма и объем (количество проданных единиц продукции) продаж
37
за все периоды, имеющиеся в базе данных. Какой отдел приносит
наибольшую сумму продаж? Какая товарная группа имеет максимальную сумму продаж? Постройте кросс-диаграмму сумм продаж: общие продажи, продажи по отделам (аптекам), продажи по
товарным группам.
2. То же, что в п.1, но за последние 3 мес от имеющихся данных.
3. То же, что в п.1, но за последние 3 нед от имеющихся данных.
4. Найти сумму максимальной и средней стоимости покупки за
последний месяц от имеющихся данных.
5. Сформировать многомерный отчет и график загруженности
аптек по времени суток. На какие часы приходятся пики продаж?
6. То же, что в п. 5, но за три месяца от имеющихся данных.
7. Сформировать многомерный отчет и график загруженности
аптек по дням недели.
8. То же, что в п. 7, но за последний месяц от имеющихся данных.
9. Сформировать многомерный отчет и график загруженности
аптек по дням месяца. Постройте линию тренда.
10. То же, что в п. 9, но за последние 3 мес от имеющихся данных.
11. Перечислить 20 самых продаваемых товаров.
12. То же, что в п. 11, но за последние 3 нед от имеющихся данных.
13. Привести 10 самых продаваемых товаров по воскресеньям.
14. Назвать 5 самых популярных товаров в каждой товарной
группе.
15. То же, что и п. 14, но за последнюю неделю.
16. Товары, дающие 50% объема продаж.
17. То же, что и п. 16, но за последние 3 месяца от имеющихся
данных.
18. То же, что и п. 16, но за последнюю неделю.
Распределение вопросов по вариантам.
№ вар.
№ задания
1
2
3
4
5
38
1(6)
2(7)
3(8)
+
4(9)
+
+
+
+
5(10)
+
+
+
+
+
+
+
№ вар.
№ задания
6
7
8
9
10
11
12
13
14
15
16
17
18
1(6)
2(7)
3(8)
4(9)
+
5(10)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
2.1. Порядок выполнения лабораторной работы.
1. Создать локальное хранилище данных lab2 и протестировать
соединение (рис. 2.1).
Рис. 2.1. Окно создания хранилища данных
39
Рис. 2.2. Вид структуры хранилища данных
2. Важно соблюдать правила для задания типов данных и локальность путей.
3. После нажатия на кнопку «ОК» по указанному пути будет создано пустое хранилище данных. С помощью кнопки
проверьте
подключение к хранилищу.
4. Первым этапом является создание хранилища данных, поэтому необходимо изучить содержание всех исходных файлов, перечисленных выше, и, используя методику, описанную в лабораторной работе № 1, спроектировать структуру хранилища данных.
Вид структуры хранилища приведен на рис. 2.2.
40
2.2. Наполнение хранилища
Через Мастер импорта
по прямому доступу к текстовым
файлам загрузить таблицу produces.txt. Сделаем описание столбцов табл. 2.2:
• код товара (тип данных вещественный) определим как измерение;
• товар (тип строковой) определить как атрибут;
• код группы определить как измерение (тип – вещественный).
Таблица 2.2
Фрагмент загружаемой таблицы
Код
товара
Товар
Код
группы
774,0
Бетаферон пор.лиоф.д/ин. 9600000 ЕД фл. [ср-лем,
фл.] кор. 15 Schering-Plough Labo N.V.
Бифидумбактерин пор. для приема внутрь пак.флг.
ламин.ПЭ пач.картон. 30 Партнер
Бифидумбактерин табл. фл. 20 пач.картон. 10
Вирион НПО
Бифидумбактерин супп.ваг. уп.контурн.яч. 5 пач.
картон. 2 Фермент
33,0
808,0
809,0
810,0
33,0
33,0
33,0
Через Мастер экспорта
загрузить измерение код товара
в хранилище, установив соответствие с полем из источника данных
(рис. 2.3).
Через Мастер импорта по прямому доступу к файлам загрузить
таблицу groups.txt (табл. 2.3).
Рис. 2.3. Загрузка измерений
41
Таблица 2.3
Фрагмент таблицы groups.txt
Код группы
33,0
48,0
50,0
108,0
198,0
223,0
247,0
320,0
Группа
Иммуномодуляторы
Общетонизирующие средства и адаптогены
Местные анестетики
Микро- и макроэлементы
Витамины и витаминоподобные средства
Желчегонные средства и препараты желчи
Антисептики и дезинфицирующие средства
Биологически активные пищевые добавки
Код группы (тип вещественный) определим как измерение, группу (строковый) определим как атрибут.
Через Мастер экспорта загрузить измерение Код группы в хранилище (рис. 2.4).
Через Мастер импорта по прямому доступу к файлам загрузить
таблицу stores.txt (табл. 2.4).
Код отдела (тип вещественный) определим как измерение, отдел (строковый) определим как атрибут.
Рис. 2.4. Загрузка измерений
Таблица 2.4
Таблица списка отделов
Код отдела
1,0
2,0
3,0
42
Отдел
Аптека 1
Аптека 2
Аптека 3
Таблица 2.5
Фрагмент таблицы sales.txt
Дата
Код отдела
01.01.20040:00
1,0
01.01.20040:00
1,0
01.01.20040:00
1,0
01.01.20040:00
1,0
Код товара
31052,0
36259,0
40345,0
65841,0
Час
13,0
16,0
15,0
14,0
Покупка
1,0
1,0
1,0
1,0
Сумма
56,5
72,48
15,84
163,02
Рис. 2.5. Результат загрузки таблицы sales.txt и фрагмент сценария
Через Мастер экспорта загрузить измерение код отдела в хранилище.
Через Мастер импорта по прямому доступу к файлам загрузить
таблицу sales.txt (табл. 2.5, рис. 2.5).
Дату, код отдела, код товара, час определить как измерение.
Покупку, сумму определить как факт.
провести слияние (рис. 2.6, а) через
Через мастер обработки
внутреннее соединение таблицы sales.txt (рис. 2.6, б) по полю код
товара с узлом текстовый файл produces.txt.
Через мастер экспорта загрузить процесс в хранилище (рис. 2.7).
С помощью Мастера импорта
произведем импорт данных из
процесса, указав нужные для анализа измерения (группу, отдел,
дату) и факты (сумму, покупку) (рис. 2.8–2.10).
43
а
б
в
Рис. 2.6. Шаги слияния: а – 1-й шаг; б – 2-й шаг; в – 3-й шаг
44
Рис. 2.7. Загрузка процесса
Рис. 2.8. Импорт процесса
45
46
Рис. 2.9. Вид сценария
Рис. 2.10. Настройка дат
Через Мастер обработки
провести преобразование даты и времени в соответствии с требованиями варианта задания (рис. 2.10).
Построить визуализаторы Диаграмма и OLAP, где, например,
в строках дата (год+месяц), в столбцах группа, фактами являются
покупки (рис. 2.11–2.13).
Рис. 2.11. Пример диаграммы
47
Рис. 2.12. Настройка назначений полей
Рис. 2.13. Шаг построения OLAP-куба
48
49
Рис. 2.14. Пример сценария, кросс-диаграммы и диаграммы
Далее следует выполнить задания в соответствии с вариантом,
оформить отчет, содержащий ответы и соответствующие выводы.
На рис. 2.15 приведен пример сценария при фильтрации данных.
Рис. 2.15. Сценарий с фильтрами
Пример многомерного отчета (рис. 2.16).
Рис. 2.16. Отображение OLAP-куба в виде кросс-диаграммы
Группировка по отделам (аптекам) с сортировкой по возрастанию сумм (рис. 2.17). Напомним, что группировка – это объединение записей, содержащих одинаковые значения (в данном случае
названия аптек).
50
Рис. 2.17. Сортировка сумм по аптекам
Аналогичная обработка (группировка по группам) приведена
для групп товаров (рис. 2.18).
Рис. 2.18
На следующем рисунке (рис. 2.19) показан многомерный отчет,
сводящий результаты по аптекам и группам.
Рис. 2.19. Кросс-таблица группы – отделы
Пусть задание будет следующим: найти сумму максимальной
и средней стоимости покупки за последний месяц от имеющихся
данных.
51
На рис. 2.20 показан результат фильтрации за последний месяц с введенным с помощью калькулятора дополнительным полем
Выражение, дублирующим столбец Сумма.
Рис. 2.20. Результат фильтрации и дополнительный столбец
В дальнейшем, после операции группировки по дате (Год +
Месяц) (рис. 2.21) снова применяем калькулятор, но теперь для
сложения значений столбцов Сумма и Выражение (рис. 2.21, в),
после чего получаем сумму максимальной и средней стоимости покупки (Выражение_1) (рис. 2.22).
а
Рис. 2.21. Шаги обработки (см. с. 53)
52
б
в
Рис. 2.21. Окончание
53
Рис. 2.22. Шаги обработки Иллюстрация суммирования
Загрузка аптек по дням недели потребует применения Преобразования даты и времени и Группировки для получения графика
загруженности аптек по дням недели (рис. 2.23).
Рис. 2.23. Загрузка аптек по дням недели
54
Загрузка по дням месяца строиться аналогично. На рис. 2.24–
2.28 показаны различные отчеты (вкладка Отчеты), смысл которых раскрывается подписями под рисунками.
Рис. 2.24. Отчет – Кросс-таблица отчета загрузки
по времени суток
Рис. 2.25. Отчет – Кросс диаграмма
55
Рис. 2.26. Отчет – Загрузка по дням недели
Рис. 2.27. Отчет – Загрузка по дням месяца
Последний отчет, например, может быть сформирован следующим образом. Если необходимо, отбираем данные за нужный период (фильтр по дате, например за последние 3 мес), выполняем
настройку набора данных (оставляем для простоты только измерение Товар и количество рис. 2.29 (факт Покупка)) группируем по
товару, поскольку один и тот же товар мог продаваться в разных
отделах), сортируем результат по убыванию и строим OLAP-куб.
56
В Кросс-таблице с помощью селектора (иконка с синей воронкой в контекстном меню кросс – таблицы куба) установив курсор
на факт Покупка, выбираем Измерение товар. В Условии показать
Первые №, значение – 20.
Рис. 2.28. Отчет – Самые продаваемые товары
Рис. 2.29. Результат использования селектора
57
Аналогично строим пять самых популярных товаров в каждой
группе. После настройки набора выполняем группировку по коду
товара и сортировку покупок по убыванию. Строим такие наборы
по числу групп с визуализацией OLAP-куб, где фильтруем группу
и используем селектор (рис. 2.30; 2.31).
Рис. 2.30. Пять популярных товаров
В последнем отчете набор настраивается на сумму
и после группировки и сортировки в селекторе кросстаблицы фильтруем товар
с долей от общего 50%-ного
объема продаж.
Рис. 2.31. Половина от объема продаж
58
Лабораторная работа № 3
ЗАДАЧИ РЕГРЕССИИ.
ПРОГНОЗИРОВАНИЕ СПРОСА
Цель работы – научиться применять методы Data Mining для
решения задач прогнозирования временных рядов на примере построения моделей прогноза объема продаж. Задача прогнозирования спроса находит широкое применение в различных отраслях логистики (закупочной, производственной, коммерческой, сбытовой,
логистике управления запасами).
Методы прогнозирования активно применяют в транспортной
логистике. В частности, улучшению дорожной обстановки служит
задача построения прогнозных моделей различной степени срочности на основе динамического анализа фактических диаграмм скорости транспортных потоков на улицах мегаполиса при различных
условиях движения (дата, время суток, метеоусловия, будни/выходные и пр.).
Статистическая информация о состоянии транспортных потоков
на улицах города накапливается в информационном центре управления движением. Данные о прогнозе поведения транспортного потока могут использоваться в системах динамической навигации,
Рис. 3.1. Прогноз скорости транспортного потока в утренние часы
59
Рис. 3.2. Прогноз скорости транспортного потока на 3 ч вперед
Рис. 3.3. Относительная ошибка прогноза (0,02% на 1,5 ч вперед)
60
при получении информации перед поездкой и т. д. Фиксация отклонения поведения транспортного потока от прогноза его состояния в центре управления позволит идентифицировать заторы и
перегрузки.
На рис. 3.1, 3.2 приведены примеры профиля скорости транспортного потока с прогнозом и пример сценария выбора модели
прогноза для одной из улиц Петербурга. Сценарии обязательно
включают предобработку данных для выявления дубликатов и
противоречий, аномальных значений, заполнение пропусков, сглаживание шумов (лабораторная работа № 4).При выборе лучшей модели используются различные оценки качества прогноза (рис 3.3).
Но вернемся к задаче прогноза объема продаж. В папке \Lab3
расположены файлы временных рядов по вариантам. Например,
в вариантах с 1 по 13 файл sales.txt – данные, содержащие историю
продаж за некоторый период, имеющий структуру, представленную в табл. 3.1.
Таблица 3.1
Фрагмент таблицы sales.txt
Дата
Группа товара
Товар
Количество
Сумма
10.01.2004
12.01.2004
13.01.2004
13.01.2004
…
Группа1
Группа1
Группа1
Группа2
…
Товар1
Товар1
Товар2
Товар3
…
768
64
346
6
…
2418.00
211.11
1042.00
21.7
…
Задание
В качестве примера в пособии рассмотрен вариант 1, где требуется на основе исторических данных построить прогноз количества
и сумм продаж на будущие два периода (период – месяц) по каждой
товарной позиции. Оцените точность прогноза, сравнив результаты
прогноза по двум альтернативным моделям с реальными данными
будущих продаж, которые находятся в файле fact.txt. Студенты
специальности «транспортная логистика» выполняют варианты
задания из папки Lab3\Прогнозирование скорости транспортного
потока\ .
Файл с реальными данными по вариантам необходимо сформулировать самостоятельно. Данные прошлых периодов, используемые
для прогноза, отделяются с помощью обработчика Фильтрация.
Для выполнения задания понадобятся следующие обработчики:
– фильтрация;
61
– преобразование даты;
– группировка;
– разгруппировка;
– автокорреляция;
– корреляционный анализ;
– удаление аномалий и сглаживание (парциальная предобработка);
– скользящее окно;
– нейросеть;
– линейная регрессия;
– прогноз;
и визуализаторы:
– таблица и OLAP-куб;
– диаграмма;
– диаграмма рассеяния;
– диаграмма прогноза.
3.1. Шаги построения прогноза продаж
Последовательность действий для построения прогноза продаж
по каждому товару включает в себя следующие шаги.
1. Выдвижение гипотезы: какие факторы оказывают влияние на
будущий объем продаж.
2. Сбор данных и приведение их к виду, пригодному для дальнейшей обработки.
3. Выделение сезонности в истории продаж.
4. Удаление аномалий и шумов.
5. Выбор метода для построения модели прогноза продаж.
6. Оценка качества построенной модели.
В данном случае уже выдвинута гипотеза о том, что на объем
продаж будущего периода в основном влияют продажи за прошлые
месяцы. Для остальных этапов необходимо воспользоваться соответствующими обработчиками Deductor.
Обработчик «Автокорреляция»
Целью автокорреляционного анализа является выяснение степени статистической зависимости между различными значениями (отсчетами) случайной последовательности, которую образует
поле выборки данных. В процессе автокорреляционного анализа
рассчитываются коэффициенты корреляции (мера взаимной зави62
Рис. 3.4. Автокорреляция
симости) для двух значений выборки, отстоящих друг от друга на
определенное количество отсчетов, называемое также лагом.
Применительно к анализу временных рядов автокорреляция позволяет выделить месячную и годовую сезонность данных
(рис. 3.4). Видно, что пик зависимости данных приходится на 12-й
мес и имеет значение выше 0,6, что свидетельствует о годовой сезонности. Поэтому величину продаж годовой давности необходимо
обязательно учитывать при построении модели (если используется
нейронная сеть, то «подавать на вход»).
Обработчик «Парциальная предобработка»
Позволяет удалить аномалии и шумы в исходных данных.
Шумы в данных (в данном случае временной ряд истории продаж) не только скрывают общую тенденцию, но и проявляют
себя при построении модели прогноза. Из-за них модель может
получиться плохого качества. Аналогичная ситуация с аномалиями, т. е. резкими отклонениями величины от ее ожидаемого
значения.
Следует понимать, что решение о сглаживании, удалении шумов и аномалий целиком зависит от специфики решаемой задачи,
бизнес-правил предметной области и т. д. Иными словами, при
сглаживании временного ряда выдвигается гипотеза о зашумленности исходных данных. Аномалии, или случайные всплески
в отгрузке товаров, могут быть вызваны такими факторами, как
задержка транспорта в пути, и другими форс-мажорами. Кроме
63
Рис. 3.5. Исходные и сглаженные данные
того, при агрегации продаж по месяцам уже происходит частичное сглаживание данных и, может быть, дополнительное удаление шумов не потребуется. В любом случае необходимо строить
несколько моделей.
В обработчике «Парциальная обработка» предусмотрен выбор
степени подавления аномалий и вычитания шумов: малая, средняя, большая. Кроме того, в обработчике предусмотрена возможность заполнения пропусков, а также сглаживание данных, в том
числе вейвлет-преобразованием. Выбор того или иного алгоритма
определяется спецификой конкретной задачи.
На рис. 3.5. приведен пример временного ряда после удаления
аномалий и шумов.
Обработчик «Скользящее окно»
При прогнозировании временных рядов при помощи обучающихся алгоритмов (в том числе искусственной нейронной сети)
требуется подавать на вход анализатора значения нескольких
смежных отсчетов из исходного набора данных, например в случае,
когда необходимо подавать на вход значения сумм продаж за последние 3 мес и сумму продаж в прошлом году. При этом эффективность реализации заметно повышается, если не выбирать данные
каждый раз из нескольких последовательных записей, а последовательно их расположить в зависимости от конкретной позиции
окна, в одной записи.
Значения в одном из полей записи будут относиться к текущему отсчету, а в других – смещены от текущего отсчета «в будущее»
64
Рис. 3.6. Оценка качества построенной модели
или «в прошлое». Следовательно, преобразование Скользящего окна имеет два параметра: Глубина погружения – количество «прошлых» отсчетов (включая текущий отсчет), попадающих в окно,
и Горизонт прогнозирования – количество «будущих» отсчетов.
Такой метод отбора данных называется Скользящим окном, поскольку это окно перемещается по всему набору.
Обработчик «Нейросеть»
Предназначен для решения задач регрессии и прогнозирования.
В данном случае нейросеть строится для прогнозирования будущих
значений временного ряда. Для проверки обобщающей способности нейросети рекомендуется разбить имеющееся множество данных на две части: обучающее и тестовое. Как правило, при прогнозировании временных рядов доля тестового множества составляет
не более 10–20%.
С помощью визуализатора «Диаграмма» оценивается способность построенной нейросетевой модели к обобщению. Для этого
в одном окне выводятся графики исходного и спрогнозированного
временных рядов. На рис. 3.6 изображен пример таких графиков.
Видно, что построенная модель обеспечивает приемлемую точность.
Обработчик «Линейная регрессия»
Аналогичен предыдущему, но используется для прогноза в случае линейности в данных.
65
Обработчик «Прогнозирование»
и визуализатор «Диаграмма прогноза»
Прогнозирование позволяет получать предсказание значений
временного ряда на число отсчетов, соответствующее заданному
горизонту прогнозирования. Алгоритм прогнозирования работает
следующим образом. Пусть в результате преобразования методом
«Скользящего окна» была получена последовательность временных отсчетов:
X(–n),...,X(–2),X(–1),X0,X(+1),
где X(+1) – прогнозируемое значение, полученное с помощью предыдущего этапа обработки (например, нейронной сети) на основе n
предыдущих значений. Тогда, чтобы построить прогноз для значения X(+2), нужно сдвинуть всю последовательность на один отсчет
влево, чтобы ранее сделанный прогноз X(+1) тоже вошел в число
исходных значений. Затем снова будет запущен алгоритм расчета
прогнозируемого значения X(+2) с учетом X(+1) и так далее в соответствии с заданным горизонтом прогноза.
Диаграмма прогноза становится доступной в списке способов
представления только для тех ветвей сценария, которые содержат
прогноз временного ряда. Основное отличие диаграммы прогноза
от обычной диаграммы в том, что на ней кроме исходных данных
отображаются результаты прогноза, при этом исходные данные и
прогноз различаются по цвету (рис. 3.7).
Рис. 3.7. Диаграмма прогноза
66
Обработчик «Корреляционный анализ»
Если между каким-либо входным фактором и выходным результатом корреляционная связь мала или вообще отсутствует,
то использование этого входного фактора бессмысленно. С другой
стороны, если входные факторы сильно коррелируют, то имеется
основание для исключения лишних входных факторов. Для оценки незначащих факторов служит обработчик «Корреляционный
анализ».
Визуализатор «Диаграмма рассеяния»
Качество построенной прогнозной модели подтверждает диаграмма рассеяния (рис. 3.8).
Она служит для наглядной оценки качества построенной модели с помощью результатов сравнения непрерывных значений
выходного поля и непрерывных значений того же поля, но рассчитанных моделью. На диаграмме рассеяния отображаются выходные значения для каждого из примеров обучающей выборки,
Рис. 3.8. Диаграмма рассеяния
67
координаты которых по оси Х – это значение выхода на обучающей выборке (эталон), а по оси Y – значение выхода, рассчитанное обученной моделью на том же примере. Прямая диагональная линия представляет собой ориентир – линию идеальных
значений. Чем ближе точка к этой линии, тем меньше ошибка
модели. Также на диаграмме рассеяния отображаются две пунктирные линии – верхняя и нижняя границы доверительного
интервала. Ширина доверительного интервала определяется допустимой ошибкой, которая вводится в поле «Ошибка». Если
ошибка модели (величина в столбце <Имя_поля>_ERR) меньше
допустимой, то точка попадает в доверительный интервал, с помощью которого можно оценить, в каких точках отклонение рассчитанного моделью выхода из эталона является недопустимым,
и в дальнейшем исследовать эти записи детальней.
Обработчик «Разгруппировка»
Применительно к задаче
прогнозирования объема продаж разгруппировка позволяет
распределить прогнозные значения, рассчитанные моделью
(например, нейросетью) для
определенной группы товара,
по каждой товарной позиции
в данной группе.
Просмотр результатов прогноза по позициям удобно реализовывать в многомерном виде, особенно если прогноз осуРис. 3.9. Прогноз по каждой товарной ществляется более чем на один
позиции после разгруппировки
период (рис. 3.9).
3.2. Порядок выполнения работы
В папке Lab3 содержатся текстовые файлы. Скопируйте эти
файлы в свою папку.
1. Импорт файла sales.txt
Файл содержит данные, приведенные в табл. 3.2.
68
Таблица 3.2
Содержимое файла sales.txt
DATA
10.01.2004
12.01.2004
13.01.2004
13.01.2004
…
GRUPPA
Группа1
Группа1
Группа1
Группа2
…
TOVAR
Товар1
Товар1
Товар2
Товар3
…
KOL
SUMMA
768
64
346
6
…
2418.00
211.11
1042.00
21.7
…
2. Возьмем фрагмент табл. 3.2.
Выполним импорт (рис. 3.10; 3.11)
Рис. 3.10. Импорт исходных данных
Присвоим DATA метку Дата и определим его как измерение.
Присвоим GRUPPA метку Группа товара и определим его как
измерение.
Присвоим TOVARметку Товар и определим его как измерение.
Присвоим KOL метку Количество и определим его как факт.
Присвоим SUMMA метку Сумма и определим его как факт.
69
Результат видим на рис. 3.11.
Рис. 3.11. Настройка полей
3. Фильтр по товарной группе.
Через Мастер обработки
произвести фильтрацию по товарной группе «Пена монтажная» и по дате (дата раньше чем
31.01.2004) – рис. 3.12. Эта дата и будет последней в наборе исторических данных.
Рис. 3.12. Фильтрация
4. Через Мастер обработки сделаем преобразование даты: Год и
Месяц (рис. 3.13).
70
Рис. 3.13. Преобразование даты
5. При группировке Количество и Сумма группируются по месяцам и агрегируются по сумме значений (дату, группу и товар при
этом определим как неиспользуемые), визуализация – таблица и
диаграмма (рис. 3.14).
Рис. 3.14. Группировка
Чтобы посмотреть на данные, полезно построить Диаграмму
(рис. 3.15).
71
Рис. 3.15. Результат обработки
Заметим наличие сезонности в данных. Чтобы убедиться в этом,
нужно выполнить построение автокорреляционной функции.
6. Мастер обработки Автокорреляция по количеству и сумме
с глубиной больше года, например 15 мес (рис. 3.16, 3.17).
Рис. 3.16. Параметры автокорреляции
72
Рис. 3.17. Автокорреляция
Пик выше 0.6 наблюдается на 12 мес, т. е. хорошо видно наличие годичной сезонности в данных.
7. После узла Группировка добавим узел Парциальная предобработка редактированием аномалий и вычитанием шума.
На рис. 3.18 приведены этапы парциальной предобработки (обратите внимание, что из обработки Год + Месяц необходимо отключить. Все действия для количества и суммы аналогичны. Для визуализации также необходимо использовать таблицу и диаграмму.
а
Рис. 3.18. Этапы парциальной обработки:
а – начало; б – продолжение; в – конец (см. с. 74)
73
б
в
Рис. 3.18. Окончание
Результат обработки наблюдаем на Диаграмме (рис. 3.19).
Следует отметить, что данный сценарий не использует работу
с хранилищем данных, но во многих случаях с целью экономии
вычислительных ресурсов целесообразно результат обработки сохранить в хранилище и извлекать уже обработанные данные при
подборе наилучшей модели. При этом на шаге экспорта данных
в процесс Продажи для контроля непротиворечивости информации в ХД следует указать измерения, по которым будут удалены
данные из хранилища (для временного ряда поставить флажок по
полю Дата). В этом случае при повторной загрузке в процесс из него будут удалены и загружены заново данные за те даты, которые
совпадают в источнике и хранилище.
74
Рис. 3.19. Результат обработки
7. Добавим узел Скользящее окно (применительно к «сумме»)
с глубиной 12 мес (рис. 3.20).
8. Построим модель Нейросеть (входные данные с учетом годичной сезонности – 12,3,2,1-й месяцы) с показом диаграммы рассеяния (рис. 3.21–3.23).
Рис. 3.20. Шаг построения Скользящего окна
75
Рис. 3.21. Шаг построения нейросети
Рис. 3.22. Вид структуры нейросети
76
Рис. 3.23. Диаграмма рассеяния
Алгоритм построения нелинейной модели на основе искусственной нейросети сводится к определению архитектуры сети и
запуска процесса обучения, позволяющего определить оптимальные значения весов сети. Будем считать, что архитектура представляет собой входной слой из четырех входных сигналов, один
скрытый слой из двух нейронов и выходной слой для обозначения
месяца горизонта прогноза. При разбиении исходного набора данных на подмножества 95% выделите для обучающего и 5% для тестового. В качестве активационной функции выберете сигмоиду,
в качестве алгоритма обучения – алгоритм обратного распространения ошибки, а условием прекращения обучения будет ошибка
меньше 0.05 по достижению «эпохи» 10000. На самом деле все параметры, включая метод оптимизации коэффициентов сети, нуждаются в исследовании.
Наблюдаем ошибку и строим Граф нейросети, Диаграмму рассеяния и Диаграмму.
Хорошо видно, что модель прогноза в виде нейросети хорошо отражает близость прогноза по сумме к эталонным значениям.
9. Прогноз по «сумме» с горизонтом 2 мес (рис. 3.24). Добавляем
его к исходным данным.
77
Рис. 3.24. Прогноз и исходные данные
Следует проверить, что на этапе настройки связей столбцов при
выполнении обработчика Прогноз на очередном шаге данные входного столбца Сумма-1 берутся из выходного столбца Сумма, данные
Сумма-2 берутся из Сумма-1 и т. д., а в поле DATA (Год+Месяц) ничего не заносится.
10. Аналогично построим Скользящее окно по «количеству»и
модель Нейросеть по количеству с теми же параметрами, что и выше, затем выполним Прогноз.
11. Разгруппировка прогноза по количеству товара с отображением OLAP-куба (Количество – факт, остальные – измерения).
Восстановление по товару (поле – Товар) – рис. 3.25, 3.26.
В результате разгруппировки получили прогноз по количеству
по каждой позиции товара.
12. К узлу Прогноз добавим фильтрацию для отбора последних двух
(прогнозных) месяцев: «шаг прогноза не пустой» (рис. 3.27, 3.28).
13. Калькулятор (рис. 3.29) – Прогноз даты (необходим для расчета дат будущих месяцев) – рис. 3.30.
78
Рис. 3.25. Шаг операции «Разгруппировка»
Рис. 3.26. Результат разгруппировки
79
Рис. 3.27. Шаг фильтрации
Рис. 3.28. Результат фильтрации по шагу прогноза
(после настройки показа полей)
Рис. 3.29. Настройка калькулятора
80
Рис. 3.30. Результат расчета будущих дат
14. Для проверки качества прогноза выполним слияние с фактическими данными за прогнозные месяцы. Для этого импортируем
файл fact.txt (рис. 3.31).
а
б
Рис. 3.31. Шаг импорта файла:
а – начало; б – конец; в – результат (см. с. 82)
81
в
Рис. 3.31. Окончание
Следует учесть, что разделитель – символ пробела и импорт начинается с 1-й строки (заголовка). Настроим поля : сумма и количества – факты, Дата – измерение.
С помощью внутреннего соединения выполним слияние результата прогноза с этим узлом (рис. 3.32).
а
б
Рис. 3.32. Шаги процесса слияния:
а – 1-й шаг; б – 2-й; в – 3-й; г – результат слияния (см. с 83)
82
в
г
Рис. 3.32. Окончание
Поскольку сравниваем только поля с количеством, то их и сохраняем (рис. 3.33).
Рис. 3.33. Диаграмма сравнения прогноза с фактическими данными
83
В Калькуляторе построим количественную оценку отклонения
(стандартное отклонение в процентах) – рис. 3.34, 3.35.
Рис. 3.34. Шаг конструирования выражения для ошибки
Рис. 3.35. Относительная ошибка прогноза по количеству
Из диаграммы видно, что ошибка порядка 4%. Теперь построим
модель линейной регрессии по количеству (рис. 3.36; 3.37), подключив ее к соответствующему Скользящему окну.
84
Рис. 3.36. Настройка модели линейной регрессии
Рис. 3.37. Коэффициенты регрессии
Скопируем узел Прогноз по количеству и вместе со всей этой веткой перенесем ее к узлу Линейная регрессия (рис. 3.38).
85
Рис. 3.38. Оценка прогноза по модели Линейная регрессия и типичный
сценарий построения модели прогноза
Таким образом, можно отметить, что линейная модель проигрывает нейросетевой, а ошибка составляет уже 12%.
Задание
Оцените влияние входных факторов на результат прогноза с помощью применения обработчика Корреляционный анализ к узлу
Скользящее окно соответственно по сумме и количеству. На входе –
все исторические параметры по 12-й месяц включительно.
86
Лабораторная работа № 4
ПОДГОТОВКА ДАННЫХ
Цель работы – освоить технику очистки и предобработки данных
в Deductor. Первичная оценка качества данных подразумевает выявление и обработку объективных ошибок и отклонений: дубликаты,
противоречия, пропуски, аномалии. Эту процедуру желательно проводить в самом начале, и оканчивается она отчетом с выводами о качестве
данных. Качество результата напрямую зависит от качества данных.
4.1. Очистка и предобработка данных
В табл. 4.1 в порядке последовательности применения сведены
инструменты для решения задач предобработки данных.
Следующим шагом является фильтрация выявленных отклонений (обработчик Фильтрация) и оценка качества обработки.
Таблица 4.1
Методы и инструменты аудита данных в Deductor 5.2
Задача
Метод
Обработчик/визуализатор
1. Изучение
статики
Стандартные статистические
показатели: минимум, максимум, среднее и т.п.
2. Проверка
и устранение
дубликатов и
противоречий
3. Обработка
пропусков
–
Визуализатор – Статистика, статистические функции
в обработчике – Калькулятор
Обработчик и визуализатор – Дубликаты
и противоречия
4. Выявление
выбросов
Для упорядоченных данных:
Обработчики – Парподстановка константы;
циальная обработка,
подстановка среднего;
Калькулятор
интерполяция (путем сглаживания ряда).
Для неупорядоченных:
подстановка константы;
подстановка среднего;
подстановка наиболее вероятного значения
Статистический метод на основе Обработчик – Калькулятор
отклонения среднего от СКО
87
Рассмотрим проведение исследования качества данных на примере. Исходные данные представлены в текстовом файле churn.txt
в папке Lab4. Файл и методика анализа основываются на материалах [7].
Порядок выполнения лабораторной работы
В файле churn.txt представлен набор данных некоторой телекоммуникационной компании для исследования «текучести» абонентской базы. Цель подобного исследования – выявить причины
ухода клиентов и оценить вероятность ухода клиента с заданными
показателями. На основе результатов таких исследований можно
разработать методы работы с клиентами, чтобы повысить их лояльность к компании.
При проведении исследования на предмет качества данных нужно ответить на следующие вопросы:
– есть ли в данных дубликаты, противоречия, пропуски, аномалии?
– какова доля неполных и некорректных записей в общем объеме?
– какие поля представляют интерес для анализа?
1. Изучение статистики
Импортируем файл churn.txt и, открыв визуализатор Статистика
по набору данных, увидим следующую картину рис. 4.1.
Рис. 4.1. Статистика по набору данных churn.txt
88
В шести столбцах присутствуют пропущенные значения. Это
значит, что необходимой операцией будет работа с пропусками.
Поля Код и № телефона уникальные (количество уникальных значений равно числу записей) и не представляют интерес для анализа. Особое место занимает поле Уход, значение которого 1(Да) соответствует лояльности клиента, 0(Нет) – его уходу.
2. Дубликаты и противоречия
Для автоматизации процесса поиска дубликатов и противоречий предназначен специальный обработчик Дубликаты и противоречия. Он находится в группе узлов Очистка данных Мастера обработки.
Рис. 4.2. Группа Очистка данных
Настройка параметров обработчика заключается в указании
назначения полей. Суть обработки состоит в том, что определяются входные и выходные поля. Алгоритм ищет во всем наборе
записи, для которых одинаковым входным полям соответствуют
одинаковые (дубликаты) или разные (противоречия) выходные
поля. На основании этой информации создаются два дополнительных логических поля – Дубликат и Противоречие, принимающие значения «истина или ложь», и дополнительные числовые
поля Группа дубликатов и Группа противоречий, в которые записываются номер группы дубликатов и группы противоречий,
содержащих данную запись. Если запись не является дубликатом или противоречием, то соответствующие поля будут пустыми (null).
В нашем случае целесообразно искать дубликаты в записях со
всеми столбцами, исключая Код и № телефона. Это будут входы (рис. 4.3). Противоречия разумнее искать по выходному полю
Уход, т. е. если встретятся два полностью одинаковых по характеристикам телефонных звонков клиента, а поле Уход у них будет
различаться, то это сигнал о вероятной ошибке в данных.
89
Рис. 4.3. Задание назначения полей в дубликатах и противоречиях
При использовании обработчика Дубликаты и противоречия
возможно отображение результатов обработки с помощью одноименного визуализатора Дубликаты и противоречия (рис. 4.4).
Рис. 4.4. Визуализатор Дубликаты и Противоречия
Таким образом, заключаем, что противоречий данные не содержат, но имеется 1дубликат. Вероятно, в CRM-системе имеется
ошибка и один клиент записан дважды, пусть под разными номерами. Примем решение удалить 1 дубликат. Наиболее простой способ
сделать это состоит в следующем.
1. Отфильтровать все дубликаты и сгруппировать их по измерениям Дубликат и Группа дубликатов, остальные поля будут фактами с функцией агрегации Первый. В результате мы получим по
одной записи для каждой группы дубликатов.
2. К отфильтрованному набору данных, не содержащему дубликатов, при помощи объединения (обработчик Слияние) добавить набор данных, полученный на шаге 1.
Настройка набора позволяет исключить неиспользуемые поля (дубликат, группа дубликатов, противоречие, группа противоречий).
90
Фрагмент сценария, осуществляющего эти действия, приведен
на рис. 4.5.
Рис. 4.5. Устранение дубликатов
3. Восстановление пропусков.
Пропуски содержатся в шести полях. Их доля составляет менее
0,2%. В этих условиях предпочтительнее выбрать их восстановление каким-либо алгоритмом, хотя допустимым будет и проигнорировать эти записи, поскольку ценность обработки при таком количестве невелика.
В данном учебном примере тем не менее попробуем восстановить
пропуски. Для автоматизации этого процесса предназначен многофункциональный обработчик Парциальная обработка. Он также
находится в группе узлов Очистка данных Мастера обработки.
Параметры восстановления задаются на первом шаге Мастера.
Для каждого поля на выбор предлагается три варианта обработки
пропусков (рис. 4.6). В нашем примере все поля с пропусками относятся к типу неупорядоченных. Остальные два шага Мастера пропу-
Рис. 4.6. Задание вариантов обработки пропусков
91
стим, так как они относятся к очистке и сглаживанию временных
рядов.
После выполнения обработчика в таблице можно убедиться, что
значения восстановлены (рис. 4.7). Алгоритм подставил наиболее
вероятное значение (строится плотность распределения вероятностей, и отсутствующие данные заменяются значением, соответствующим ее максимуму).
Рис. 4.7. Восстановленное значение
Обратите внимание, что до обработки поле Кол-во голосовых
сообщений было целого типа, а после обработки стало вещественным. При необходимости его следует снова привести к целому с помощью узла Настройка набора данных.
4. Выявление аномалий
Перед выявлением аномалий полезно изучить распределение
данных, и в тех полях, в которых оно нормальное, проанализировать выбросы используя правило «3s».Часто подтвердить или
опровергнуть гипотезу о нормальности распределений можно,
визуально проанализировав гистограмму значений (визуализатор – Гистограмма). Так, анализ рис. 4.8 позволяет сделать вывод о том, что все поля, кроме Количество голосовых сообщений,
Число международных звонков, Количество обращений в сервисную службу имеют ярко выраженное нормальное распределение
данных.
92
Рис. 4.8. Визуальное исследование характера распределений данных
Применим к таким полям правило «3σ»: любые значения ряда,
отличающиеся от среднего больше чем на три СКО, являются потенциальными аномалиями (узел Калькулятор: Выбросы).
Итак, добавим выражение для аномальных данных (А) –
Использовано дневных звонков. Результатом вычисления в первой
строке является поле OUTLIER_COL6 (рис. 4.9).
Рис. 4.9. Задание параметров выражения
Аномальное количество использованных дневных звонков определяется выходом их количества за пределы заданного диапазона
(рис. 4.10).
93
Рис. 4.10. Шаг обработки при исключении аномалий.
Узел сценария – Калькулятор: Выбросы
В результате таких действий часть записей будет отнесена к категории потенциальных аномалий. Считать их аномалиями или
нет, решать аналитику, но в любом случае эти записи подлежат
пристальному изучению. Если аномалий оказалось очень много,
имеет смысл увеличить порог – задать его равным не 3, а 5 или даже более.
К последнему узлу присоединим еще один узел – Калькулятор :
График (рис. 4.11).
Рис. 4.11. Задание условия выброса
Выявленные потенциальные аномалии удобно представить на
графике, для чего будем использовать визуализатор Диаграмма .
94
Для аномальных точек на ней зададим красный цвет, для не аномальных – белый (рис. 4.12, график для поля Кол-во звонков днем).
Рис. 4.12. Настройка диаграммы
Выделим аномальную точку на графике и нажмем кнопку
Детализация, внизу отобразится соответствующая ей запись
(рис. 4.13).
95
Рис. 4.13. Потенциальные аномалии в поле Кол-во звонков днем
Теперь добавим еще узел Калькулятор: Не выброс, чтобы построить выражение NON_OUTLIER с меткой Не_ВЫБРОС и значением OUTLIER_COL6 OROUTLIER_COL7 OROUTLIER_COL9
OROUTLIER_COL10 OROUTLIER_COL12 OROUTLIER_COL13
OROUTLIER_COL15, т. е. объединение выбросов по всем 7 градациям звонков. Наконец, по метке Не_ВЫБРОС значение NON_
OUTLIER фильтруем с условием именно ложь. После применения
операции Настройка набора, где удалены лишние поля, в результате получим «Очищенный набор», состоящий из 3262 записей
после исключения 70. Таким образом, в результате очистки удалено 2,13% записей, что говорит
о приемлемом качестве данных.
Вынесем диаграммы аномалий на панель отчетов, вместе
с дубликатами и противоречиями, предварительно сгруппироРис. 4.14 Панель отчетов
вав их по папкам (рис. 4.14).
96
4.2. Сокращение признаков
Чтобы проанализировать влияние факторных признаков на результирующий показатель, требуется оценить влияние факторов
и исключить незначащие. Для сокращения признаков в Deductor
имеется два инструмента: Корреляционный анализ и Метод главных компонент . Первый инструмент не используются непосредственно для формирования множества сокращенной размерности,
он только показывает значимость данного признака по сравнению
с другими, что позволяет аналитику принять решение об их сокращении. Второй инструмент непосредственно формирует множество
признаков меньшей размерности. Рассмотрим полезный и наиболее часто применяющийся обработчик – Корреляционный анализ.
В первой части работы пришли к выводу, что в целом качество
данных хорошее. Однако мы проигнорировали два момента:
– с точки зрения определения входных факторов – нет ли среди
них таких, которые вычисляются на основе других, иными словами, нет ли между входными факторами функциональной зависимости?
– с точки зрения решения аналитической задачи прогнозирования оттока мы не получили ответа на вопрос, имеется ли закономерность между численными характеристиками абонентов компании и их решением прекратить пользоваться услугами компании?
В первом случае нет универсальных способов выяснить, между
какими факторами существует полная функциональная зависимость, так как перебор всех возможных пар и расчет для них коэффициентов корреляции на практике не реален. Поэтому нужно
в первую очередь руководствоваться бизнес-правилами предметной области и здравым смыслом. Например, если в наборе данных
присутствуют три поля Цена, Сумма, Количество, то естественно
будет предположить, что поле Цена – расчетное на основе двух
остальных. Во втором случае имеется надежный способ проверить
наличие закономерности – построить модель и оценить ее качество.
Но предварительное исследование до построения модели никогда
не будет лишним.
Для корреляционного анализа будем использовать одноименный обработчик Deductor. Он находится в группе узлов Очистка
данных Мастера обработки. На первом шаге Мастера, как обычно,
задается назначение полей. Если мы ищем корреляционную зависимость X на Y, то поле X будет входным, а поле Y – выходным.
Можно задать одновременно несколько входных полей X1, X2, X3…
97
Рис. 4.15. Настройка назначения полей в корреляционном анализе
В этом случае будут вычисляться парные корреляционные зависимости между X1 и Y,X2 и Y, X3 и Y и т. д.
Настроим входные поля так, чтобы вычислить попарные числовые величины связей между входными параметрами абонентов и
переменной, отвечающей за уход клиента (рис. 4.15).
В процессе обработки значащие факторы могут выбираться
вручную или автоматически (третий шаг Мастера, рис. 4.16). При
ручном выборе около имени каждого входного поля устанавливает-
Рис. 4.16. Настройка обработки значащих факторов
98
Рис. 4.17. Матрица корреляции
ся флажок, если это поле нужно включить в выходную выборку, и
который снимается в противном случае. В автоматическом режиме из выходного набора данных исключаются все факторы, корреляция которых с выходными полями меньше порога задаваемого
уровня значимости. Выберем автоматический режим и порог значимости 0,20.
Выходные результаты предлагается отобразить Матрицей корреляции (рис. 4.17).
Видно, что наиболее значимыми признаками, имеющими линейную функциональную зависимость с выходным полем Уход,
являются: Использовано дневных минут, Абонентская плата 1,
Обращений в сервисную службу. Причем зависимости прямые, т. е.
увеличение числа обращений в сервисную службу влияет на принятие решения об отказе от услуг телекоммуникационной компании.
Поэтому при построении линейных моделей (линейная регрессия,
логистическая регрессия) имеет смысл взять только значимые признаки.
Дополнительный анализ матрицы корреляции позволяет выдвинуть гипотезу о том, что признаки Абонентская плата 1,
Абонентская плата 2, Абонентская плата 3, Абонентская плата 4 функционально связаны с признаками Использовано дневных минут, Использовано вечерних минут, Использовано ночных
минут, Междугородние разговоры соответственно (коэффициенты
корреляции одинаковы). Проверим это, вычислив попарную корреляцию между ними (рис. 4.18).
99
Рис. 4.18. Матрица корреляции
Гипотеза подтверждается (коэффициент корреляции равен 1),
поэтому признаки с абонентской платой можно вообще исключить
из набора данных без потери информативности.
Вид сценария всей лабораторной работы приведен на рис. 4.19.
Рис. 4.19. Примерный вид сценария лабораторной работы
100
Лабораторная работа № 5
СЕГМЕНТАЦИЯ НОМЕНКЛАТУРЫ
Цель работы: – приобретение навыков решения частных задач
логистики складских запасов.
В числе экономических показателей товара важное место занимают рентабельность, товарооборачиваемость и ликвидность. Для
оценки названных показателей в логистике запасов применяются
такие инструменты как ABC и XYZ-анализ (санация номенклатуры по доходности и спросу соответственно).
Заметим, что простые методики ABC и XYZ-анализ легко реализуются в MS Excel [5], однако, поскольку Deductor работает с различными источниками данных, разными учетными системами и
способен обрабатывать большие массивы данных, то рассмотрение
данных методик представляется целесообразным.
5.1. АВС-анализ
В основе АВС-анализа лежит правило Парето: «20% усилий дают 80% результата». В современных условиях правила в разных
приложениях могут отличаться (например, группе А соответствует 10% с доходом 75%), но суть та же: ранжирование ассортимента по разным параметрам и группировка объектов по степени влияния на общий результат. Объектами анализа могут стать товарные группы, товарные категории, товарные позиции, конкретные
бренды, поставщики продукции, клиенты компании. В качестве
критериев анализа можно использовать объем сбыта, величину
прибыли, количество заказов, сумму покупок и т. д. Такой способ категорирования подсказывает, что нужно вести пристальный
контроль за дорогостоящими запасами класса A и слабее отслеживать состояние объектов в классе B, меньше всего заботиться
о классе C.
Алгоритм:
• Определить объекты анализа (клиент, поставщик, товарная
группа/подгруппа, номенклатурная единица и т. п.).
• Определить параметр, по которому будет проводиться анализ
объекта (средний товарный запас, объем продаж, доход, количество единиц продаж, количество заказов и т. п.).
• Сортировку объектов анализа проводить в порядке убывания
значения параметра.
101
• Для определения принадлежности выбранного объекта к группам А, В или С необходимо:
– рассчитать долю параметра от общей суммы параметров выбранных объектов;
– рассчитать эту долю с накопительным итогом;
– присвоить значения групп выбранным объектам.
АВС-анализ – наиболее популярный метод для изучения ассортиментной политики, который можно с большим успехом применить к управлению запасами. ABC-анализ обычно используют с целью отслеживания объемов отгрузки определенных артикулов и
частоты обращений к той или иной позиции ассортимента, а также
для ранжирования клиентов по количеству или объему сделанных
ими заказов.
Порядок выполнения лабораторной работы
В папке Lab5\ABC находится файл Исходные данные.txt (данные и методика расчета заимствованы с сайта[7]), который следует
загрузить в систему Мастером импорта. После сортировки, объемов
продаж Sales по убыванию получим следующую картину (рис. 5.1).
Рис. 5.1. Результат сортировки
Далее в соответствии с алгоритмом рассчитаем долю от общей
суммы. Для этого добавим узел Калькулятор, где зададим выражение (рис. 5.2), значением которого является округленная доля общей суммы объема продаж.
102
Рис. 5.2. Параметры выражения
Round(Sales*100/Stat(«Sales»;»Sum»); 2). Результат – расчет на
рис. 5.3.
Рис. 5.3. Результат вычисления доли
Присоединим еще один узел Калькулятор, где вычислим
переменную CumulativeSum – долю с накопительным итогом.
Значение находиться с помощью соответствующей функции
CumulativeSum(«Part»).
Если построить график изменения кумулятивной доли в зависимости от позиций номенклатуры (поскольку всего 10 наименований процентную долю рассчитывать не будем), увидим следующую
известную картину (рис. 5.4).
103
Рис. 5.4. Зависимость кумулятивной доли
Рекомендуемое распределение:
• группа А – объекты, сумма долей с накопительным итогом которых составляет первые 50% от общей суммы параметров;
• группа В – объекты, следующие за группой А, сумма долей
с накопительным итогом которых составляет 50–80% от общей
суммы параметров;
• группа С – оставшиеся объекты, сумма долей с накопительным итогом которых составляет 80–100% от общей суммы параметров.
Добавим еще один узел Калькулятор, где введем строковую переменную Groupи в соответствии с принятым принципом сформируем ее значение следующим условием:
IF(CumulativeSum<=50;»A»;IF(CumulativeSum>=80;»C»;
»B»)).
104
Наконец с помощью Настройки набора оставим только нужные
поля (рис. 5.5).
Рис. 5.5. Результирующая таблица по АВС-анализу
Пример сценария приведен на рис. 5.6.
Рис. 5.6. Сценарий АВС-анализа
5.2. XYZ-анализ
XYZ-анализ позволяет произвести классификацию ресурсов
компании в зависимости от стабильности их потребления и точности будущего прогнозирования. С помощью этого метода можно
определить товары, имеющие постоянный спрос, товары, продажи
которых подвержены колебаниям (сезонность) и, товары, потребность в которых носит случайный характер.
XYZ-анализ представляет интерес для дистрибьюторов и производителей, имеющих свои склады. Любая закупка связана
с большими издержками для компании (логистика, хранение и т.
д), а также с прямыми рисками, например списание товара по сроку годности. Ведение точной сбалансированной закупки является
105
приоритетной задачей как оптового, так и розничного предприятия. Применяя XYZ-анализ в отношении своих клиентов, можно строить прогноз продаж на будущие периоды, разрабатывать
специальные программы для постоянных лояльных (не подверженных различным всплескам заказов) клиентов, а также проводить различные мероприятия по переводу клиентов из группы Y,
Z в группу X.
Основная идея XYZ-анализа состоит в группировании объектов
анализа по мере однородности анализируемых параметров по коэффициенту вариации, рассчитываемому по следующей формуле:
ν=
∑ (xi − x)2 / n 100%,
x
где xi – значение параметра по оцениваемому объекту за i-й период;
x – среднее значение параметра по оцениваемому объекту анализа;
n – число периодов.
Значение квадратного корня есть не что иное, как стандартное
отклонение вариационного ряда, чем оно больше, тем дальше от
среднеарифметического значения находятся анализируемые данные. При сравнении вариационных рядов между собой используют
коэффициент вариации, он позволяет оценить, насколько сильно
значения параметра отличаются от среднеарифметического.
Группа X – ресурсы характеризуются стабильной величиной потребления, незначительными колебаниями в их расходе и высокой
точностью прогноза. Группа Y – ресурсы характеризуются известными тенденциями определения потребности в них (например, сезонными колебаниями) и средними возможностями их прогнозирования. Группа Z – потребление ресурсов нерегулярно, какие-либо
тенденции отсутствуют, точность прогнозирования невысокая.
Этот метод дает возможность определить запасы, которые не
приносят большой прибыли или не входят в число наиболее дорогих, однако потребность в них довольно постоянная и частая.
Критериями XYZ-анализа могут быть стабильность продаж и доходность товаров.
Алгоритм:
• Определить объекты анализа (клиент, поставщик, товарная
группа/подгруппа, номенклатурная единица и т. п.).
• Определить параметр, по которому будет проводиться анализ
объекта (средний товарный запас, объем продаж, доход, количество единиц продаж, количество заказов и т. п.).
106
• Определить период и количество периодов, по которым будет
проводиться анализ (неделя, месяц, квартал, полугодие, год).
• Определить коэффициент вариации для каждого объекта анализ, а именно: средние продажи за месяц (агрегация при группировке не требует дополнительного введения формул); стандартное
отклонение вариационного ряда (агрегация при группировке не
требует дополнительного введения формул).
• Отсортировать объекты анализа по возрастанию значения коэффициента вариации.
Определить группы X, Y и Z.
Порядок выполнения лабораторной работы
В папке Lab5\XYZ находиться файл Исходные данные.txt (данные и методика заимствованы с сайта [7]), который следует загрузить в систему Мастером импорта (рис. 5.7).
Рис. 5.7. Импорт исходных данных
107
Для расчета среднего значения Quantity выполним группировку по полю товар, отключив поле месяц с агрегацией количества
по среднему значению. Для расчета стандартного отклонения
Quantity_j выполним группировку по полю товар с агрегацией
количества по стандартному отклонению (числитель приведенной
выше формулы). Наконец выполним слияние этих двух группировок в общую таблицу по полю товар на основе Внешнего левого соединения.
В калькуляторе по приведенной формуле вычислим округленное значение коэффициента вариации Variation по формуле
Round(Quantity_j/Quantity*100;0) и величины средних продаж за
месяц Round(Quantity;0). После Настройки набора останутся только нужные поля (рис. 5.8).
Рис. 5.8. Результат настройки набора
Далее коэффициент вариации надлежит отсортировать по возрастанию и построить рекомендуемое распределение по группам:
• X – объекты, коэффициент вариации которых не превышает
10%;
• Y – объекты, коэффициент вариации составляет 10% – 25%;
• Z – объекты, коэффициент вариации превышает 25%.
Для этого с помощью Калькулятора сформируем строковую переменную Group по формуле IF(Variation<10; «X»;IF(Variation>2;
«Z»; «Y»)).
108
Если построить график зависимости коэффициента вариации от
позиций номенклатуры, увидим следующую картину (рис. 5.9).
Рис. 5.9. Зависимость при XYZ-анализе
Сформируем результирующую таблицу, Настройкой набора удалив лишние поля (рис. 5.10).
Рис. 5.10. Результирующая таблица по XYZ-анализу
109
Окончательный вид сценария показан на рис. 5.11.
Рис. 5.11. Сценарий XYZ-анализа
110
Лабораторная работа № 6
ЗАДАЧИ ОПТИМИЗАЦИИ СКЛАДСКИХ ЗАПАСОВ
Цель работы: получение практических навыков расчета
в Deductor экономичного размера заказа, параметров систем управления запасами, страхового запаса.
6.1. Расчет экономичного размера заказа
Расчет наиболее экономичного размера заказа производится
в рамках системы управления запасами с фиксированным размером заказа, который должен быть равен наиболее экономичному
размеру заказа. В этой системе размер заказа является постоянной
величиной и формируется при уменьшении размера запаса до определенного критического уровня. Система основана на выборе такого размера партии, который минимизировал бы общие издержки
управления запасами, которые в свою очередь делятся на издержки выполнения заказа и издержки хранения запасов. Графически
зависимость общих годовых издержек от размера заказа представлена на рис. 6.1.
Рис. 6.1. Зависимость общих годовых издержек от размера заказа
111
Из рисунка видно, что общие издержки достигают минимума
при размере заказа приблизительно 400 штук. Таким образом, этот
размер заказа для данного случая является оптимальным.
Для расчета наиболее экономичного размера заказа EOQ используется формула Уилсона:
EOQ =
2SÑ0
,
C1i
где S – годовое потребление; C0 – затраты на выполнение заказа;
C1 – цена единицы продукции; i – затраты на содержание запасов.
C помощью формулы Уилсона можно рассчитать оптимальный
размер заказа в соответствии с конкретными условиями деятельности предприятия. В случае, если запасы пополняются не мгновенно, а в течение определенного периода времени (например, при
пополнении запасов за счет собственного производства), то используется следующая формула для расчета наиболее экономичного
размера заказа EOQ:
EOQ =
2SC0
,
S

C1i  1 − 
Q

где Q – объем выпуска продукции, за счет которой пополняются запасы.
В условиях дефицита товаров, являющихся запасами, наиболее
экономичный размер заказа EOQ определяется по формуле
EOQdef = EOQ
C1i + h
,
h
где EOQ – наиболее экономичный размер заказа без учета дефицита; h – издержки, обусловленные дефицитом.
Алгоритм:
• Рассчитать годовые затраты на хранение единицы продукции.
• Рассчитать оптимальный размер заказа EOQ.
• Рассчитать оптимальный размер заказа EOQ при собственном
производстве.
• Рассчитать оптимальный размер заказа EOQ в условиях дефицита.
112
Порядок выполнения лабораторной работы
В папке Lab6\EOQ находится файл Исходные данные для расчета EOQ.txt (исходные данные заимствованы с сайта [7]). Результат
импорта представлен на рис. 6.2.
Рис. 6.2. Результат импорта файла исходных данных
Далее таблица пополняется столбцами расчетов в Калькуляторе.
Расчет:
а) годовых затрат на хранение единицы продукции (C1_i) C1*i_
percent/100. Имена полей таблицы показаны на рис. 6.3;
Рис. 6.3. Имена полей
б) оптимального размера заказа (EOQ)
Sqrt(2*C0*S/C1_i);
в) оптимального размера заказа при собственном производстве
(EOQ_m)
Sqrt(2*C0*S/C1_i*(1-S/p));
г) оптимального размера заказа в условиях дефицита (EOQ_s)
EOQ*Sqrt((C1_i+h)/h).
На рис. 6.4 приведены результаты расчетов
113
Рис. 6.4. Расчетные данные
Анализ по методу «Что-если» позволяет исследовать как будет
вести себя построенная система обработки при подаче на ее вход
тех или иных данных. Проще говоря, проводится эксперимент,
в котором, изменяются значения входных полей.
Для расчета по принципу «Что-если» применим обработчик
Пользовательская модель (по формулам заданным вручную), в котором расчетные поля объявим выходными, а остальные поля входными. Изменяются входные поля, получаем требуемые показатели
по каждому товару. На рис. 6.5 показаны результаты для товара 1.
Наконец, добавим узел Настройка набора, в котором выполним визуализацию в виде OLAP-куба. Единственное измерение –
Наименование, а фактами являются расчетные данные. Результат
построения с кросс-диаграммой и сценарием обработки приведен
на (рис. 6.6).
Рис. 6.5. Результат расчета по принципу «Что-если»
114
115
Рис. 6.6. Результат работы
Расчет оптимального размера заказа позволит минимизировать
издержки хранения, поддерживая при этом заданный уровень
спроса.
6.2. Расчет параметров систем управления запасами
Если поставка товаров происходит в установленные сроки или
же существует необходимость быстро реагировать на изменение
сбыта, для расчета запаса используют систему с фиксированным
интервалом времени между заказами (ФИВМЗ) – рис. 6.7. В рассматриваемой системе через постоянные промежутки времени проводится проверка состояния запасов и, если после предыдущей проверки было реализовано некоторое количество запаса, то подается
заказ на пополнение запасов. Объем заказа определяется по принципу восполнения запаса до максимального желательного уровня.
Объем
запаса
Максимальный
запас
Точка заказа
Гарантийный
запас
Время, дни
R L R
L R
L
L
Рис. 6.7. Система с фиксированным интервалом времени подачи заказа
В пособии [5] приведены алгоритмы расчеты параметров различных применяемых систем управления запасами с примерами
реализации в MS Excel, в работе [6] рассмотрен пример проектирования системы управления запасами с помощью имитационного
моделирования в программе AnyLogic. Ниже представлена техника выполнения аналогичных расчетов в Deductor.
Максимальный уровень запасов М рассчитывается по формуле
M=B+S(L+R),
(6.1)
где B – страховой запас; S – среднесуточный сбыт; L – время доставки заказа; R – интервал времени между проверками.
116
В системе управления запасами с двумя уровнями, или
S-системе, наряду с максимальным уровнем запасов используется
точка заказа
R

P =+
B S  L + .
2 
(6.2)
Поскольку для исполнения заказа требуется определенный период времени, то величина заказываемой партии увеличивается на
размер ожидаемого расхода за этот период. Таким образом, если
в момент проверки J<P, то подается заказ
G = M –J + SL,
(6.3)
где J – фактический уровень запаса в момент проверки; G – размер
заказываемой партии.
В противном случае заказ не подается, и процесс повторяется во
время следующей проверки.
Алгоритм:
• Рассчитаем точку заказа для товара с месячным интервалом
между проверками и временем доставки заказа L дней.
• Расcчитаем среднесуточный сбыт.
• Определим максимальный уровень запаса.
• Найдем точку заказа.
• Рассчитать остаток на момент проверки.
• Определим размер заказа.
Порядок выполнения работы
В папке Lab6\OrderPoint находится файл Исходные данные
(продажи).txt . Импортируем его в программу (рис. 6.8) и получим
таблицу объема продаж Q по числам месяца.
Необходимо рассчитать среднесуточный сбыт, поэтому преобразуем временной ряд к периоду Месяц, исключив тем самым день
и год, и с помощью Калькулятора найдем среднее значение S (тип
Целое) с помощью функции Stat(«Q»;»avg»).
Далее определим период между проверками и объем продаж за
месяц. Для этого выполним группировку по полю Дата (Месяц) –
Измерение, причем поле Дата продажи определим как факт и
агрегируем по количеству, Объем продаж агрегируем по сумме, а
среднесуточный сбыт – по признаку Первый, т. е. берется первый
факт из набора данных (рис. 6.9).
117
Рис. 6.8. Диаграмма исходных данных
Рис. 6.9. Результат группировки
Выполним настройку набора, где поле Дата продажи переименуем в Период между проверками с именем столбца R.
Теперь с помощью калькулятора определим максимальный уровень запаса M по формуле (6.1) следующим образом:
val(GetVar(«B»))+S*(val(GetVar(«L»))+R),
где значение переменных L=5 и B=50 заданы в пункте меню Сервис
и могут быть изменены.
118
Рис. 6.10. Результирующая таблица расчетов
Рис. 6.11. Сценарий расчета точки и размера заказа
Аналогично, рассчитывается точка заказа P в калькуляторе по
формуле (6.2) следующим образом:
val(GetVar(«B»))+S*(val(GetVar(«L»))+R/2).
Рассчитаем фактический запас J как разницу максимального уровня М и текущего объема продаж Q (узел Калькулятор:
Остаток рис. 6.11).
Размер заказа G рассчитывается по формуле (6.3):
IFF(J<P;M–J+S*val(GetVar(«L»));0).
Результаты расчета приведены на рис. 6.10, пример сценария –
на рис. 6.11.
6.3. Страховой запас в условиях неопределенности
Страховые запасы предназначены для непрерывного удовлетворения спроса на заданном интервале времени. Величина страхового
запаса должна изменяться в зависимости от тенденций изменения
119
спроса. Оптимальный размер страхового запаса позволит сократить издержки на его хранение, удовлетворяя при этом заданный
уровень спроса. На практике приходится учитывать неопределенности, вызванные главным образом случайным характером ежедневного спроса D и продолжительностью логистического цикла Т.
Случайность основных параметров поставок и спроса, а также логистические риски (например, срыв поставки) являются причинами
создания страховых запасов. Грубо можно оценить страховой запас
как произведение максимально возможных величин дневного потребления на задержку поставки, однако для более точных оценок
применяется вероятностный подход.
Для расчета величины страхового запаса с учетом названных неопределенностей используют формулу Бауэрсокса:
Qstr = ksc , (6.4)
где k – коэффициент, определяемый с помощью табулированной функции f(k); σc – общее среднеквадратическое отклонение.
Заметим, что следует быть уверенным в нормальности распределений объема продаж в день и логистического цикла.
Функция f(k) – функция потерь, которая определяется площадью, ограниченной правой ветвью «кривой нормального распределения», рассчитывается по формуле
f (k) =
(1 − SL ) Q
(6.5)
,
sc
где SL – величина дефицита; Q – размер заказа.
Величина дефицита SL может быть названа вероятностью отсутствия дефицита (значение лежит в диапазоне от 0 до 1) , «уровнем
доступности продуктов» или «желательным уровнем обслуживания». Общее среднеквадратическое отклонение рассчитывается по
формуле
s=
ñ
2
2 2
T s2D + D sT
,
(6.6)
где T, D – соответственно среднее значение продолжительности
функционального цикла и количество продаж продукта в день; s2D ,
2
sT
– соответственно дисперсии случайных величин D и T. Заметим,
что в известной книге Бауэрсокса [10] квадрат при T отсутствует,
что не соответствует размерности результата – шт. Известно также,
что использование названной формулы приводит к нежелательно120
му эффекту возрастания страхового запаса с увеличением размера
заказа. Приведем алгоритм расчета.
Алгоритм:
• Рассчитать продолжительность, среднее и среднеквадратическое отклонение значения функционального периода.
• Определить продолжительность, среднее и среднеквадратическое отклонение значения количества продаж продукта в день.
• Рассчитать общее среднеквадратическое отклонение.
• Найти значение функции потерь .
• По рассчитанному значению функции потерь найти соответствующее значение коэффициента k.
• Рассчитать значение страхового запаса для заданных значений величины дефицита и размера заказа.
Порядок выполнения лабораторной работы
В папке Lab6\safety stock находятся 3 файла: Исходные данные (календарь поставок).txt, Исходные данные (продажи).txt,
Значения функции потерь и коэффициента k (данные заимствованы с сайта [7]). Импортируем файлы в память Deductor. Результат
импорта и вид функции потерь представлен на рис. 6.12.
В соответствии с алгоритмом выполним расчеты:
1. Исходные данные (Календарь поставок).
Поля:
– дата оформления заказа (Date_begin);
– дата поставки(Date_end).
А. Продолжительность функционального цикла Т:
DaysBetween(Date_begin;Date_end).
Б. Среднее значение T (T_avg):
Round(Stat(«T»;»Avg»);2).
С. Среднеквадратическое отклонение T (sko_T):
Round(Stat(«T»;»StdDev»);2).
2. Исходные данные (Продажи).
Поля:
– дата продажи (Date_sale);
– объем продажи (Count_sale).
А. Среднее значение D (D_avg):
Round(Stat(«Count_sale»;»Avg»);2)
121
122
Рис. 6.12. Результат импорта
Рис. 6.13. Шаг слияния и его результат
Б. Среднеквадратическое отклонение D (sko_D):
Round(Stat(“Count_sale”;”StdDev”);2).
3. Выполним слияние (объединение) поставок и продаж в одной
таблице (рис. 6.13).
4. Выполним группировку результата слияния по Т среднее (измерение) с агрегацией остальных фактор по признаку Первый, а затем вычислим общее СКО (sko) по формуле (6.6):
Round(Pow(Pow(T_avg;2)*Pow(sko_D_j;2)+pow(D_
avg_j;2)*pow(sko_T;2);0.5);2).
5. Рассчитаем значение функции потерь f по формуле (6.5):
Round((1-val(GetVar(«S»)))*val(GetVar(«Q»))/sko;4).
Заметим, что в данном примере заданы значения S=0.99; Q=50,
которые могут быть изменены через пункт меню Сервис.
123
Результат расчета (рис. 6.14).
Рис. 6.14. Результат расчета СКО и f(k)
6. Выполним слияние результата (через полное объединение)
с файлом исходных данных Значение функции потерь и коэффициента k.txt табличных значений.
7. Для определения коэффициента k необходимо найти минимальное значение разницы табличной и вычисленной f(k).
C помощью калькулятора вычислим разницу raz по формуле
round(Abs(f_table_j-f);4),
где f_table_j – значения столбца табличной функции.
Следующим шагом добавим столбец min (логического типа) и
определим его как «истина» в случае, если разница равна минимальному значению по формуле
raz=Stat(«raz»;»min»).
8. Отфильтруем таблицу по признаку min «истина» рис. 6.15 и
вычислим страховой запас Q_str по формуле
k_j*sko.
Рис. 6.15. Результат нахождения коэффициента k(поле k_j)
Итоговая таблица расчетов и их сценарий приведены, на рис.
6.16 и 6.17 (соответственно).
124
Рис. 6.16. Итоговая таблица расчетов
Рис. 6.17. Сценарий расчета страхового запаса
в условиях неопределенности
125
Лабораторная работа № 7
ВЫБОР ПОСТАВЩИКА
Цель работы – применение метода взвешивания в Deductor на
примере задачи выбора поставщика.
Задача выбора поставщика является важной операцией в логистике закупок. Рассмотрим простейший вариант: метод взвешивания негативных критериев выбора поставщика на конкретном примере.
Порядок выполнения лабораторной работы
В папке Lab7\ находятся файл Закупки.txt. Импортируем его
в систему Deductor и видим картину, приведенную на рис. 7.1.
Основные поля: наименование поставщика (COL2), наименование товара (COL4), количество (COL7) и цена (COL9) закупаемого
товара, наличие задержек поставок (COL6), количество дефектов
(COL8). Оба последних критерия необходимо умножить на соответствующие весовые коэффициенты важности, а результаты сложить. Очевидно, что тот поставщик лучше, данная сумма у которого меньше. В общем случае, конечно, нужно также учесть и положительные факторы. В данном случае этот фактор один – Объемы
закупок по отдельным товарам.
Нам потребуется ввести весовые коэффициенты по выбранным
критериям. Для этого добавим две вещественные переменные для
весов в пункт меню Сервис:W_n – вес количества дефектов; W_z –
вес наличия опозданий (рис. 7.2). Сумма весов должна равняться
единице.
1. Выполним расчеты для вспомогательных переменных в обработчике Калькулятор:
– объем поставок Объем_j(EXPR): COL7*COL9;
– произведение веса на количество дефектов
WN (EXPR_1): COL8*val(GetVar(«W_n»)).
2. Преобразуем значение поля Задержка поставки от логического к целому типу (наличие галочки соответствует
False (Нет)) Z(EXPR_2) – IFF(COL6=«Нет»;1;0):
– произведение веса на количество задержек
WZ (EXPR_3) – EXPR_2*val(GetVar(«W_z»));
– рассчитаем «Суммарный негатив»
(EXPR_4) – EXPR_3 + EXPR_1.
126
127
Рис. 7.2. Задание весовых коэффициентов
Рис. 7.1. Содержимое файла исходных данных
В результате получим следующую таблицу (рис. 7.3).
Рис. 7.3. Результат расчетов
Выполним Группировку по поставщикам (рис. 7.4) и построим
OLAP с измерениями Поставщик и Товар.
Рис. 7.4. Распределение поставщиков по суммарному рейтингу
(склад №1 –худший)
128
Затем получим самостоятельно следующие отчеты:
– сортировка Поставщиков по возрастанию «суммарного негатива» (рис. 7.5);
Рис. 7.5. Вид сценария и результат сортировки
– распределение поставщиков по «суммарному негативу» в разрезе товаров (рис. 7.6);
Рис. 7.6. Распределение по негативу в разрезе товаров
– распределение поставщиков по объемам поставок (рис. 7.7)
129
Рис. 7.7. Распределение по объемам поставок
Очевидно, что
«Фасадница».
130
максимальные
обороты
обеспечивает
ИП
Лабораторная работа № 8
ЗАДАЧИ СЕГМЕНТАЦИИ И КЛАССИФИКАЦИИ
Цель работы – научиться применять методы Data Mining для
решения задач сегментирования и классификации на примере задачи банковского кредитования (скоринга)
Data Mining в банковском кредитовании
Одной из важнейших задач в банковском кредитовании является анализ потенциальных заемщиков. В настоящее время большинство российских банков решают вопрос снижения своих кредитных
рисков путем простого переноса их на поручителей заемщика. В современных российских условиях стремительного спроса на услуги
банковского кредитования банк, который умеет оценить кредитный риск как можно точнее, получит преимущество над конкурентами, дополнительную прибыль, возможность управлять уровнем
риска. Одним из доступных инструментов для оценки кредитного
риска, особенно в условиях отсутствия экспертов по оценке риска,
являются методы Data Mining.
В основе технологии Data Mining лежат алгоритмы поиска закономерностей между различными факторами в больших объемах
данных. При этом анализируются зависимости между всеми факторами; но, поскольку даже при небольшом числе факторов количество их всевозможных комбинаций растет экспоненциально,
в Data Mining применяются алгоритмы априорного отсечения слабых зависимостей. Говоря терминами анализа кредитоспособности, Data Mining на основе данных о выданных кредитах выявляет
те факторы, которые существенно влияют на кредитоспособность
заемщика, и вычисляет силу этого влияния. Соответственно, чем
сильнее определенный фактор влияет на кредитоспособность, тем
больший балл ему присваивается в методике скоринга. Чем больше данные держателя кредитной карты похожи на данные «кредитоспособного гражданина», тем больший лимит по кредиту он
может получить, тем лучшие условия ему могут быть предоставлены.
Главное преимущество методик на основе Data Mining заключается в том, что они могут работать на малых выборках.
Эксперты в области банковского кредитования выделяют несколько факторов, которые влияют на кредитоспособность человека (табл. 8.1).
131
Таблица 8.1
Факторы, влияющие на кредитоспособность
Категория
Базовая персональная информация
Информация о семейном положении
Регистрационная информация
Некоторые факторы категории
Пол, возраст, образование ...
Состояние в браке, количество детей ...
Информация о финансовом положении
Информация о обеспеченности
Регистрация, срок проживания по
данному адресу ...
Специальность, сфера деятельности
предприятия ...
Зарплата, другие начисления и удержания
Имущество, ценные бумаги...
Информация о кредитной
истории
Количество прошлых кредитов, текущие обязательства ...
Информация о занятости
Тем самым должно достигаться и отнесение потенциального заемщика к способным вернуть кредит или не способным. При наличии
статистических данных (кредитной истории) модель классификации строится с использованием дерева решений или нейронной сети.
Задание
Ознакомьтесь с приведенным ниже теоретическим материалом, который содержит описания обработчиков и визуализаторов
Deductor для выполнения общего и индивидуального задания. Для
работы потребуются следующие обработчики и визуализаторы.
Обработчик и визуализатор Дерево решений
Построение дерева решений производится в процессе обучения.
Настройки параметров обучения можно изменить в окне Мастера
(рис. 8.1).
Параметры обучения дерева решений следующие:
– Минимальное количество примеров, при котором будет создан новый узел. Задается минимальное количество примеров, которое возможно в узле. Если примеров, которые попадают в данный
узел, будет меньше заданного, узел считается листом (т. е. дальнейшее ветвление прекращается). Чем больше этот параметр, тем
менее ветвистым получается дерево.
132
Рис. 8.1. Параметры обучения обработчика Дерево решений
– Строить дерево с более достоверными правилами в ущерб
сложности. Включаем специальный алгоритм, который, усложняя структуру дерева, увеличивает достоверность результатов
классификации. При этом дерево получается, как правило, более
ветвистым.
– Уровень доверия, используемый при отсечении узлов дерева.
Значение этого параметра задается в процентах и должно лежать
в пределах от 0 до 100. Чем больше уровень доверия, тем более ветвистым получается, дерево и (соответственно) чем меньше уровень
доверия, тем больше узлов будет отсечено при его построении.
Для просмотра дерева решений предназначен одноименный визуализатор (рис. 8.2).
Рис. 8.2. Пример Дерева решений
Рассмотрите также следующий вариант: при построении правил
задайте минимальное количество примеров, при котором будет создан новый узел равным 1 (см. рис. 8.1). Будем строить дерево с бо133
лее достоверными правилами в ущерб сложности (задайте уровень
доверия 100% – см. рис. 8.1).
Обработчик Группировка
Группировка позволяет объединять записи по полям –
Измерениям, агрегируя данные в полях – Фактах для дальнейшего
анализа. Для настройки группировки требуется указать, какие поля являются измерениями, а какие – фактами. Для каждого факта
требуется указать функцию агрегации. Это может быть сумма, среднее, максимальное или минимальное количество. При выполнении
группировки в таблице данных ищутся записи с одинаковыми полями–Измерениями. К полям–Фактам таких записей применяются
функции агрегации. Группировка осуществляется и при построении
OLAP-куба. Однако в отличие от куба при использовании обработчика Группировка формируется таблица с сгруппированными значениями, которую можно в дальнейшем использовать для обработки
другими алгоритмами (обработчиками) Deductor.
Обработчик Сортировка
С помощью сортировки можно изменять порядок следования
записей в исходной выборке данных в соответствии с заданным
пользователем алгоритмом сортировки. Результатом выполнения
сортировки будет новый набор данных, записи в котором будут следовать в соответствии с заданными параметрами сортировки.
В окне настройки параметров сортировки представлен список
условий сортировки, в котором содержатся две графы:
– имя поля – имена полей, по которым следует выполнить сортировку;
– порядок сортировки (порядок сортировки данных в соответствующем поле – по возрастанию или по убыванию).
Визуализатор Карта Кохонена
Данный визуализатор обеспечивает просмотр построенной в результате обучения самоорганизующейся карты, которую можно
представить в виде слоеного пирога, каждый слой которого представляет собой раскраску, соответствующую одной из компонент
исходных данных. Полученный набор раскрасок может использоваться для анализа закономерностей, имеющихся между компо134
нентами набора данных (все упоминания о цвете здесь и дальше –
см. экранную форму в программе). Эксперт, последовательно просматривая карты, выдвигает гипотезы, объясняющие объединение
прецедентов в отдельные группы (кластеры). Например, карты на
рис. 8.3 подтверждают гипотезу, что кредиты на длительный срок
востребованы исключительно заемщиками молодого возраста.
Рис. 8.3. Самоорганизующиеся карты
Визуализатор Правила
Является альтернативой Дереву решений – правила отображаются не в иерархичном, а обычном продукционном виде «если-то».
Визуализатор Таблица сопряженности
Для того чтобы оценить качество классификации данных, обычно используют таблицу сопряженности (рис. 8.4). Для решения
задачи классификации используется таблица, в которой уже есть
выходной столбец, содержащий класс объекта. После применения
алгоритма добавляется еще один столбец с выходным полем, но его
значения уже вычисляются по построенной модели. При этом значения в столбцах могут отличаться. Чем больше таких отличий,
тем хуже построенная модель классификации. В данном примере
(см. рис. 8.4) три класса, поэтому таблица сопряженности имеет
размер 3 на 3 ячейки. На главной диагонали таблицы в экранной
форме показано количество правильно классифицированных при135
меров (зеленый цвет). Красным цветом выделены неправильно распознанные примеры.
Фактически
Класс 1
Класс 2
Класс 3
Итого
Класс 1
239
7
4
250
Классифицировано
Класс 2
Класс 3
10
1
11
17
17
Итого
239
17
22
278
Рис. 8.4. Таблица сопряженности
Таблицу сопряженности удобно применять для оценки качества модели, построенной с помощью обработчика Дерево решений.
Если количество неправильно классифицированных примеров довольно велико, это говорит о плохо построенной модели и нужно
либо изменить параметры построения модели, либо увеличить обучающую выборку, либо изменить набор входных полей. Если же
количество неправильно классифицированных примеров мало, это
может быть почвой для дальнейшего анализа и говорит о том, что
пример является аномалией. В этом случае можно увидеть, чем
же характеризуются такие примеры, и возможно добавить новый
класс для отнесения этих примеров.
Визуализатор «Что-если»
Анализ по методу «Что-если», как выше было отмечено, позволяет узнать, как будет вести себя построенная система обработки при подаче на ее вход тех или иных данных. В данном случае
будут изменяться обучающая или рабочая выборки нейронной сети
или Дерева решений, а пользователь будет наблюдать за изменением значений на выходе (рис. 8.5).
Рис. 8.5. Таблица «Что-если»
136
С использованием диаграммы «Что-если» можно решать обратную задачу – визуально наблюдать, при каких значениях входных
переменных будет достигнуто желаемое выходное значение (рис. 8.6).
Рис. 8.6. Диаграмма «Что-если»
Порядок выполнения работы
В папке \Lab8 расположено 2 файла:
– Credit.ded – файл сценария Deductor.
– Credit.txt – файл с информацией о выдаче и возврате кредитов
физическим лицам (кредитная история).
Скопируйте эти файлы в свою папку и загрузите предложенный
сценарий. Примерный вид сценария по завершению работы приведены на рис. 8.21. После загрузки файла сценария и выполнения
импорта увидим окно для задания параметров столбцов (рис. 8.7).
1. Разбиение на группы.
Для начала рассмотрим задачу разбиения данных на группы
с помощью визуализатора OLAP-куб, а именно выполним визуализацию для 1-й строки сценария (импорт данных из хранилища), где
выберем в качестве измерений столбцы Возраст и Цель кредитования, а в качестве факта – столбец Сумма кредита. Далее следует
указать измерение Цель кредитования как Измерение в сроках, а
измерение Возраст как Измерение в столбцах. В итоге на кросстаблице (рис. 8.8) можно посмотреть соответствующее распределение.
2. Преобразуйте дату кредитования к виду Год + Месяц. Для этого нужно встать на узел Сегментация заемщиков и использовать
соответствующий обработчик.
137
Рис. 8.7. Шаг импорта файла с исходными данными
Рис. 8.8. Распределение сумм кредитов в разрезе целей и возрастов
138
3. Квантование возраста кредиторов.
Часто аналитику необходимо отнести непрерывные данные (например, количество продаж) к какому-либо конечному набору (например, всю совокупность данных о количестве продаж необходимо разбить на 5 интервалов – от 0 до 100, от 100 до 200 и т. д. и
отнести каждую запись исходного набора к какому-то конкретному интервалу) для анализа или фильтрации исходя именно из этих
интервалов. Для этого в Deductor Studio применяется инструмент
квантования (или дискретизация).
Квантование предназначено для преобразования непрерывных
данных в дискретные. Преобразование может проходить как по
интервалам (данные разбиваются на заданное количество интервалов одинаковой длины), так и по квантилям (данные разбиваются
на интервалы разной длины так, чтобы в каждом интервале находилось одинаковое количество данных). В качестве значений результирующего набора данных могут выступать номер интервала,
нижняя или верхняя граница интервала, середина интервала, либо
метка интервала (значения, определяемые аналитиком). Примером
использования данного инструмента может служить разбиение
данных о возрасте кредиторов на 5 интервалов (до 30 лет, 30–40,
40–50, 50–60, старше 60 лет). Исходные данные распределятся по
пяти интервалам именно так, поскольку согласно статистике минимальное значение возраста кредитора 19, а максимальное – 69
лет. Это необходимо аналитику для оценки кредиторской активности разных возрастных групп с целью принятия решения о стимулировании кредиторов в группах с низкой активностью (например,
уменьшение стоимости кредита для этих групп) и, быть может,
увеличении прибыли в возрастных группах кредиторов с высоким
риском (путем увеличения для них стоимости кредита).
Встанем на узел Преобразование даты и воспользуемся Мастером
квантования (рис. 8.9). В нем выберем назначение поля Возраст, укажем способ разбиения По интервалам, зададим количество интервалов, равное 5, в качестве значения выберем Метку интервала.
На следующем шаге Мастера определим сами метки соответственно возрасту кредиторов (рис. 8.10).
Далее построим OLAP-куб (рис. 8.11), использовав квантованный возраст и дату (Год+Месяц).
Для выполнения других заданий понадобятся рассмотренные
выше обработчики:
– Дерево решений;
– Группировка;
139
Рис. 8.9. Мастер квантования
Рис. 8.10. Определение меток интервалов
– Сортировка;
и визуализаторы:
– Карта Кохонена;
– Дерево решений;
140
Рис. 8.11. Распределение сумм кредитов
по возрастным группам и месяцам
– правила;
– таблица сопряженности;
– «что-если»;
– диаграмма.
4. При загрузке исходного файла сценариев Credid.ded загружается визуализатор Карты Кохонена (см. рис. 8.3).
В предложенном сценарии пройдите через настройку первого
пункта – импорт данных из хранилища «Данные по кредитованию». Обратите внимание на то, какие поля измерения и факты
подключались.
Сценарий производит сегментацию заемщиков на шесть кластеров с помощью самоорганизующихся карт.
Сегментирование производилось по следующим входным параметрам:
– цель кредитования;
– сумма кредита;
– срок кредита;
– возраст;
– среднемесячный доход;
– среднемесячный расход;
– количество иждивенцев.
Каждому узлу карты можно поставить в соответствие участок
на рисунке (четырех или шестиугольный), координаты которого
определяются координатами соответствующего узла в решетке.
Теперь для визуализации остается только определить цвет ячеек
141
этой картинки. Для этого и используются значения компонент.
Самый простой вариант – использование градаций серого. В этом
случае ячейки, соответствующие узлам карты, в которые попали
элементы с минимальными значениями компонента или не попало
вообще ни одной записи, будут изображены черным цветом, а ячейки, в которые попали записи с максимальными значениями такого
компонента, будут соответствовать ячейке белого цвета. Конечно,
можно использовать любую градиентную палитру для раскраски.
Полученные раскраски в совокупности образуют атлас, отображающий расположение компонент, связи между ними, а также относительное расположение различных значений компонент. С помощью самоорганизующихся карт Кохонена можно посмотреть зависимости между различными характеристиками кредиторов и выделить сегменты кредиторов, объединив их по схожим признакам.
Пройдите через настройку второго пункта – Сегментация заемщиков. Поскольку Карты Кохонена – разновидность нейросети
(способные к самообучению), их настройка похожа на настройку
нейросети, рассмотренной в 3-й лабораторной работе.
Можно наблюдать, какие поля заданы входными (Выходное поле – Давать кредит).Убедитесь, что входные и выходные поля соответствуют вышеназванным (рис. 8.12).
Рис. 8.12. Настройка назначений столбцов
142
В данной стройке имеется важный пункт Настройка нормализации, где можно задать значимость выходных полей. Оставим значимость одинаковой для всех полей без изменений.
Каждому входному полю соответствует своя карта. В нашем
примере семь входных полей. Установим вручную разбиение на 6
кластеров, добавим отображение в виде Карты Кохонена и визуализатора «Что-если». Два входных поля (среднемесячный расход и
число иждивенцев) из набора исключаются. Отметим галочкой показ карты с набором кластеров. Запустим процесс разбиения.
В результате получим пять карт по оставшимся входным полям,
плюс карта с набором из 6 кластеров (с 0-го по 5-й), распределенных в экранной форме по цветам (см. рис. 8.3).
Интерпретация карт. При изучении карт можно заметить,
что в пятый кластер попадают молодые заемщики с большими сроками и суммами кредита, одной из целей кредитования является
«Оплата образования». Данный эффект наблюдается при щелчке
кнопкой мышки по карте Срок кредита. При этом метка отражается на других картах. При показе «Что-если» можно наблюдать,
какие факторы оказывают наибольшее и наименьшее влияние на
выдачу кредита.
Следующим шагом в сценарии является интерпретация построенных карт с помощью обработчика Дерево решений – определение,
какие факторы использованы для отнесения того или иного заемщика к определенному кластеру (рис. 8.13).
Следует отметить галочками визуализацию с помощью Дерева
решений, правил и таблицы сопряженности (рис. 8.14, 8.15). При
построении дерева в качестве входных полей отмечаются: цель кредитования, возраст, сумма кредита, срок кредита, среднемесячный
доход. В качестве выходного поля – номер кластера.
Рис. 8.13. Дерево решений
На рис. 8.14, 8.15 показаны прочие визуализаторы.
143
Рис. 8.14. Визуализатор Правила
Рис. 8.15. Визуализатор Таблица сопряженности
На главной диагонали показано количество правильно классифицированных примеров (зеленый цвет). Красным цветом выделены неправильно распознанные примеры.
5. Самостоятельно выполните обработку с использованием
Дерева решений с теми же визуализаторами, но там, где выходное
поле – Давать кредит.
144
При построении следует учесть приведенные выше замечания
в части уровня отсечения и минимального числа примеров для
построения узла. При этом нужно встать на узел Преобразование
даты (год+месяц) и поле Давать кредит, с помощью обработчика Квантование отквантовать на два интервала со значениями 1 и
0 – метки интервала, соответственно, Да и Нет). С помощью «Чтоесли» можно, изменяя параметры входных полей (например, значения суммы кредита, цели кредитования и т. д.) для конкретного
заемщика наблюдать возможность выдачи или отказа в кредите.
6.Оцените численность каждого сегмента и постройте соответствующую диаграмму. Это можно сделать, используя визуализатор ОLAP-куб с измерением «номер кластера» и фактом
«номер»(агрегация по количеству!). Результат показан на рис. 8.16.
Рис. 8.16. Оценка численности кластеров
7. Данные по динамике выдачи кредита.
Рассмотрим задачу определения сезонности выдачи кредита.
Для этого потребуются измерения Номер заемщика и Дата кредитования (год+месяц) и факты – Давать кредит и Сумма кредита.
Встанем на узел Преобразование даты (год+месяц) и используем обработчик Настройка набора.
Для визуализации строим OLAP-куб, где измерение Дата кредитования указываем – в строках. В кросс-таблице и диаграм145
ме можем наблюдать динамику выдачи кредитов по месяцам
(рис. 8.17).
Рис. 8.17. Выдача кредитов по месяцам
Если добавить номер заемщика в столбцы, то увидим, кому выдавались кредиты по месяцам. Аналогичный анализ проделайте
для сумм выданных кредитов.
Для оценки сезонности в выдаче кредитов встанем на узел
Настройка набора данных, выполним операцию Группировка
Рис. 8.18. Автокорреляционная функция
146
Рис. 8.19. Граф Нейросети
Рис. 8.20. Модель выдачи кредита
147
Рис. 8.21. Примерный вид сценария
данных по Дата кредитования (год+месяц) и построим автокорреляционную функцию (рис. 8.18) по полю Давать кредит на 15 мес.
Хорошо видно, что наблюдается поквартальная сезонность в выдаче кредитов. При необходимости прогнозирования выдачи кредитов можно построить модель прогноза например, Нейросеть,
с учетом сезонности (в данном случае входами должны являться
3, 6, 9-й мес). В общем случае нужно оценить значимость влияния
предыдущих месяцев на поле Давать кредит (см. Лабораторная работа № 3).
Построим модель выдачи кредита использовав обработчик
«Нейросеть». Для этого упростим задачу, отфильтровав данные одного сегмента, например 3-го, встав на узле Квантование (Давать
кредит). Далее применяем обработчик с входными, как и выше
(срок кредита, цель кредитования, возраст и т. д.), выходной –
Давать кредит. Визуализатор Граф Нейросети и «Что-если» (рис.
8.19).
На рис. 8.20 можем видеть, при каких суммах возможна выдача
кредита, например, 14-му заемщику, и каков примерный вид сценария (рис. 8.21).
Самостоятельно постройте модель выдачи кредита в зависимости от среднемесячного дохода.
Примерный вид сценария приведен на рис. 8.21.
148
Вопросы
1. Какой тип у кредитоспособных заемщиков (например, мужчины и женщины, берущие кредит меньше суммы S, проживающие
в данной местности N лет со среднегодовым доходом P руб. в год).
2. Какой тип у заемщиков, кому отказано в получении кредита.
3. Какие факторы имели наибольшее значение при отказе в выдаче кредита.
Дальнейшее задание выполните согласно индивидуальному варианту.
Варианты заданий
Вариант № 1
Постройте многомерный отчет и кросс-диаграмму распределения по целям кредитования.
Постройте модель Дерева решений для оценки кредитоспособности заемщика для сегмента 0.
Вариант № 2
Постройте многомерный отчет и кросс-диаграмму распределения заемщиков по возрастным группам.
Постройте модель Дерева решений для оценки кредитоспособности заемщика для сегмента 1.
Вариант № 3
Постройте многомерный отчет и кросс-диаграмму возрастных
групп, на которые приходится 50% выдаваемых кредитов.
Постройте модель Дерева решений для оценки кредитоспособности заемщика для сегмента 2.
Вариант № 4
Постройте многомерный отчет и кросс-диаграмму распределения заемщиков по целям кредитования и полу заемщика.
Постройте модель Дерева решений для оценки кредитоспособности заемщика для сегмента 3.
Вариант № 5
Постройте многомерный отчет и кросс-диаграмму распределения заемщиков по целям кредитования и должностям.
Постройте модель Дерева решений для оценки кредитоспособности заемщика для сегмента 4.
149
ИНДИВИДУАЛЬНЫЕ ЗАДАНИЯ
Вариант 1. Создайте BI-проект для анализа отгрузки товаров со
складов.
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Отгрузка со склада» (client_sklad.txt) с полями:
Дата отгрузки (DATA), Код документа (DOC_CODE), Код клиента (CL_CODE), Код склада (SKL_CODE), Код товара (W_CODE),
Количество отгруженного товара (W_AMOUNT), Сумма товара (SUM).
2. Таблица «Прайс-лист» (price_list.txt) с полями: Единица измерения товара (DIM), Код товара (CODE_W), Наименование товара (W_NAME), Тип товара (W_TYPE), Цена товара (PRICE).
3. Таблица «Справочник складов» (sklad_list.txt) с полями: Код
склада (CODE_SK), Номер склада (NUM_SK).
4. Таблица «Справочник клиентов» (client.txt) с полями: Код
клиента (CODE_CL), Наименование клиента (NAME_CL), Тип договорных отношений SALECOND.
Таблицы размещены в папке v1.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
типам товаров.
2. Сценарий, содержащий данные об отгрузке товаров со складов в первой декаде ноября 2013 г.
3. Сценарий, который содержит данные об отгрузке товаров
с одного склада.
Необходимо решить следующие практические задачи:
1. Определить, какому клиенту было отгружено наибольшее количество товаров (в сумме) за первую декаду ноября 2013 г.
2. Проанализировать динамику отгрузки (в количественном выражении) ботинок и туфель со складов в первой декаде ноября.
3. Для склада №3 определить дни недели, в которые он работал
с максимальной нагрузкой.
4. Определить, на какую сумму и каким клиентам были отгружены товары по предоплате со склада №3 в ноябре 2013 г.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 2. Создайте BI-проект для анализа цен и тарифов транспортировки.
Исходные данные для анализа хранятся в локальных таблицах:
150
1. Таблица «Справочник складов» (sklad_list.txt) с полями: Код
склада (CODE_SK), Номер склада (NUM_SK).
2. Таблица «Справочник клиентов» (client.txt) с полями: Код
клиента (CODE_CL), Наименование клиента (NAME_CL), Тип договорных отношений SALECOND.
3. Таблица «Поставки на склад» (sup_sklad.txt) с полями: Дата
поставки (DATA), Код документа (DOC_CODE), Код поставщика (SUP_CODE), Код склада (SKL_CODE), Код товара (W_CODE),
Код транспорта (TRANS_CODE), Объем поставки (W_AMOUNT),
Стоимость перевозки (TRANS_COST), Сумма поставки (SUM),
Тариф на транспортировку (TRANS_TARI).
4. Таблица «Прайс-лист поставщиков» (price_list_sup.txt) с полями: Единица измерения товара (DIM), Код поставщика (SUP), Код
товара (CODE_W), Код транспорта (TRANS_CODE), Наименование
товара (W_NAME), Тариф на транспортировку (TRANS_TARI),
Тип товара (W_TYPE), Цена товара (PRICE).
5. Таблица «Справочник транспорта» (trans_list.txt) с полями: Код транспорта (TRANS_CODE), Наименование транспорта
(TRANS_NAME).
Таблицы размещены в папке v2.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
типам товаров.
2. Сценарий, содержащий данные о поставке товаров на склады
в первой половине ноября 2013 г.
3. Сценарий, который содержит данные о поставках товаров одним видом транспорта.
Необходимо решить следующие практические задачи:
1. Определить, какую долю транспортные расходы составляют
от общей стоимости товара, поступившего на склады в первой половине ноября.
2. Определить динамику поступлений на склады оптовых партий обуви в первой половине ноября 2013 г.
3. Проанализировать, как распределилась доля товаров, поступивших на склады железнодорожным транспортом по типу договорных отношений с поставщиками. На какой склад поступило
больше товаров по предоплате.
4. Проанализировать динамику доставки на склады железнодорожным транспортом оптовых партий одежды.
151
Файл BI-проекта со сценариями для проверки предъявить преподавателю.
Вариант 3. Создайте BI-проект для анализа бюджета активов и
пассивов.
Исходные данные для анализа хранятся в локальных таблицах.
1. Таблица «Бизнес-направление» (napravleniye.txt) с полями:
Идентификатор (ID), Направление (NAPRAVL).
2. Таблица «Бюджет» (BAP.txt) с полями: Бизнес-направление
(NAPRAVL), Дата (DATA), План (PLAN), Подраздел (PODRAZDEL),
Раздел (RAZDEL), Факт (FACT).
Таблицы размещены в каталоге v3.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
разделам.
2. Сценарий генерации микрокуба, содержащего данные об исполнении бюджета за январь 2013.
3. Сценарий массовой генерации микрокубов, каждый из которых содержит данные об исполнении бюджета по одному бизнес-направлению.
С помощью сгенерированных микрокубов необходимо решить
следующие практические задачи:
1. Провести план-факт анализа данных об исполнении бюджета
за январь 2013 года.
2. Выявить три подраздела БАП с максимальными относительными отклонениями фактических показателей от плановых по
данным за январь 2013 года. Определить, по каким подразделам
БАП отклонения фактических показателей от плановых не превышают 5%.
3. Провести
анализ
бюджета
по
бизнес-направлению
«Кредитование физических лиц».
4. Проследить динамику изменения пассивов для бизнес-направления «Кредитование физических лиц» по месяцам первого
квартала 2013 г.
Файл BI-проекта для проверки представить преподавателю.
Вариант 4. Создайте BI-проект для анализа бухгалтерского баланса.
Исходные данные для анализа хранятся в локальной таблице:
1. Таблица «Баланс» (Baklance.txt) с полями: Баланс (BALANCE),
Дата (DATE), Подраздел (ACCOUNT1), Раздел (CHAPTER), Статья
(ACCOUNT2).
152
Данные размещены в папке v4.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
разделам.
2. Сценарий, содержащий данные за октябрь 2013 г.
3. Сценарий, содержащий данные бухгалтерского баланса за
один день.
Необходимо решить следующие практические задачи:
1. Проанализировать структуру активов за октябрь 2013 г. и
отобразить ее в виде круговой диаграммы с указанием доли каждой
статьи в процентах.
2. Проанализировать структуру оборотных средств за октябрь
2013 г.
3. Проанализировать динамику изменения пассивов, прошедших по статье «Акционерный капитал» в 2011 г.
4. Отобразить балансовые данные за четвертый квартал 2011 г.
Проверить сходимость балансовых данных за этот период.
Файл BI-проекта для проверки представить преподавателю.
Вариант 5. Создайте BI-проект для анализа клиентской базы
кредитного учреждения .
Исходные данные для анализа хранятся в локальной таблице.
1. Таблица CRM (crm.txt) с полями:
Дата (DATA), Дебет (DEBET), Индустрия (INDUSTRY),
Контрагент (CONTR), Кредит (CREDIT), Остаток (OSTATOK), Счет
(ACC), Филиал (FILIAL).
Таблица размещена в папке v5.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
филиалам.
Необходимо решить следующие практические задачи:
1. Определить, как распределились объемы кредитования по отраслям в декабре 2013 г.
2. Проанализировать динамику изменения остатков по счетам
для контрагента «NEO» в декабре 2013 г.
3. Проанализировать, как изменялись объемы финансирования
промышленных предприятий по месяцам 2013 г.
4. Определить, по каким счетам проводилось кредитование промышленных предприятий. Как распределены остатки между этими счетами.
153
Файл BI-проекта со сценариями для проверки представить преподавателю.
Вариант 6. Создайте BI-проект для анализа закупочной деятельности магазинов спортивных товаров.
Исходные данные для анализа хранятся в локальных таблицах.
1. Таблица «Закупки» (Purchase_list.txt) с полями:
Дата закупки (DATE), Код поставщика (VENDOR_CODE),
Код товара (W_CODE), Размер (SIZE), Количество товара (W_
AMMOUNT), Сумма (SUM), Код менеджера (MANAGER_CODE).
2. Таблица «Поставщики» (Vendor_list.txt) с полями: Код поставщика (VENDOR_CODE), Страна (COUNTRY), Поставщик
(VENDOR).
3. Таблица «Товары» (Price_list.txt) с полями: Код товара (W_
CODE), Наименование товара (W_NAME), Тип товара (W_TYPE),
Закупочная цена (W_PRICE).
4. Таблица «Менеджеры» (Manager_list.txt) с полями: Код менеджера (MANAGER_CODE), Менеджер (MANAGER).
Таблицы размещены в папке v6.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
товарам.
2. Сценарий с даннымода.
3. Сценарий с данными о закупках товаров у одного поставщика.
Необходимо решить следующие практические задачи:
1. Проследить динамику изменения объемов закупок у поставщиков спортивной одежды в четвертом квартале.
2. Определить минимальную закупочную цену на кроссовки отечественного производства.
3. Для поставщика «Атлантис» определить, существует ли корреляция между объемами закупок кроссовок и закупочной ценой
на них.
4. Выявить динамику изменения объемов закупок (в количественном выражении) у фирмы «Атлантис».
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 7. Создайте BI-проект для анализа результатов проведения маркетингового опроса среди покупателей велосипедов.
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Опрос покупателей» (Market_list.txt) с полями:
Дата опроса (DATE), Профессия (OCCUPATION), Образование
154
(EDUCATION), Доходы (PROFIT), Пол (SEX), Код возрастной группы (AGE_CODE), Код товара (W_CODE), Количество (W_AMOUNT).
2. Таблица «Товары» (Price_list.txt) с полями: Код товара (W_
CODE), Наименование товара (W_NAME), Тип товара (W_TYPE),
Цена (W_PRICE).
3. Таблица «Возрастные группы» (Age_list.txt) с полями: Код
возрастной группы (AGE_CODE), Возраст (AGE).
Таблицы размещены папке v7.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
типам товаров.
2. Сценарий с данными маркетинговых опросов за первое полугодие 2003 г.
3. Сценарий с результатами опросов одной возрастной категории.
Необходимо решить следующие практические задачи:
1. Провести анализ потребительского спроса на велосипеды
в первом полугодии 2003 г. Определить, представители какой профессии являлись наиболее активными покупателями горных велосипедов в этом периоде.
2. Сравнить доходы от продаж детских велосипедов в первом и
втором кварталах 2003 г. по возрастным группам опрошенных.
3. Для возрастной группы 23–35 лет проследить динамику продаж всех типов велосипедов по кварталам.
4. Определить марки горных велосипедов, пользующиеся наибольшим спросом у клерков из данной возрастной группы.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 8. Создайте BI-проект для анализа количества бытовых
приборов на складах.
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Хранение товаров на складах» (Storage_list.
txt) с полями: Дата поступления товара (DATE), Код региона
(REGION_CODE), Код склада (SKL_CODE), Код товара (W_CODE),
Количество товара (W_AMOUNT), Сумма (SUM), Период хранения
(STOR_PERIOD), Дни хранения (STOR_DAYS).
2. Таблица «Справочник регионов» (Region_list.txt) с полями:
Код региона (REGION_CODE), Регион (REGION).
3. Таблица «Справочник складов» (Skl_list.txt) с полями: Код
склада (SKL_CODE), Код региона (REGION_CODE), Склад (SKL).
155
4. Таблица «Прайс-лист» (Price_list.txt) с полями: Код товара
(W_CODE), Тип товара (W_TYPE), Цена товара (W_PRICE).
Таблицы размещены в папке v8.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
регионам.
2. Сценарий с данными о товарах, поступивших на склады летом 2013 г.
3. Сценарий с данными о хранении товаров на одном складе.
Необходимо решить следующие практические задачи:
1. Определить загруженность складов в летние месяцы 2013 г.
Определить наименее загруженный склад.
2. Проанализировать стоимость хранения товаров различных
типов. Доходы от хранения какого типа товаров были максимальны в июле.
3. Проследить динамику загруженности склада «Nord» по месяцам 2013 г.
4. Проанализировать номенклатуру электротоваров, поступивших на склад «Nord» в 2013 г.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 9. Создайте BI-проект для анализа результатов голосования на политических выборах в г. Москве
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Результаты голосования» (Election_list.txt) с полями: Дата (Date), Округ (REGION), Код кандидата (CAND_CODE),
Количество голосов (VOTES).
2. Таблица «Список кандидатов» (Candidate_list.txt) с полями:
Код кандидата (CAND_CODE), ФИО кандидата (CAND_NAME),
Код партийной принадлежности (PARTY_CODE).
3. Таблица «Список партий» (Parties_list.txt) с полями: Код
партии (PARTY_CODE), Название партии (PARTY_NAME).
Таблицы размещены в папке v9.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
названиям партий.
2. Сценарий с данными о результатах голосования за период
с 3.03.2013 по 5.03.2013.
3. Сценарий с данными о результатах голосования по одному
столичному округу.
156
Необходимо решить следующие практические задачи:
1. Определить распределение голосов избирателей между партиями по итогам голосования за период с 03.03.2013 до 05.03.2013.
Определить партию, набравшую наибольший процент голосов.
2. Определить, как распределились голоса избирателей между
кандидатами от партии-лидера по итогам трех дней голосования.
3. Проанализировать результаты голосования в ВАО. Определить
двух кандидатов, выходящих во второй тур выборов по результатам голосования в ВАО.
4. Проследить, как менялось количество голосовавших в ВАО
в течение недели.
В какой день избирательные участки посетило больше всего
граждан.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 10. Создайте BI-проект для анализа результатов социологического опроса.
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Результаты опроса « (Poll_list.txt) с полями: Дата
опроса (Date), Вопрос (QUESTION), Ответ (ANSWER), Код возрастной группы (AGE_CODE), Количество (QUANTITY), Код места
(POLL_P_CODE).
2. Таблица «Места опроса» (Poll_p_list.txt) с полями: Код места
(POLL_P_CODE), Место (POLL_P_NAME), Регион (REGION).
3. Таблица «Возрастные группы» (Age_list.txt) с полями: Код
возрастной группы (AGE_CODE), Возраст (AGE).
Таблицы размещены в папке v10.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
местам опроса.
2. Сценарий с данными о результатах опроса, проведенного 1
февраля 2013 г.
3. Сценарий с данными о результатах опроса по одному региону.
Необходимо решить следующие практические задачи:
1. По итогам опроса за 1.02.2013 г. определить, какой процент
респондентов поддерживает политику президента.
2. Определить, как распределяется количество респондентов, не
интересующихся политикой, по возрастным группам.
3. Сравнить результаты опроса москвичей различных возрастных
категорий. Как влияет на результаты место проведения опроса.
157
4. Проанализировать изменение количества опрошенных в различных местах Москвы в дни проведения опроса.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 11. Создайте BI-проект для анализа соотношения ценакачество компьютеров отечественного производства
Исходные данные для анализа хранятся в локальной таблице:
1. Таблица «Производство компьютеров» (Prod_list.txt) с полями: Дата (DATE), Регион (REGION), Товар (PRODUCT), Качество
(QUALITY), Количество (QUANTITY), Сумма (SUM), Цена (PRICE).
Таблица размещена в папке v11
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
товарам.
2. Сценарий с данными о производстве компьютеров в 2000 г.
3. Сценарий с данными о производстве компьютеров по одному
региону.
Необходимо решить следующие практические задачи:
1. Определить объемы производства компьютеров по регионам
в 2013 г. Какой регион лидирует по производству компьютеров
очень хорошего качества.
2. Провести анализ номенклатуры бракованных товаров.
Выделить товар, при производстве которого максимален процент
брака.
3. Проследить динамику производства компьютеров в Москве
по номенклатуре за 2012–2013 гг. По каким позициям наметился
спад.
4. Проанализировать качество мониторов, выпускаемых на
предприятиях Москвы.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 12. Создайте BI-проект для анализа потребления электроэнергии на промышленных предприятиях
Исходные данные для анализа хранятся в локальной таблице:
1. Таблица «Потребление электроэнергии» (E_demand_list.txt)
с полями: Дата (DATE), Регион (REGION), Потребитель (USER),
Количество, млн кВт*час (QUALITY), Сумма (SUM).
Таблица размещена в v12 .
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
потребителям.
158
2. Сценарий с данными о потреблении электроэнергии c 1 по 3
января 2013 г.
3. Сценарий с данными о потреблении электроэнергии в одном
регионе.
Необходимо решить следующие практические задачи:
1. Сравнить потребление электроэнергии предприятиями Москвы и Санкт-Петербурга в первые три дня 2013 г. Подготовить отчет
в excel-формате о потреблении электроэнергии за этот период.
2. Выявить предприятия, имеющее минимальный тариф.
3. Проанализировать объемы потребления электроэнергии предприятиями Москвы 1 января. Ранжировать предприятия по объемам потребления.
4. Проследить динамику изменения потребления электроэнергии на московской фабрике «Труд».
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 13. Создайте BI-проект для анализа работы риелторской конторы.
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Аренда помещений» (Lease_list.txt) с полями:
.Дата (DATE), Код помещения (APP_CODE), Категория арендатора (TENANT_TYPE), Арендатор (TENANT_NAME), Вид использования (USE), Срок аренды (LEASE_TERM), Площадь (SQUARE),
Плата, $ (SUM).
2. Таблица «Помещения» (App_list.txt) с полями: Код помещения (APP_CODE), Наименование (APP_NAME), Тип помещения
(APP_TYPE).
3. Таблица «Возрастные группы» (Age_list.txt) с полями: Код
возрастной группы (AGE_CODE), Возраст (AGE).
Таблицы размещены в папке v13 .
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
категориям арендаторов
2. Сценарий с данными об аренде помещений во втором полугодии 2013 г.
3. Сценарий с данными об аренде помещений одного типа.
Необходимо решить следующие практические задачи:
1. Получить распределение стоимости аренды различных типов
помещений во втором полугодии 2013 г. Какой тип помещений был
наименее востребован юридическими лицами.
159
2. Определить, какие типы помещений имеют максимальные сроки аренды. Какова доля дохода, приносимая этими помещениями.
3. Проследить, как менялась стоимость аренды аудиторий по
кварталам 2013 г., какая доля аудиторий использовалась для проведения обучающих курсов в 3 квартале.
4. Определить максимальный срок аренды аудиторий физическими лицами в 2013 г.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 14. Создайте BI-проект для анализа оптовых закупок
сумок сетями спортивных магазинов
Исходные данные для анализа хранятся в локальных таблицах.
1. Таблица «Журнал продаж» (WSales_list.txt) с полями:
Дата (DATE), Менеджер (S_MANAGER), Код сети (CUSTOM_
CODE), Код товара (W_CODE), Количество товара (W_AMMOUNT),
Сумма (SUM).
2. Таблица «Справочник покупателей» (Custom_list.txt) с полями: Код сети (CUSTOM_CODE), Регион (REGION), Сеть магазинов
(CUSTOM_NAME).
3. Таблица «Товары» (Price_list.txt) с полями: Код товара (W_
CODE), Наименование товара (W_NAME), Тип товара (W_TYPE),
Цена (W_PRICE).
Таблицы размещены в папке v14.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
типам товаров.
2. Сценарий с данными об оптовых закупках сумок сетями магазинов в первом полугодии 2013 г.
3. Сценарий с данными о закупках сумок одной сетью магазинов.
Необходимо решить следующие практические задачи:
1. Определить сеть спортивных магазинов, лидировавшую по
объему закупок сумок в первом полугодии 2013 г. Какие товары
пользовались повышенным спросом в этот период.
2. Проследить динамику изменения цен на наиболее популярные товары в первом полугодии 2013 г.
3. Сравнить объемы продаж спортивных сумок сети магазинов
«Спортсмен» в июле и декабре 2013 г.
4. Проанализировать ассортимент товаров, закупаемых сетью
«Спортсмен».
160
Какую долю в общем объеме закупок по итогам года составили
пляжные сумки.
Файл BI-проекта для проверки предъявить преподавателю.
Вариант 15. Создайте BI-проект для анализа пассажирских перевозок
Исходные данные для анализа хранятся в локальных таблицах:
1. Таблица «Пассажирские перевозки» (Pass_traffic_list.txt)
с полями: Дата (DATE), Сезон (SEASON), Код направления (WAY_
CODE), Количество (QUANTITY), Доход (PROFIT).
2. Таблица «Справочник тарифов» (Tarif_list.txt) с полями:
Код направления (WAY_CODE), Направление (WAY), Тип вагона (CAR_TYPE), Тип поезда (TRAIN_TYPE), Цена (PRICE).
Таблицы размещены в каталоге v15.
На основании исходных данных необходимо спроектировать BIпроект, содержащий:
1. OLAP-отчет, строящийся по запрашиваемым у пользователя
типам поездов.
2. Сценарий с данными о пассажирских перевозках в летние месяцы 2013 г.
3. Сценарий с данными о пассажирских перевозках в одном направлении.
Необходимо решить следующие практические задачи:
1. Определить, на поезда какого направления было продано
больше всего билетов летом 2013 г. Как распределился доход от
продажи билетов по месяцам.
2. На поезда какого направления летом 2013 г. было продано
наибольшее количество билетов в плацкартные вагоны.
3. Проследить, как менялись объемы пассажирских перевозок
по направлению Москва–Волгоград по месяцам 2013 г.
4. Какой доход принесла продажа билетов в вагоны повышенной
комфортности в первом полугодии 2013 г. (в процентном выражении) на этом направлении.
Файл BI-проекта для проверки предъявить преподавателю.
161
ЛИТЕРАТУРА
1. Интеллектуальные модели анализа экономической информации: электронный курс лекций. BaseGroupLabs, 2005.
2. Андронов С. А. Модели и методы в системах поддержки принятия решений: учеб. пособие. СПб, ГУАП 2008, 176 с.
3. Чубукова И. А. Data Mining: учеб. пособие, 2-е изд.,М.:
ИНТУИТ.РУ, Бином. Лаборатория знаний, 2010. 382 с.
4. Паклин Н. Б., Орешков В. И. Бизнес-аналитика:от данных
к знаниям: учеб. пособие. 2-е изд., СПб.: Питер, 2010. 704 с.
5. Андронов С. А. Аналитическое моделирование в логистике: лабораторный практикум. СПб.: ГУАП, 2012. 148 с.
6. Андронов С. А. Моделирование систем обслуживания в цепях
поставок. СПб.: ГУАП, 2013.202 с.
7. BaseGroup Labs,http://www.basegroup.ru
8. ZSoft, http://www.zsoft.ru/
9. Франклин&Грант. Риск консалтинг,http://www.franklingrant.ru/ru/main/default.asp
10. Бауэрсокс Дональд Дж., Клосс Дейвид Дж. Логистика: интегрированная цепь поставок. М.: Олимп-Бизнесс, 2001. 640 с.
162
СОДЕРЖАНИЕ
Введение......................................................................... Применение DM в логистике.............................................. Принципы работы программы Dеductor.............................. Лабораторная работа № 1. Знакомство с DEDUCTOR............. 1.1. Создание хранилища данных................................... 1.2. Проектирование структуры хранилища данных......... 1.3. Наполнение хранилища данных.............................. 1.4. Импорт данных из хранилища................................. Лабораторная работа № 2. Многомерные отчеты и простая
аналитика....................................................................... 2.1. Порядок выполнения лабораторной работы............... 2.2. Наполнение хранилища.......................................... Лабораторная работа № 3. Задачи регрессии.
Прогнозирование спроса................................................... 3.1. Шаги построения прогноза продаж........................... 3.2. Порядок выполнения работы................................... Лабораторная работа № 4 . Подготовка данных.................... 4.1. Очистка и предобработка данных............................. 4.2. Сокращение признаков........................................... Лабораторная работа № 5. Сегментация номенклатуры......... 5.1. АВС-анализ........................................................... 5.2. XYZ-анализ.......................................................... Лабораторная работа № 6. Задачи оптимизации складских
запасов........................................................................... 6.1. Расчет экономичного размера заказа........................ 6.2. Расчет параметров систем управления запасами......... 6.3. Страховой запас в условиях неопределенности........... Лабораторная работа № 7. Выбор поставщика...................... Лабораторная работа № 8. Задачи сегментации и
классификации............................................................... Индивидуальные задания................................................. Литература..................................................................... 3
7
10
16
16
20
22
25
36
39
41
59
62
68
87
87
97
101
101
105
111
111
116
119
126
131
150
162
163
Учебное издание
Андронов Сергей Александрович
ИНТЕЛЛЕКТУАЛЬНЫЙ
АНАЛИЗ ДАННЫХ
Лабораторный практикум
Редактор Л. А. Яковлева
Компьютерная верстка А. Н. Колешко
Подписано к печати 07.04.14. Формат 60 × 84 1/16.
Бумага офсетная. Усл. печ. л. 9,5. Уч.-изд. л. 10,0.
Тираж 100 экз. Заказ № 216.
Редакционно-издательский центр ГУАП
190000, Санкт-Петербург, Б. Морская ул., 67
Документ
Категория
Без категории
Просмотров
11
Размер файла
8 691 Кб
Теги
andronova, 08735011a9
1/--страниц
Пожаловаться на содержимое документа