У вас вопросы?
У нас ответы:) SamZan.net

тематические основы бизнесаналитики [2

Работа добавлена на сайт samzan.net:

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 28.12.2024

Оглавление

[1] Оглавление

[2] Постановка задачи и обзор литературы

[2.1] Постановка задачи

[2.2] Цели и задачи бизнес-аналитики

[2.3] 1.3 Архитектура СУБД SQL Server

[2.4] 1.4 Математические основы бизнес-аналитики

[2.4.1] 1.4.1 Математические основы оперативного анализа данных

[2.4.2] 1.4.2 Задачи, методы и алгоритмы Data Mining

[2.4.3] 1.4.2.2 Задача кластеризации

[2.4.4] 1.4.2.3 Задача поиска ассоциативных правил

[2.4.5] 1.4.3 Обзор алгоритмов интеллектуального анализа данных

[2.4.6] 1.4.3.1 Упрощенный алгоритм Байеса

[2.4.7] 1.4.3.2 Алгоритм дерева принятия решений

[2.4.8] 1.4.3.3 Алгоритм линейной регрессии

[2.4.9] 1.4.3.4 Алгоритм анализа временных рядов

[2.4.10] 1.4.3.5 Алгоритм кластеризации

[2.4.11] 1.4.3.6 Алгоритм взаимосвязей

[2.4.12] 1.4.3.7 Алгоритм кластеризации последовательностей

[2.4.13] 1.4.3.8 Алгоритм нейронных сетей

[2.4.14] 1.4.3.9Алгоритм логической регрессии

[2.5] 1.5 Анализ результатов главы 1 и уточнение постановки задачи

[3] 2. Языковые средства бизнес-аналитики: языки MDX и DMX

[3.1] 2.1 Базовые понятия языка MDX

[3.2] 2.2 Создание структуры многомерного анализа

[3.2.1] 2.2.1 Выражение SELECT

[3.2.2] 2.2.2 Выражение FROM

[3.2.3] 2.2.3 Выражение WHERE

[3.2.4] 2.2.4 Выражение WITH

[3.2.5] 2.2.5 Именованные наборы

[3.2.6] 2.2.6 Вычисляемые члены

[3.3] 2.3 Выражения MDX

[3.3.1] 2.3.1 Операторы

[3.3.2] 2.3.2 Функции

[3.4] 2.4 Базовые понятия языка DMX

[3.5] 2.5 Создание структуры интеллектуального анализа данных

[3.5.1] 2.5.1 Создание модели интеллектуального анализа данных

[3.5.2] 2.5.2 Листинг

[3.5.3] 2.5.3 Работа с данными и построение прогнозов

[3.5.4] 2.5.4 Детализация структуры

[3.5.5]      2.5.5 Детализация модели

[3.5.6] 2.5.6 Запрос значений столбца

[3.5.7] 2.5.7 Построение прогнозов

[3.5.8] 2.5.8 Создание копии модели - оператор SELECT INTO

[3.6] 2.6 Анализ результатов главы 2

[4] 3. Использование Microsoft SQL Server для аналитической обработки данных

[4.1] 3.1 Постановка задача для экспериментальной части работы

[4.2] 3.2 Описание используемой базы данных

[4.3] 3.3 Задача кластеризации клиентов базы данных AdventureWorks   

[4.4] Задача классификации клиентов на основе оценки их доходов

[4.5] Задача анализа точности предсказания

[4.6] 3.6 Задача предсказания по продажам определенного товара в заданном регионе

[5] Заключение

[6] Библиографический список

[7] Приложение 1


Список сокращений

БД – база данных

СППР – система поддержки принятия решений

СУБД – система управления базами данных

ХД – хранилище данных

BI (Business Intelligence) – бизнес-аналитика

BI Dev Studio (Business Intelligence Development Studio) – инструментальная среда разработки аналитических решений, поставляемая вместе с Microsoft SQL Server 2008

DM (Data Mining) – интеллектуальный анализ данных

EM (Expectation-maximization) – максимизация ожиданий, алгоритм кластеризации

SQL (Structured Query Language) – язык структурированных запросов, используемый при работе с реляционными СУБД


Введение

Повсеместное использование компьютеров привело к пониманию важности задач, связанных с анализом накопленной информации для извлечения новых знаний.

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

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

Решения принимаются руководителями, а задача бизнес-аналитики – сделать все, чтобы эти решения были оптимальными и своевременными.

Целью работы является исследование математических моделей, методов и средств бизнес-аналитики СУБД SQL Server. Данная тема является актуальной, так как на сегодняшний день средства бизнес-аналитики применяются почти во всех сферах жизнедеятельности человека:

  •  в Интернет-технологиях средства BI применяются для построения рекомендательных систем интернет-магазинов и для решения проблемы персонализации посетителей Web-сайтов;   
  •  в торговле технологии бизнес-аналитики позволяют успешно продвигать товары и непосредственно управлять спросом на различные товары путем анализа рыночных корзин;
  •  в телекоммуникациях средства BI позволяют решать проблему доходности и риска клиентов, а также проблему защиты от мошенничества;
  •  в промышленном производстве примером использования технологий бизнес-аналитики может быть прогнозирование качества изделия в зависимости от замеряемых параметров технологического процесса;
  •  примером использования средств бизнес-аналитики в медицине может служить построение диагностической системы или исследование эффективности хирургического вмешательства;
  •  классическим примером применения на практике методов анализа данных является решение проблемы о возможной некредитоспособности клиентов в банковской сфере.

В работе представлены наиболее перспективные направления анализа данных: хранение информации, оперативный и интеллектуальный анализ данных. Кроме описания методов анализа приводятся экспериментальные результаты.

Для достижения поставленной цели в работе решаются следующие задачи:

- обзор архитектуры СУБД SQL Server и подсистемы бизнес-аналитики;

- описание и анализ областей применения средств бизнес-аналитики, таких как многомерный анализ данных и интеллектуальный анализ данных;

- обзор языковых средств бизнес-аналитики;

- экспериментальное применение полученных сведений.

Работа состоит из трех глав.

В первой главе речь идет о постановке задачи, целях и задачах бизнес-аналитики, то есть непосредственно знакомство с предметной областью. Также в этой части работы рассматривается архитектура СУБД SQL Server и подробно описывается математическая основа бизнес-аналитики, а именно: математические модели, методы и алгоритмы для оперативного и интеллектуального анализа данных, что соответствует заявленной теме.

Во второй главе работы рассматриваются языковые средства для бизнес-аналитики, в частности язык MDX для оперативного анализа данных и язык DMX – для интеллектуального анализа данных. Подробно описываются основные конструкции языковых средств с приведением примеров.

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


  1.  Постановка задачи и обзор литературы
    1.  Постановка задачи 
  2.  Необходимо выполнить обзор различных технологий в бизнес-аналитике на примере СУБД SQL Server.
  3.  Также надо обозначить перечень используемых математических моделей и описать их сущность.
  4.  Произвести анализ языковых средств, с помощью которых будут реализованы методы и алгоритмы для СУБД SQL Server.
  5.  Выполнить демонстрацию возможностей технологий на примере учебной базы.
    1.  Цели и задачи бизнес-аналитики

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

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

Благодаря преимуществам интеллектуального анализа появляется новый класс программных систем – системы поддержки принятия решений (далее СППР). Основные задачи СППР – это ввод, хранение и анализ данных в определенной предметной области с целью поиска решений. Обобщенная архитектура СППР представлена на рисунке 1.

Рис. 1. Обобщенная архитектура системы поддержки принятия решений

В подсистеме ввода данных, называемых OLTP (Online transaction processing), выполняется операционная обработка данных. Для реализации этих подсистем используют обычные системы управления базами данных (СУБД).

Современная подсистема анализа может быть построена на основе:

1) подсистемы информационно-поискового анализа на базе реляционных СУБД и статических запросов с использованием языка структурных запросов SQL (Structured Query Language);

2) подсистемы оперативного анализа. Для реализации таких подсистем применяется технология оперативной аналитической обработки данных OLAP (Online Analytical Processing), использующая концепцию многомерного представления данных;

3) подсистемы интеллектуального анализа. Эта подсистема реализует методы и алгоритмы Data Mining («интеллектуальный анализ данных»).

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

Можно выделить ряд принципиальных отличий СППР и OLTP-систем:

Таблица 1

Сравнение свойств OLTP-системы и СППР

Свойство

OLTP-система

СППР

Цели использования данных

Быстрый поиск, простейшие алгоритмы обработки

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

Уровень обобщения (детализации) данных

Детализированные

Как детализированные, так и обобщенные (агрегированные)

Требования к качеству данных

Возможны некорректные данные (ошибки регистрации, ввода и т.д.)

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

Формат хранения данных

Данные могут храниться в различных форматах в зависимости от приложения, в котором они были созданы

Данные хранятся и обрабатываются в едином формате.

Время хранения данных

Как правило, не более года (в пределах отчетного периода)

Годы, десятилетия.

Изменение данных

Данные могут добавляться, изменяться и удаляться

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

Периодичность обновления

Часто, но в небольших объемах.

Редко, но в больших объемах.

Доступ к данным

Должен быть обеспечен доступ ко всем текущим (оперативным) данным

Должен быть обеспечен доступ к историческим (то есть накопленным за достаточно длинный период времени) данным с соблюдением их хронологии.

Характер выполняемых запросов

Стандартные, настроенные заранее

Нерегламентированные, формируемые аналитиком «на лету» в зависимости от требуемого анализа

Время выполнения запроса

Несколько секунд

До нескольких минут

Требования к СППР и OLTP-системам существенно отличаются. Поэтому для объединения в одной системе OLTP и СППР для реализации подсистемы хранения используются концепция хранилищ данных (ХД).

В основе концепции хранилищ данных (ХД) лежат следующие положения:

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

В концепции ХД нет постановки вопросов, связанных с организацией эффективного анализа данных и предоставления доступа к ним. Эти задачи решаются подсистемами анализа.

Сокращение затрат на проектирование и разработку ХД может быть достигнуто путем создания витрин данных (ВД). ВД – это упрощенный вариант ХД, содержащий только тематически объединенные данные.

 

Рис. 2. Структура СППР с самостоятельными ВД

В настоящее время разработано несколько архитектур хранилищ:

  •  реляционные ХД;
  •  многомерные ХД;
  •  гибридные ХД;
  •  виртуальные ХД;
  •  одноплатформенные ХД;
  •  кросс-платформенные ХД.

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

данных. Такая технология обозначается аббревиатурой ROLAP — Relational OLAP.

Многомерные ХД реализуют многомерное представление данных на физическом уровне в виде многомерных кубов. Данная технология получила название MOLAP — Multidimensional OLAP.

Гибридные ХД сочетают в себе свойства как реляционной, так и многомерной модели данных. В гибридных ХД детализированные данные хранятся в реляционных таблицах, а агрегаты — в многомерных кубах. Такая технология построения ХД называется HOLAP — Hybrid OLAP.

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

Кроме того, все ХД можно разделить на одноплатформенные и кросс-платформенные. Одноплатформенные ХД строятся на базе только одной СУБД, а кросс-платформенные могут строиться на базе нескольких СУБД.

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

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

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

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

Реляционная модель данных, которая была предложена Э.Ф. Коддом в 1970 году служит основой современной многомиллиардной отрасли баз данных. За последние десять лет сложилась многомерная модель данных, которая используется, когда целью является именно анализ данных, а не выполнение транзакций.

Основное назначение многомерных ХД – поддержка систем, ориентированных на аналитическую обработку данных.

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

OLAP (Online Analytical Processing) – технология оперативной аналитической обработки данных, использующая методы и средства для сбора, хранения и анализа многомерных данных в целях поддержки процессов принятия решений.

  Основное назначение OLAP-систем – поддержка аналитической деятельности, произвольных запросов пользователей – аналитиков. Цель OLAP-анализа – проверка возникающих гипотез.

В общем виде архитектура OLAP-системы описывается схемой с тремя выделенными слоями (рисунок 3).

Рис. 3. Архитектура OLAP-системы

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

Возможность анализа зависимостей между различными параметрами предполагает возможность представления данных в виде многомерной модели – гиперкуба или OLAP-куба.

Рис. 4. Представление данных в виде гиперкуба

Измерение (Dimensions) – последовательность значений одного из анализируемых параметров. Например, для параметра «время» это – последовательность дней, месяцев, кварталов, лет.

На пересечениях осей измерений располагаются данные, количественно характеризующие анализируемые факты, - меры (Measures). Это могут быть объемы продаж, остатки на складе и т.п.

Ребрами такого гиперкуба являются измерения, а ячейками – меры.

OLAP-система включает в себя два основных компонента: OLAP-клиент и OLAP-сервер.

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

Клиентские OLAP-средства применяются, как правило, при малом числе измерений

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

OLAP-сервер обеспечивает хранение данных, выполнение над ними необходимых операций и формирование многомерной модели на концептуальном уровне.

Некоторые клиентские OLAP-средства (в частности, Microsoft Excel) позволяют обращаться к серверным OLAP-хранилищам, выступая в этом случае в роли клиентских приложений, выполняющих подобные запросы.

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

Возникает потребность поиска взаимосвязей между отдельными событиями среди больших объемов данных.

За этим направлением прочно закрепился термин «интеллектуальный анализ данных» или Data Mining. Классическим считается определение, данное основателем направления в 1996 году Григорием Пятецким-Шапиро: Data Mining – исследование и обнаружение «машиной» в сырых данных скрытых знаний, которые ранее не были известны, нетривиальны, практически полезны, доступны для интерпретации человеком.

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

Рис. 5. Мультидисциплинарный характер Data Mining

Основными задачами, с которыми сталкивается аналитик являются – классификация, регрессия, поиск ассоциативных правил и кластеризация.

Задача классификации заключается в том, что для каждого варианта определяется категория или класс, которому он принадлежит. В качестве примера можно привести оценку кредитоспособности потенциального заемщика: назначаемые классы здесь могут быть «кредитоспособен» и «некредитоспособен». Для решения задачи требуется, чтобы множество классов было известно заранее и было бы конечным и счетным.

Рис. 6. Иллюстрация задачи классификации

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

Рис. 7. Иллюстрация задачи регрессии

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

Все задачи интеллектуального анализа по способу решения можно разделить на два класса: обучение с учителем и обучение без учителя.

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

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

Задача кластеризации заключается в поиске независимых групп и их характеристик во всем множестве анализируемых данных. Решение этой задачи помогает лучше понять данные. Группировка однородных объектов позволяет сократить их число и облегчить анализ.

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

Рис. 8. Иллюстрация задачи кластеризации

Задача определения взаимосвязей (задача поиска ассоциативных правил) заключается в определении часто встречающихся наборов объектов среди множества подобных наборов. Классическим примером является анализ потребительской корзины.

Поставленные задачи по назначению делятся на описательные и предсказательные.

Описательные (descriptive) задачи уделяют внимание улучшению понимания анализируемых данных. Ключевой момент в таких моделях – легкость и прозрачность результатов для восприятия человеком. К такому виду задач относятся кластеризация и поиск ассоциативных правил.

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

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

  1.  Постановка задачи
  2.  Подготовка данных
  3.  Просмотр данных
  4.  Построение моделей
  5.  Исследование и проверка моделей
  6.  Развертывание и обновление моделей

Рис. 9. Этапы интеллектуального анализа данных

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

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

Третьим шагом процесса является просмотр подготовленных данных. Для принятия правильных решений при создании моделей интеллектуального анализа данных необходимо понимать данные. 

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

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

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

1.3 Архитектура СУБД SQL Server

В SQL Server реализовано несколько технологий управления и анализа данных. На рисунке 10 схематично представлены компоненты СУБД MS SQL Server 2008.

Для многомерных данных (OLAP):

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

Рис. 10. Службы и компоненты СУБД MS SQL Server 2008

Логическая архитектура:

Службы MicrosoftSQL ServerAnalysis Services используют как серверные, так и клиентские компоненты для предоставления приложениям бизнес-аналитики функций оперативной аналитической обработки (OLAP) и интеллектуального анализа данных.

  •  Серверный компонент служб Analysis Services реализован в виде службы Microsoft Windows. Службы SQL ServerAnalysis Services поддерживают работу нескольких экземпляров на одном компьютере, при этом каждый экземпляр служб Analysis Services реализован как отдельный экземпляр службы Windows.
  •  Клиенты обмениваются данными со службами Analysis Services с помощью общедоступного стандарта XML для аналитики (XMLA), который представляет собой протокол для выполнения команд и получения ответов.

Рис. 11. Связи между объектами служб Analysis Services

Исходя из рисунка 11, можно сделать следующие выводы.

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

Каждый объект базы данных содержит несколько объектов измерения. Каждый объект измерения содержит один или несколько атрибутов, которые организованы в виде иерархий.

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

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

Таблица 2

Физическая архитектура многомерных данных (OLAP)

Название элемента

Описание

Серверный процесс

Представляет архитектуру службы. Позволяет использовать несколько экземпляров в Analysis Services.

Папки и файлы сервера

Описывают, как реализуются кубы в среде сервера, в которой эксплуатируется решение служб Analysis Services.

Локальные кубы

Описывают, как реализуются изолированные кубы и что представляет собой область действия такой реализации в решении служб Analysis Services.

Клиент

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

 

Для интеллектуального анализа данных:

Службы MicrosoftSQL ServerAnalysis Services содержат:

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

Логическая архитектура:

Интеллектуальный анализ данных — это процесс взаимодействия нескольких компонентов. Определяются структуры и модели интеллектуального анализа данных с помощью среды Business Intelligence Development Studio. Одна структура интеллектуального анализа может поддерживать несколько моделей интеллектуального анализа данных, совместно использующих один домен. Управлять объектами интеллектуального анализа данных и создавать прогнозы и запросы можно в среде SQL Server Management Studio. Законченное решение развертывается в экземпляре служб Analysis Services.

Физическая архитектура:

Экземпляр служб Analysis Services запускается, как изолированная служба, взаимодействие с этой службой происходит через XMLA с использованием протокола HTTP или TCP. Объекты AMO — это прослойка между приложением пользователя и экземпляром служб Analysis Services. Они предоставляют доступ к административным объектам служб Analysis Services. Объект AMO — это библиотека класса, которая принимает команды от клиентского приложения и преобразует их в XMLA-сообщения для экземпляра служб Analysis Services. Объекты AMO представляют объекты экземпляра служб Analysis Services, как классы для приложения конечного пользователя, с элементами-методами, запускающими команды и элементами-свойствами, хранящими данные объектов служб Analysis Services.

Рисунок 12 отображает архитектуру компонентов служб Analysis Services, включая все главные элементы, запущенные на экземпляре служб Analysis Services, и все пользовательские компоненты, взаимодействующие с этим экземпляром. Рисунок также отображает, что единственным путем доступа к экземпляру является прослушиватель XML для аналитики или использование протокола HTTP или TCP.

Рис. 12. Архитектура компонентов служб Analysis Services

1.4 Математические основы бизнес-аналитики 

1.4.1 Математические основы оперативного анализа данных

Существующие математические модели многомерных OLAP-систем обладают следующими недостатками, касающимися формальной структуры этих моделей.

  1.  Моделирование запросов к многомерной БД с помощью преобразования их в эквивалентные реляционные выражения или логические формулы делает невозможным выполнение произвольной последовательности операций.

2)    Множественное наследование в иерархиях затрудняет реорганизацию иерархической

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

3) В процессе эволюции многомерной базы данных возникают семантические конфликты вследствие различных отношений «родитель –потомок» для нескольких вершин, являющихся родительскими для одного и того же потомка.

4) Структура измерения допускает разбиение всего множества его значений на пересекающиеся подмножества, что может привести к некорректному агрегированию.

Термин OLAP был введен в 1993 Эдгаром Коддом. Кодд сформулировал 12 признаков OLAP-данных, и большинство современных средств OLAP отвечает этим постулатам. [13]

Многомерная концепция данных.

OLAP оперирует данными CUBE, которые являются многомерными массивами. Число измерений OLAP-кубов не ограничено.

Прозрачность.

OLAP системы должны опираться на открытые системы, поддерживающие гетерогенные источники данных.

Доступность.

OLAP системы должны представлять пользователю единую логическую схему данных.

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

Производительность не должна падать при росте числа измерений.

Клиент/сервер архитектура.

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

Различное число измерений.

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

Динамическое представление разреженных матриц.

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

Многопользовательская поддержка.

OLAP-системы должны поддерживать многопользовательский режим работы.

Неограниченные многомерные операции.

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

Интуитивно понятные инструменты манипулирования данными.

Для формулировки многомерных запросов пользователи не должны работать со усложненными меню.

Гибкая настройка конечных отчетов.

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

Отсутствие ограничений.

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

Срез  -  заключается в выделении подмножества ячеек гиперкуба при фиксировании значения одного или нескольких измерений. В результате сечения получается срез или несколько срезов, каждый из которых содержит информацию, связанную со значением измерения, по которому он был построен. Например, если выполнить сечение по значению ЗАО «Строитель» измерения Покупатель, то полученный в результате срез будет содержать информацию об истории продаж всех товаров данного предприятия, которую можно будет свести в плоскую таблицу. 

Рис. 13. Операция среза

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

Таким образом, = ,

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

Рис. 14. Операция вращения

Таким образом, явным формальным примером операции вращения будет служить транспонирование матрицы.

Пусть матрица вращения размера m×n. Тогда транспонированная матрица  , полученная в результате выполнения операции вращения, размером n×m такая, что: элементы .    

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

Рис. 15. Операции консолидации и детализации

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

.

.

1.4.2 Задачи, методы и алгоритмы Data Mining

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

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

Большинство аналитических методов, используемые в технологии Data Mining – это известные математические алгоритмы и методы. Следует отметить, что большинство методов Data Mining были разработаны в рамках теории искусственного интеллекта.

К часто используемым методам и алгоритмам Data Mining относятся:

1. Упрощенный алгоритм Байеса;

  1.  Деревья решений;
  2.  Линейная регрессия;
  3.  Анализ временных рядов;
  4.  Кластеризация;
  5.  Алгоритм взаимосвязей;
  6.  Кластеризация последовательностей;
  7.  Нейронные сети;
  8.  Логическая регрессия;

          1.4.2.1 Задача классификации и регрессии

Формально задачу классификации и регрессии можно описать следующим образом. Имеется множество объектов:

,                                                                                                                     (1)

где  – исследуемый объект.

Каждый объект характеризуется набором переменных:

,                                                                                                            (2)

где — независимые переменные, значения которых известны и на основании которых определяется значение зависимой переменной .

В Data Mining часто набор независимых переменных обозначают в виде вектора:

.                                                                                                                (3)

Каждая переменная  может принимать значения из некоторого множества:

.                                                                                                                         (4)

Если множество значений  переменной  конечное, то задача называется задачей классификации. Если переменная  принимает значение на множестве действительных чисел , то задача называется задачей регрессии.

В задачах классификации и регрессии обнаруженная функциональная зависимость между переменными может быть представлена одним из следующих

способов:

  •  классификационные правила;
  •  деревья решений;
  •  математические функции.

Классификационные правила состоят из двух частей: условия и заключения:

если (условие), то (заключение).

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

Основным достоинством правил является легкость их восприятия и запись на естественном языке. Еще одно преимущество — их относительная независимость.

Существуют разные методы построения правил классификации: алгоритм построения 1-правил, метод Naive Bayes.

Деревья решений — это способ представления правил в иерархической, последовательной структуре.

Деревья решений легко преобразуются в правила. В условную часть таких правил записывается условие, описанное в узлах дерева на пути к листу, в заключительную часть — значение, определенное в листе.

Существуют различные методы построения деревьев решений, такие как: методика «разделяй и властвуй», алгоритм ID3, алгоритм С4.5, алгоритм покрытия.

Математическая функция выражает отношение зависимой переменной от независимых переменных. В этом случае анализируемые объекты рассматриваются как точки в

мерном пространстве. Тогда переменные объекта  рассматриваются как координаты, а функция имеет следующий вид:

,                                                                                (5)

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

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

Существуют различные методы построения математических функций: линейные методы, такие как метод наименьших квадратов, нелинейные методы, Support Vector Machines, регуляризационные сети, дискретизации и редкие сетки.

1.4.2.2 Задача кластеризации

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

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

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

Множество  определим следующим образом:

,                                                                                                                 (6)

где  – исследуемый объект.

Каждый из объектов характеризуется набором параметров:

.                                                                                                            (7)

Каждая переменная может принимать значения из некоторого множества:

.                                                                                                                           (8)

Задача кластеризации состоит в построении множества:

.                                                                                                            (9)

Здесь  –– кластер, содержащий похожие друг на друга объекты из множества :

,                                                                                  (10)

где  — величина, определяющая меру близости для включения объектов в один кластер; — мера близости между объектами, называемая расстоянием.

Неотрицательное значение называется расстоянием между элементами , если выполняются следующие условия:

  1.  , для всех .
  2.  , тогда и только тогда, когда  .
  3.  .
  4.  .

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

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

                                                                                    (12)

Расстояния между объектами предполагают их представление в виде точек  мерного пространства . В этом случае могут быть использованы различные расстояния, например:

  1.  Евклидово расстояние - Иногда может возникнуть желание возвести в квадрат стандартное евклидово расстояние, чтобы придать большие веса более отдаленным друг от друга объектам. Это расстояние вычисляется следующим образом:

                                                                                              (13)

  1.  Расстояние по Хеммингу является просто средним разностей по координатам. Вычисляется по формуле:

                                                                                                       (14)

  1.  Расстояние Чебышева может оказаться полезным, когда желают определить два объекта как "различные", если они различаются по какой-либо одной координате (каким-либо одним измерением). Вычисляется по формуле:

                                                                                                   (15)

  1.  Расстояние Махаланобиса вычисляется по формуле:

                                                               (16)

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

                                                                                    (17)

1.4.2.3 Задача поиска ассоциативных правил

Обозначим объекты, составляющие исследуемые наборы (itemsets), следующим множеством:

,                                                                                                                             (11)

где — объекты, входящие в анализируемые наборы; — общее количество объектов.

Наборы объектов из множества , хранящиеся в БД и подвергаемые анализу, называются транзакциями. Опишем транзакцию как подмножество множества:

.                                                                                                                            (12)

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

,                                                                                                          (13)

где  — количество доступных для анализа транзакций.

Множество транзакций, в которые входит объект , обозначим следующим образом:

.                                                                          (14)

Некоторый произвольный набор объектов (itemset) обозначим следующим образом:

.                                                                                                          (15)

Множество транзакций, в которые входит набор  , обозначим следующим образом:

.                                                                                                 (16)

Отношение количества транзакций, в которое входит набор , к общему количеству транзакций называется поддержкой (support) набора и обозначается :

.                                                                                                                              (17)

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

.                                                                                                                 (18)

Таким образом, при поиске ассоциативных правил требуется найти множество всех частых наборов:

.                                                                                                   (19)

1.4.3 Обзор алгоритмов интеллектуального анализа данных

Существует большое количество методов и алгоритмов интеллектуального анализа данных. Но в данной работе мы ограничимся рассмотрением тех алгоритмов, которые реализуются в SQL Server 2008, так как тема бакалаврской работы связана с рассмотрением бизнес-аналитики на этой платформе.

Таблица 3

Соответствие алгоритмов Microsoft для задач интеллектуального анализа данных

Задача интеллектуального анализа данных

Алгоритмы интеллектуального анализа данных

Классификация

Для задачи классификации используются следующие алгоритмы Microsoft: упрошенный алгоритм Байеса, алгоритм дерева принятия решений, алгоритм нейронной сети.

Регрессия

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

Кластеризация

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

Поиск взаимосвязей

Для задачи поиска взаимосвязей используются следующие алгоритмы Microsoft: алгоритм дерева принятия решений, алгоритм взаимосвязей.

1.4.3.1 Упрощенный алгоритм Байеса

Упрощенный алгоритм Байеса – это алгоритм классификации, основанный на вычислении условной вероятности значений прогнозируемых атрибутов. Предполагается, что входные атрибуты являются независимыми и определен хотя бы один выходной атрибут.

Алгоритм основан на использовании формулы Байеса. Пусть  - полная группа несовместных событий, а B – некоторое событие, вероятность которого положительна. Тогда условная вероятность события , если в резулттате эксперимента наблюдалось событие B, может быть вычислена по формуле:

.                                                                                                              (24)

Формула Байеса позволяет вычислить условные (апостериорные) вероятности.

Для СУБД MS SQL Server 2008 описание модели интеллектуального анализа хранится в виде иерархии узлов. Для упрощенного алгоритма Байеса иерархия имеет 4 уровня. Среда разработки BI Dev Studio позволяет просмотреть содержимое модели.

Для корректного использования этого алгоритма необходимо учитывать:

  1.  входные атрибуты должны быть взаимно независимыми;
  2.  атрибуты могут быть только дискретными или дискретизованными (в процессе дискретизации множество значений непрерывного числового атрибута разбивается на интервалы и далее идет работы с номером интервала);
  3.  алгоритм требует меньшего количества вычислений, чем другие алгоритмы интеллектуального анализа для MS SQL Server 2008, поэтому он часть используется для первоначального исследования данных. По этой же причине алгоритм предпочтителен для анализа больших наборов данных с большим числом входных атрибутов.

1.4.3.2 Алгоритм дерева принятия решений

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

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

Для непрерывных атрибутов алгоритм использует линейную регрессию для определения места разбиения дерева решений.

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

Принцип работы алгоритма

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

Прогнозирование дискретных столбцов

Способ, которым алгоритм дерева принятия решений строит дерево для дискретного прогнозируемого столбца, можно продемонстрировать с использованием гистограммы. Показана гистограмма, на которой построен прогнозируемый столбец «Покупатели велосипедов» в сравнении с входным столбцом «Возраст». Гистограмма «Б» показывает, что возраст человека помогает определить, купит ли этот человек велосипед.

Рис. 16. Гистограмма «А»

Корреляция, показанная на диаграмме, приведет к тому, что алгоритм дерева принятия решений создаст новый узел в модели.

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

Рис. 17. Гистограмма «Б»

Прогнозирование непрерывных столбцов

Когда алгоритм дерева принятия решений строит дерево, основанное на непрерывном

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

Рис. 18. Диаграмма данных

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

Рис. 19. Регрессионные уравнения

1.4.3.3 Алгоритм линейной регрессии

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

Рис. 20. Пример использования линейной регрессии

В случае одной независимой переменной (одного регрессора), задача может быть сформулирована следующим образом.

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

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

1.4.3.4 Алгоритм анализа временных рядов

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

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

интеллектуального анализа данных, отметка времени (или номер элемента во временном ряде) вводится как один из атрибутов. Как правило, предполагается, что отметка времени – дискретное числовое значение, а предсказываемый атрибут – непрерывный.

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

Рассмотрим теперь некоторые особенности реализации алгоритма в SQL Server 2008. Алгоритм временных рядов (Microsoft Time Series) предоставляет собой совокупность двух алгоритмов регрессии, оптимизированных для прогноза рядов непрерывных числовых значений.

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

Точность прогноза для временного ряда может повысить указание известной периодичности.

Авторегрессия отличается от обычной регрессии тем, что текущее значение параметра

выражается через его значения в предыдущие моменты времени. Если использовать линейные зависимости, то алгоритм имеет решение в виде:

.                                                                                           (25)

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

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

1.4.3.5 Алгоритм кластеризации

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

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

Предоставляемый аналитическими службами SQL Server 2008 алгоритм кластеризации (Microsoft Clustering), использует итерационные методы для группировки вариантов со сходными характеристиками в кластеры. Алгоритм сначала определяет имеющиеся связи в наборе данных и на основе этой информации формирует кластеры.

Идею можно проиллюстрировать с помощью диаграмм на рисунке 21. На первом этапе (рисунок 21, а) имеется множество вариантов, далее (рисунок 21, b) идет итерационный процесс формирования кластеров, и в итоге получен относительно небольшой набор кластеров, которым можно задать идентификаторы и продолжить анализ.

Рис. 21. Переход от отдельных вариантов к кластерам

Microsoft Clustering содержит реализацию двух алгоритмов кластеризации. Первый из них, алгоритм средних (англ.  means), реализует, так называемую жесткую кластеризацию. Это значит, что вариант может принадлежать только одному кластеру. Идея алгоритма заключается в следующем:

1. Выбирается число кластеров .

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

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

4. Вычисляются центроиды – центры тяжести кластеров. Каждый центроид – это вектор, элементы которого представляют собой средние значения признаков, вычисленные по всем записям кластера. Центр кластера смещается в его центроид.

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

Второй метод, реализованный в Microsoft Clustering, это максимизация ожиданий (англ. Expectation-maximization, EM). Он относится к методам мягкой кластеризации, т. е. вариант в этом случае принадлежит к нескольким кластерам, а для всех возможных сочетаний вариантов с кластерами вычисляются вероятности.

При кластеризации методом EM алгоритм итеративно уточняет начальную модель кластеризации, подгоняя ее к данным, и определяет вероятность принадлежности точки данных кластеру. Этот алгоритм заканчивает работу, когда вероятностная модель соответствует данным. Функция, используемая для установления соответствия, – логарифм функции правдоподобия данных, вводимых в модель.

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

1.4.3.6 Алгоритм взаимосвязей

Алгоритм взаимосвязей или ассоциативных правил (Association Rules) позволяет выявить часто встречающиеся сочетания элементов данных и использовать обнаруженные закономерности для построения прогноза.

Для выявления часто встречающихся наборов объектов может использоваться алгоритм Apriori, реализация которого лежит в основе алгоритма Microsoft Association Rules, использующегося в SQL Server 2008. Алгоритм Apriori последовательно выделяет часто встречающиеся одно-, двух-, …, n-элементные наборы. На  м этапе выделяются  элементные наборы. Для этого сначала выполняется формирование наборов-кандидатов, после чего для них рассчитывается поддержка.

Поддержка (от англ. support) используется для измерения популярности набора элементов. Например, поддержка набора элементов  – общее количество транзакций, которые содержат как , так и.

Чтобы количественно охарактеризовать правило, используется вероятность (англ. probability). Этот же показатель иногда называется достоверностью.

Probability .                    (26)

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

Чтобы оценить взаимную зависимость элементов используется важность (англ. importance) или показатель интереса.

Importance               (27)

Если Importance то  и  – независимые элементы.  Importance  означает, что  и  имеют положительную корреляцию (клиент купивший товар A вероятно купит и B). Importance  указывает на отрицательную корреляцию.

Для правил важность рассчитывается как логарифм отношения вероятностей:

Importance                           (28)

В данном случае равная 0 важность означает, что между  и  нет взаимосвязи. Положительная важность означает, что вероятность  повышается, когда справедливо ; отрицательная – вероятность  понижается, когда справедливо .

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

рассматриваться, минимальную поддержку для рассматриваемых наборов и т. д.

1.4.3.7 Алгоритм кластеризации последовательностей

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

Используемый аналитическими службами SQL Server 2008 алгоритм Microsoft Sequence Clustering – это гибридный алгоритм, сочетающий методы кластеризации с анализом марковских цепей. Анализируемое множество вариантов формируется с использованием вложенных таблиц.

Важно, чтобы вложенная таблица содержала собственный идентификатор, который позволил бы определить последовательность элементов.

С помощью марковских моделей анализируется направленный граф, хранящий переходы между различными состояниями. Алгоритм Microsoft Sequence Clustering использует марковские цепи  го порядка. Число  говорит о том, сколько состояний использовалось для определения вероятности текущего состояния. В модели первого порядка вероятность текущего состояния зависит только от предыдущего состояния. В марковской цепи второго порядка вероятность текущего состояния зависит от двух предыдущих состояний, и так далее.

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

Далее алгоритм изучает различия между всеми возможными последовательностями, чтобы определить, какие последовательности лучше всего использовать в качестве входных данных для кластеризации. Созданный алгоритмом список вероятных последовательностей используется в качестве входных данных для применяемого по умолчанию EM-метода кластеризации (англ. Expectation Maximization, максимизации ожидания).

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

1.4.3.8 Алгоритм нейронных сетей

В случае наличия в данных сложных зависимостей между атрибутами, «быстрые» алгоритмы интеллектуального анализа, такие как упрощённый алгоритм Байеса, могут давать недостаточно точный результат. Улучшить ситуацию может применение нейросетевых алгоритмов.

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

Рис. 22 Пример схемы нейронной сети

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

В используемом аналитическими службами SQL Server 2008 алгоритме Microsoft Neural Network, имеющий более двух состояний дискретный входной атрибут модели интеллектуального анализа приводит к созданию одного входного нейрона для каждого состояния и одного входного нейрона для отсутствующего состояния (если обучающие данные содержат какие-либо значения NULL). Непрерывный входной атрибут «создает» два входных нейрона: один нейрон для отсутствующего состояния и один нейрон для значения самого непрерывного атрибута. Входные нейроны обеспечивают входы для одного или нескольких скрытых нейронов.

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

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

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

Рис. 23 Формальное представление нейрона

Каждому нейрону сопоставлена простая нелинейная функция, называемая функцией активации, которая описывает релевантность или важность определенного нейрона для этого слоя нейронной сети. В качестве функции активации в алгоритме Microsoft Neural Network

крытые нейроны используют функцию гиперболического тангенса (tanh), а выходные нейроны — сигмоидальную (логистическую) функцию. Обе функции являются нелинейными и непрерывными, позволяющими нейронной сети моделировать нелинейные связи между входными и выходными нейронами.

                                                                                                                          (29)

                                                                                                                          (30)

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

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

1. На начальной стадии случайным образом присваиваются значения всем весам всех входов в сети. Значения обычно берутся из ин-

2. Для каждого обучающего варианта вычисляются выходы.

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

Шаги 2, 3 повторяются для всех вариантов, используемых в качестве образцов. После этого, веса в сети обновляются таким образом, чтобы минимизировать ошибки.

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

1.4.3.9Алгоритм логической регрессии

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

Предположим, что прогнозируемый столбец содержит только два состояния, и необходимо провести регрессионный анализ, сопоставляя входные столбцы с вероятностью того, что прогнозируемый столбец будет содержать конкретное состояние. Результаты, полученные методами линейной и логистической регрессии, представлены на рисунке 24a) и 24b) соответственно. Линейная регрессия не ограничивает значения функции диапазоном от 0 до 1, несмотря на то, что они должны являться минимальным и максимальным значениями этого столбца. Кривая, формируемая алгоритмом логистической регрессии, в этом случае более точно описывает исследуемую характеристику.

Рис. 24. Сравнение результатов, полученных методами линейной «А» и логистической регрессии «В»

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


1.5 Анализ результатов главы 1 и уточнение постановки задачи

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

В первой части работы приведена подробная архитектура СУБД для улучшения понимания происходящих процессов.

Также приведено подробное описание моделей, используемые средствами СУБД SQL Server. В данном разделе подробно рассказывается о методах и алгоритмах, заложенных в анализе данных, а также их формализация. Конкретно приведены и рассмотрены Майкрософтовские алгоритмы интеллектуального анализа данных.

Формальное представление задачи классификации и регрессии:

, где  атрибуты-независимые переменные,  зависимая.    

 Формальное представление задачи кластеризации:

 – исследуемый объект;  набор параметров.

,  –– кластер, содержащий похожие друг на друга объекты из множества :

.

Формальное представление задачи поиска ассоциативных правил:

, — объекты, входящие в анализируемые наборы; — общее количество объектов.

, множество транзакций, в которые входит объект .

При поиске ассоциативных правил требуется найти множество всех частых наборов:

.                                                                                                                                                                                                          

Следующая глава будет посвящена разделу с языковыми средствами для СУБД SQL Server.

2. Языковые средства бизнес-аналитики: языки MDX и DMX

2.1 Базовые понятия языка MDX

MDX (MultiDimensional eXpressions — язык многомерных выражений) является языком запросов, используемым для извлечения данных из многомерных баз данных. Он используется для запрашивания данных из баз данных OLAP с помощью Analysis. Изначально MDX был разработан компанией Microsoft и был введен в 1998 году.

Основой многомерной базы данных является куб. Каждый куб обычно содержит более двух измерений. Куб Adventure Works в учебной базе данных содержит 21 измерение.

Объект Measures (размерности) представляет собой специальное измерение, которое является набором размерностей. Размерности являются количественными сущностями, которые используются для анализа. Каждая размерность представляет собой часть категории, называющейся размерной группой (measure group). Размерные группы используются инструментами разработки или клиентскими инструментами главным образом для навигационных целей, чтобы улучшить читабельность или облегчить использование конечным пользователям. Они никогда не используются в запросах MDX при обращении к размерностям. Тем не менее, они могут использоваться в определенных функциях MDX. По умолчанию служба анализа генерирует размерную группу для каждой таблицы фактов.

Каждая иерархия измерения содержит один или несколько элементов, называемых членами (members). Каждый член соответствует одному или нескольким вхождениям этого значения в базовую таблицу измерений.

В MDX каждый член иерархии представлен уникальным именем. Уникальные имена помогают идентифицировать определенные члены.

Ячейка (cell) представляет собой элемент, из которого извлекаются данные, соответствующие пересечению членов измерения. Число ячеек внутри куба данных определяется числом иерархий в каждом из измерений куба данных и числом членов каждой иерархии. Ячейки хранят значения всех размерностей в кубе. Если для какой-нибудь размерности недоступно значение данных в ячейке, считается, что соответствующим значением размерности является значение Null (т.е. пустое значение).

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

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

Набор (set) — это совокупность кортежей, которые определены с использованием одинакового количества одних и тех же измерений. Набор обычно заключается в фигурные скобки ({}).

2.2 Создание структуры многомерного анализа 

Запрос на языке MDX представляет собой набор команд, который выглядит следующим образом:

[WITH <formula_expression> [, <formula_expression> ...]]

SELECT [<axis_expression>, [<axis_expression>...]]

FROM [<cube_expression>]

[WHERE [slicer_expression]]

где:

  •  axis_specification — содержит описание осей куба;
  •  cube_specification — содержит название куба;
  •  slicer_specification — содержит описание срезов куба.

Ключевые слова WITH, SELECT, FROM и WHERE в сочетании с выражениями, следующими за ними, принято называть предложениями (clause). В представленном выше шаблоне запроса MDX в квадратные скобки заключены необязательные элементы, которые могут присутствовать в одних запросах и отсутствовать в других.

2.2.1 Выражение SELECT

Инструкция SELECT языка MDX используется для извлечения подмножества многомерных данных из сервера OLAP. Используется следующий синтаксис для инструкции SELECT:

SELECT [<axis_expression>, [<axis_expression>...]]

Выражение axis_expression, указанное после ключевого слова SELECT, ссылается на измерение, представляющее те данные, которые надо извлечь. Эти измерения называют осевыми измерениями (axis dimensions), поскольку представленные ими данные проецируются на соответствующие оси. Для выражения axis_expression используется следующий синтаксис:

<axis_expression> := <набор> ON Axis (номер оси)

Язык MDX предоставляет возможность указать до 128 осей в инструкции SELECT. Первые пять осей имеют псевдонимы. Это оси COLUMNS (столбцы), ROWS (строки), PAGES (страницы), SECTIONS (разделы) и CHAPTERS (главы). Последующие оси указываются с помощью слова Axis, за которым следует номер оси. Рассмотрим следующий пример.

SELECT        Measures. [Internet Sales Amount] ON COLUMNS,

                 [Customers]. [Country].MEMBERS on ROWS,

                 [Product]. [Product Line].MEMBERS on PAGES

В приведенной выше инструкции SELECT указаны три оси. В этом примере данные из измерений Measures, Customers и Product отображаются на трех осях, чтобы сформировать осевые измерения.

При определении инструкции SELECT создается осевое измерение. Инструкция SELECT назначает набор осям COLUMNS и ROWS. Осевое измерение извлекает и содержит данные для нескольких членов, а не для единственного члена.

2.2.2 Выражение FROM

Предложение FROM в запросе MDX определяет куб, из которого извлекаются данные для анализа. Предложение FROM обязательно для любого запроса MDX.

Для предложения FROM используется следующий синтаксис:

FROM <cube_expression>

Выражение cube_expression обозначает имя куба или подраздела куба, из которого извлекаются данные. Куб, указанный в предложении FROM, называют контекстом куба (cube context), и запрос MDX выполняется внутри этого контекста.

SELECT [Measures]. [Internet Sales Amount] ON COLUMNS

FROM [Adventure Works]

Выше приведен пример правильного запроса MDX, который извлекает размерность [Internet Sales Amount] по оси X. Указанная размерность извлекается из контекста куба [Adventure Works].

2.2.3 Выражение WHERE

Для задания условия отбора применяется предложение WHERE. Инструкция WHERE ограничивает набор результатов запроса с помощью некоторого критерия.

SELECT Measures. [Sales] ON COLUMS,

[Product]. [Product Line].MEMBERS on ROWS

FROM ProductsCube

WHERE ([Product]. [Color].[Silver])

Два столбца, выбираемых запросом SQL, теперь представлены по осям COLUMNS и ROWS.

Измерение среза (slicer dimension) создается при определении предложения WHERE; это фильтр, который исключает нежелательные измерения и члены. Измерение среза включает и все те оси куба, которые не включены явно в оси, указанные в определении запроса. Заданные по умолчанию члены иерархий, которые не включены в оси запроса, используются в осях среза данных. результатом измерения среза является один кортеж. Если в оси среза определено несколько кортежей, то они будут обработаны как набор, а их значения — агрегированы с использованием размерности, заданной в запросе, и функции агрегации из этой размерности.

2.2.4 Выражение WITH

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

Для предложения WITH используется следующий синтаксис.

[WITH <formula_expression> [, <formula_expression> ...]]

Предложение WITH позволяет определять несколько вычислений внутри одной инструкции. Выражение formula_expression варьируется в зависимости от типа вычислений. При использовании в предложении WITH нескольких вычислений они отделяются друг от друга запятыми.

2.2.5 Именованные наборы

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

Для именованного набора выражение formula_expression в предложении WITH выглядит следующим образом:

Formula_expression := SET <псевдоним_набора> AS [']<набор>[']

В качестве псевдонима можно использовать любое имя, которое обычно заключают в квадратные скобки. В выражении, определяющем именованный набор, используются ключевые слова SET и AS. Набор кортежей не обязательно заключать в одинарные кавычки ('').

2.2.6 Вычисляемые члены

Вычисляемые члены представляют собой вычисления, определяемые выражениями MDX. Таким образом вычисляемые члены позволяют получить результат, основанный на вычислении выражений MDX, а не просто извлечь исходные фактические данные.  В языке MDX для создания вычисляемых членов в предложении WITH используются ключевые слова MEMBER и AS.

WITH MEMBER [MEASURES].[Profit] AS '([Measures].[Internet Sales

Amount] - [Measures].[Total Product Cost])'

SELECT [MEASURES].[Profit] ON COLUMNS,

[Customer].[Country].MEMBERS ON ROWS

FROM [Adventure Works]

В примере вычисляемый член Profit (Прибыль) определен как разность размерностей [Internet Sales Amount] (Сумма Интернет-продаж) и [Total Product Cost] (Общая стоимость товара). При выполнении данного запроса для каждой страны вычисляемый член будет получен на основе вычисления выражения MDX.

2.3 Выражения MDX

Выражения MDX представляют собой инструкции языка MDX, которые вычисляют определенные значения. Обычно они используются для вычисления или определения значений для таких объектов, как заданный по умолчанию член и заданная по умолчанию размерность, либо применяются при определении выражений безопасности, позволяющих или запрещающих доступ к некоторой информации. Обычно выражения MDX используют в качестве параметра член, кортеж или набор и возвращают некоторое значение. Если в результате выполнения выражения не получено значение, то возвращается значение Null.

Язык MDX также поддерживает возможность размещения комментариев в запросах и выражениях MDX. На текущий момент существует три различных способа добавления комментариев в код MDX.

Эти способы продемонстрированы ниже:

// (две косые черты) здесь следует комментарий

-- (два дефиса) здесь следует комментарий

/* здесь следует комментарий */ (две пары символов косой черты и звездочки)

2.3.1 Операторы

Язык MDX включает несколько операторов. Оператор представляет собой функцию, которая выполняет специфическое действие и использует аргументы. В MDX используются операторы нескольких типов. MDX содержит арифметические операторы, логические операторы и специальные операторы MDX.

Обычные арифметические операторы, такие как «+», «–», «*» и «/», входят в состав арифметических операторов MDX. Эти операторы могут применяться для выполнения арифметических операций с двумя числами.

Операторы «+», «–» и «*» помимо того, что являются арифметическими операторами, также могут использоваться для выполнения операций с наборами кортежей MDX. Оператор «+» применяется для объединения двух наборов, оператор «–» используется для вычисления разности двух наборов, а оператор «*» позволяет найти векторное произведение двух наборов. Результатом векторного произведения двух наборов являются все возможные комбинации кортежей в каждом наборе. Векторное произведение позволяет извлечь данные в матричном формате.

Язык MDX поддерживает такие операторы сравнения, как «<», «<=», «>», «>=», «=» и «<>». Эти операторы используют два выражения MDX в качестве аргументов и возвращают значения TRUE (Истина) или FALSE (Ложь) в зависимости от результатов сравнения величин, полученных в результате вычисления выражений MDX.

Count (Customer.[Country].members) > 3

В приведенном выше примере функция Count используется для подсчета количества членов в иерархии Country измерения Customer. Поскольку иерархия Country содержит больше трех членов, результатом рассматриваемого выражения MDX будет значение TRUE.

Язык MDX поддерживает такие логические операторы, как AND, OR, NOT и IS, которые используются для логической конъюнкции (операция И), логической дизъюнкции (операция ИЛИ), логического отрицания и сравнения. Эти операторы используют два выражения MDX в качестве аргументов и возвращают значение TRUE или FALSE как результат логической операции. Данные логические операторы обычно используются в выражениях MDX, предназначенных для обеспечения защиты ячейки или измерения от несанкционированного доступа.

2.3.2 Функции 

Функции MDX могут использоваться в выражениях или запросах MDX. Функции MDX помогают обращаться к некоторым общим операциям, которые требуются в ваших запросах или выражениях MDX.

Функции набора применяются для выполнения операций с наборами кортежей. Такие функции используют в качестве аргументов наборы кортежей, и зачастую результатом их выполнения также является набор. Наиболее широко применяемыми из функций набора являются функции CrossJoin и Filter.

Для функции CrossJoin используется следующий синтаксис.

CrossJoin(Выражение_набора [, Выражение_набора ...])

Функция CrossJoin возвращает все возможные комбинации членов наборов, указанных в качестве ее аргументов.

SELECT Measures.[Internet Sales Amount] ON COLUMNS,

CrossJoin( {Product.[Product Line].[Product Line].MEMBERS},

{[Customer].[Country].MEMBERS}) on ROWS

FROM [Adventure Works]

Этот запрос создает векторное произведение каждого члена в измерении Product (Товар) с каждым членом измерения Customer (Клиент) и возвращает для каждой полученной пары значение размерности Internet Sales Amount (Сумма Интернет-продаж).

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

Filter( Выражение_набора, {Логическое_выражение |

[CAPTION | KEY | NAME] = Строковое_выражение})

SELECT Measures.[Internet Sales Amount] ON COLUMNS,

Filter(CrossJoin( {Product.[Product Line].[Product Line].MEMBERS},

{[Customer].[Country].MEMBERS}),[Internet Sales Amount] >2000000)

on ROWS

FROM [Adventure Works]

Этот запрос возвращает информацию только о тех товарах, для которых суммы продаж по каждой из стран (и общая сумма по всем странам) превышают $2000000.

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

Функция ParallelPeriod позволяет извлечь член измерения типа Time (Время), основываясь на заданном члене и определенных условиях. Для функции ParallelPeriod используется следующий синтаксис.

ParallelPeriod([Выражение_уровня [, Числовое_выражение [,

Выражение_члена]]])

Функция ParallelPeriod используется для сравнения значений размерности относительно различных временных периодов.

Числовые функции чрезвычайно полезны при определении параметров запроса MDX или создании вычисляемых размерностей. В данной группе представлено множество статистических функций, включая функции для расчета стандартного среднеквадратичного отклонения, выборочной дисперсии и корреляции. Наиболее часто применяемыми из числовых функций являются простая функция под названием Count и DistinctCount. Функция Count используется для подсчета количества элементов в таком объекте, как измерение, кортеж, набор или уровень. Функция DistinctCount  в свою очередь использует в качестве аргумента выражение, задающее набор кортежей, и возвращает число индивидуальных (недублирующихся) элементов в указанном наборе, а не общее число элементов. Ниже показан синтаксис, используемый обеими упомянутыми функциями.

Count(Измерение | Кортеж | Набор| Уровень)

DistinctCount(Выражение_набора)

Чтобы извлечь имена наборов, кортежей и членов в форме строки, можно использовать специальные функции, например, MemberToStr(<Выражение_члена>). А для выполнения обратного преобразования, т.е. преобразования строкового значения в выражение, возвращающее член измерения, можно использовать функцию StrToMember(<Строка>).

WITH MEMBER Measures.CustomerCount AS DistinctCount(

Exists([Customer].[Customer].MEMBERS,

[Product].[Product Line].Mountain,"Internet Sales"))

SELECT Measures.CustomerCount ON COLUMNS

FROM [Adventure Works]

Функция DistinctCount подсчитывает число неповторяющихся членов измерения Customer (Клиент), которые соответствуют клиентам, приобретавшим товары из товарной линии Mountain (Горные). Если клиент приобретал товар дважды, то функция DistinctCount посчитает этого клиента только один раз. Функция MDX Exists используется для отбора только тех клиентов, которые приобретали товары из товарной линии Mountain через Интернет. Результатом выполнения функции Exists является набор записей о клиентах, которые приобрели товары из товарной линии Mountain.

2.4 Базовые понятия языка DMX

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

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

Дополнительные типы атрибутов основаны на базовых. К ним, в частности, относятся упорядоченный (или циклический) тип. Такой атрибут является категориальным, но для него задан определенный порядок значений (например, размеры одежды).

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

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

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

В то же время, MS SQLServer и DMX позволяют использовать вложенные таблицы, что позволяет описывать более сложные по структуре варианты.

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

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

Анализировать данные можно из реляционных таблиц и других источников, если они специальным образом описаны в качестве представления источника данных в службах AnalysisServices. Сначала определяется источник данных (DataSource), а потом его представление (DataSourceView). Представление источника данных позволяет сочетать различные источники данных и работать с вложенными таблицами. Один из способов определить источник данных - использование соответствующего мастера в среде BI DevStudio.

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

2.5 Создание структуры интеллектуального анализа данных

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

Рассмотрим конструкции языка DMX, позволяющие создавать структуры.

Для этого используется оператор CREATE MININGSTRUCTURE. В обобщенном виде его формат представлен ниже:

CREATE [SESSION] MINING STRUCTURE <structure>

(

   [(<column definition list>)]

)

[WITH HOLDOUT (<holdout-specifier> [OR <holdout-specifier>])]

[REPEATABLE(<holdout seed>)]

где

<holdout-specifier>::=<holdout-maxpercent> PERCENT |

   <holdout-maxcases> CASES

   

Приведённые в описании атрибуты имеют следующие значения:

  •  Structure уникальное имя структуры;
  •  column definition list  cписок определений столбцов с разделителями-запятыми;
  •  holdout-maxpercent целое число от 1 до 100, которое показывает процентную долю данных, выделяемых для проверки;
  •  holdout-maxcases  целое число, показывающее максимальное число вариантов, используемых для проверки. Если указанное значение больше числа входных вариантов, для проверки будут использованы все варианты и отобразится соответствующее предупреждение. В случае, если указаны как процентная доля, так и число вариантов, применяется меньшее из ограничений;
  •  holdoutseed  целое число, которое используется как начальное значение при начале секционирования данных. Если оно равно 0, в качестве начального значения используется хэш идентификатора структуры интеллектуального анализа данных. Если надо гарантировать возможность повторного создания такого же разбиения (при условии, что исходные данные остались прежними), необходимо в скобках указать ненулевое целое значение.

Необязательное ключевое слово SESSION показывает, что структура является временной и ее можно использовать только в течение текущего сеанса работы с SQL Server. После завершения сеанса структура и любые модели на ее основе удаляются. Чтобы создать временные структуры и модели интеллектуального анализа данных, необходимо сначала задать свойство базы данных Allow Session Mining Models. При использовании для анализа инструментов TableAnalysisTools из надстроек интеллектуального анализа данных для Microsoft Excel создаются именно такие структуры.

Для определения столбца используется следующий формат:

<column name><data type>    [<Distribution>]    [<Modeling Flags>]    <Content Type>    [<column relationship>],

 где обязательно указываются <columnname> - имя столбца,

 <datatype> - тип данных, 

<ContentType> - тип содержимого.

Для определения столбца с вложенной таблицей используется следующий синтаксис:

<columnname>TABLE    ( <column definition list> )

Флаг Distribution позволяет указать на распределение для столбца с числовым значением.

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

К любому определению столбца можно добавить предложение, описывающее связь между двумя столбцами (column relationship). Делается это с помощью ключевого слова RELATED TO, что показывает иерархию значений. Назначением столбца RELATED TO может быть ключевой столбец вложенной таблицы, столбец с дискретными значениями из строки вариантов или какой-либо другой столбец с предложением RELATED TO, указывающим на более глубокий уровень иерархии.

2.5.1 Создание модели интеллектуального анализа данных

Создание модели интеллектуального анализа данных можно осуществить одним из следующих способов:

  1.  после создания структуры интеллектуального анализа данных можно добавлять в нее модели с помощью инструкции ALTER MINING STRUCTURE;
  2.  можно использовать инструкцию CREATE MINING MODEL, в результате выполнения которой создается модель и автоматически формируется лежащая в ее основе структура интеллектуального анализа данных. Имя структуры интеллектуального анализа данных формируется путем добавления строки"_structure" к имени модели.

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

ALTER MINING STRUCTURE <structure>

ADD MINING MODEL <model>

(

<column definition list>

 [(<nested column definition list>) [WITH FILTER (<nested filter criteria>)]]

)

USING <algorithm> [(<parameter list>)]

[WITH DRILLTHROUGH]

[,FILTER(<filter criteria>)] ,  

где

Таблица 4

Значения приведенных атрибутов

Атрибут

Описание

structure

имя структуры интеллектуального анализа данных, к которой будет добавлена модель;

model

уникальное имя модели интеллектуального анализа данных;

column definition list

список определений столбцов с разделителями-запятыми;

nestedcolumn definition list

список с разделителями-запятыми столбцов вложенной таблицы, если применимо;

nested filter criteria

определение фильтра, применяющегося к столбцам вложенной таблицы;

algorithm

название используемого моделью алгоритма интеллектуального анализа данных;

parameter list

список параметров алгоритма (через запятую);

filter criteria

определение фильтра, применяющегося к столбцам таблицы вариантов.

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

Если модели не требуется прогнозируемый столбец (например, при кластеризации), то в инструкцию не нужно включать определение столбца.

   В общем случае определение столбца выполняется в соответствии со следующим форматом:

<structure column name>  [AS <model column name>]  [<modeling flags>]    [<prediction>]

Таблица 5

Значения приведенных атрибутов

Атрибут

Описание

structure column name

имя столбца в соответствии с определение структуры;

model column name

псевдоним (необязательный параметр, позволяющий в модели использовать);

modeling flags

флаги моделирования, о которых говорилось выше: значение REGRESSOR указывает, что алгоритм регрессии может использовать заданный столбец в формуле регрессии; значение MODEL_EXISTENCE_ONLY указывает, что само присутствие атрибута важнее, чем значения столбца атрибута;

prediction

флаг прогнозирования (или флаг использования), указывающий, что данный столбец содержит прогнозируемую величину. Может принимать значение PREDICT (столбец является как входом, так и выходом) или PREDICT_ONLY (столбец является только выходом). Столбец без флага считается входом.

Если в определении модели стоит WITH DRILLTHROUGH, то пользователям разрешается проводить детализацию (т.е. просматривать не только параметры модели, но и данные вариантов в этой модели).

Определение фильтров позволяет использовать при обработке модели только варианты, соответствующие условиям фильтрации.  

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

INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure> (<mapped model columns>) <source data query>

или

INSERT INTO [MINING MODEL]|[MINING STRUCTURE] <model>|<structure>.COLUMN_VALUES (<mapped model columns>) <source data query>    

где

Таблица 6

Значения приведенных атрибутов

Атрибут

Описание

model

название модели;

structure

название структуры;

mapped model columns

список через запятую с названиями столбцов, в т.ч. вложенных таблиц с их столбцами;

source data query

запрос, описывающий загружаемый набор исходных данных.

Если в операторе указана структура интеллектуального анализа данных, обрабатывается эта структура и все связанные с ней модели. Если задана модель, инструкция обрабатывает только эту модель. Если не указан аргумент MININGMODEL или MININGSTRUCTURE,

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

Форма INSERT INTO<объект>.COLUMN_VALUES, позволяет производить вставку данных непосредственно в столбцы модели без ее обучения. При использовании этого метода, данные столбцов поставляются модели в сжатом и упорядоченном виде, что полезно при работе с наборами данных, содержащими иерархии или упорядоченные столбцы.

Элементы списка <mapped model columns> представимы в виде:

<column identifier> | SKIP | <table identifier> (<column identifier> | SKIP)    

где

Таблица 7

Значения приведенных атрибутов

Атрибут

Описание

<columnidentifier>

название столбца;

<tableidentifier>

название вложенной таблицы;

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

2.5.2 Листинг 

Удалить данные, модель или структуру можно с помощью оператора DELETE. Его синтаксис приведен ниже:

DELETE FROM [MINING MODEL] <model>[.CONTENT]

DELETE FROM [MINING STRUCTURE] <structure>[.CONTENT]|[.CASES]    

где

Таблица 8

Значения приведенных атрибутов

Атрибут

Описание

model

имя модели;

structure

имя структуры.

Если не указан аргумент MININGMODEL или MININGSTRUCTURE, Analysis Services производит поиск типа объекта на основе имени и затем обрабатывает корректный объект.

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

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

DROP MINING MODEL<model>    

или

DROP MINING STRUCTURE <structure>    

где

Таблица 9

Значения приведенных атрибутов

Атрибут

Описание

model

имя модели;

structure

имя структуры.

 

Инструкции EXPORT и IMPORT позволяют соответственно сохранить модель или структуру интеллектуального анализа в файл резервной копии служб AnalysisServices (*.abf) и восстановить модель или структуру из файла. Синтаксис команд [12]:

EXPORT <object type><object name>[, <object name>] [<object type><object name>[, <object name] ] TO <filename> [WITH DEPENDENCIES]    

и

IMPORT FROM<filename>    

где

Таблица 10

Значения приведенных атрибутов

Атрибут

Описание

objecttype

тип экспортируемого объекта (модель или структура интеллектуального анализа данных);

objectname

имя экспортируемого объекта;

filename

имя и расположение файла для экспорта (аргумент типа string, берется в одинарные кавычки).

Если инструкция указывает модель интеллектуального анализа данных, итоговый файл также содержит связанную структуру интеллектуального анализа данных. Если инструкция указывает WITH DEPENDENCIES, все объекты, необходимые для обработки объекта (например, источник данных и представление источника данных), включаются в ABF-файл. Чтобы экспортировать или импортировать объекты базы данных служб Microsoft SQLServer Службы AnalysisServices, необходимо иметь права администратора базы данных или сервера.

2.5.3 Работа с данными и построение прогнозов

Следующая задача - это работа с данными и построение прогнозов. Для этого используется оператор SELECT.

При интеллектуальном анализе данных с помощью оператора SELECT можно решить следующие задачи:

  •  просмотр вариантов, загруженных в структуру интеллектуального анализа данных;
  •  просмотр содержимого существующей модели;
  •  создание прогнозов по существующей модели;
  •  создание копии существующей модели.

Для решения первых двух задач используется следующий формат записи оператора:

SELECT [FLATTENED] [TOP<n>] <selectlist>

FROM <model/structure>[.aspect]

[WHERE <condition expression>]

[ORDER BY <expression>[DESC|ASC]]   

Инструкция FLATTENED указывает на необходимость преобразования, возвращаемых запросом SELECT результатов в "плоский" набор строк (т.е. преобразование к обычной таблице). Она используется, когда представление вариантов с вложенными таблицами в используемом по умолчанию иерархическом формате неприемлемо.

Инструкции ORDER BY и TOP<n> позволяют упорядочить возвращаемый набор по указанному параметру и вернуть только первые  значений. Это может быть полезно в сценариях вроде целевых рассылок, где результаты нужно отправлять только наиболее вероятным получателям. Для этого можно упорядочить результаты прогнозирующего запроса целевой рассылки по вероятности, а затем вернуть только верхние n результатов.

В список выбора <selectlist> могут входить ссылки на скалярные столбцы, прогнозирующие функции и выражения. Доступные параметры зависят от алгоритма и следующих условий:

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

Если вместо списка выбора стоит символ «*», то будут выбраны все столбцы из модели или структуры.   

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

WHERE <condition expression>  

2.5.4 Детализация структуры

Рассмотрим инструкцию FROM. Если в ней стоит <structure>.CASES, где <structure> - имя структуры интеллектуального анализа, то будут возвращаться варианты, использованные для создания структуры. Если детализация для структуры не включена, выполнение данной инструкции завершится сбоем. Но по умолчанию детализация включена. Явное указание для работы со структурой – с помощью ключевых слов MINING STRUCTURE.  

     2.5.5 Детализация модели

Формат оператора выглядит следующим образом:

SELECT [FLATTENED] [TOP <n>] <expression list> FROM <model>.CASES

[WHERE <condition expression>][ORDER BY <expression> [DESC|ASC]]

Если детализация для модели интеллектуального анализа данных не включена, выполнение данной инструкции завершится ошибкой. Для расширений интеллектуального анализа данных активировать детализацию можно только при создании модели (с помощью инструкции WITHDRILLTHROUGH). В среде BI DevStudio можно добавить детализацию и в существующую модель, но прежде чем будет можно просматривать варианты, необходимо выполнить повторную обработку модели.

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

2.5.6 Запрос значений столбца

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

SELECT [FLATTENED] DISTINCT [TOP <n>] <expression list> FROM <model>

[WHERE <condition list>][ORDER BY <expression>]

При этом для дискретного столбца будут введены все возможные значения, для непрерывного - среднее значение, для дискретизованного - среднее значение для каждого из определённых в процессе дискретизации интервалов.

2.5.7 Построение прогнозов

Задача прогнозирования в языке DMX также решается с помощью оператора SELECT. При этом чаще всего используется конструкция прогнозирующего соединения -PREDICTION JOIN. С ее помощью шаблонам модели сопоставляется набор данных из внешнего источника, что позволяет определить значение для прогнозируемого столбца.

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

Запрос с использованием функции OPENQUERY

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

Использование функции Predict

Функция Predict возвращает спрогнозированное значение или набор значений для заданного столбца. Синтаксис будет следующим:

Predict(<scalar column reference>, [option1], [option2], [option n], [INCLUDE_NODE_ID], n)    

ИЛИ

Predict(<table column reference>, [option1], [option2], [option n], [INCLUDE_NODE_ID], n)

В то же время просто выбор прогнозируемого столбца в заголовке SELECT аналогичен вызову функции PREDICT с параметрами по умолчанию.

2.5.8 Создание копии модели - оператор SELECT INTO

 Рассмотрим создание копии существующей модели интеллектуального анализа данных. Для этого используется синтаксис:

SELECT INTO <new model>

USING <algorithm> [(<parameter list>)] [WITH DRILLTHROUGH[,] [FILTER(<expression>)]]

FROM <existingmodel>  

где

Таблица 11

Значения приведенных атрибутов

Атрибут

Описание

newmodel

имя для новой создаваемой модели;

algorithm

название используемого новой моделью алгоритма интеллектуального анализа данных;

parameterlist

cписок через запятую параметров алгоритма;

expression

выражение, определяющее фильтр для значений, попадающих в новую модель;

existingmodel

имя существующей модели для копирования.

Если существующая модель является обученной, новая модель автоматически обрабатывается при выполнении этой инструкции. В противном случае новая модель оставляется необработанной.


2.6 Анализ результатов главы 2

В данной главе описываются языковые средства, с помощью которых будут реализованы методы и алгоритмы, указанные в первой главе. Для оперативного анализа данных (OLAP) используется язык MDX, а для интеллектуального анализа данных (Data Mining) – DMX. Оба языка SQL-подобные, но отличия от стандартного языка для реляционных таблиц присутствуют.

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

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

В практической части будет использован образец информационных баз компании Microsoft, который описывает торговую компанию Adventure Works Cycles. Это производственная компания, производящая и реализующая металлические и композитные велосипеды для рынков Северной Америки, Европы и Азии.  (учебный набор данных, характерна такая структура для торговых компаний)


3. Использование Microsoft SQL Server для аналитической обработки данных 

3.1 Постановка задача для экспериментальной части работы

Цель экспериментальной части работы – показать возможные применение технологий бизнес-аналитики на предприятии.

Решаемые задачи:

1. Формирование источника данных, представление источника данных, в проекте служб Analysis Services, спроектировать измерения, куб, создать структуры и модели интеллектуального анализа данных, провести развертывание проекта и обучение моделей.

2. Создание на основе сформированных структур и моделей:

а) классификации клиентов вымышленной компании Adventure Works на основе оценки их доходов – высоко прибыльные клиенты или нет;

б) кластеризации клиентов;

в) анализа точности предсказания

г) предсказания по продажам определенного товара в заданном регионе;

3.2 Описание используемой базы данных 

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

Для управления кубами OLAP и данными интеллектуального анализа и работы с ними используется среда SQL Server Management Studio. Для создания новых структур используется среда Business Intelligence Development Studio.

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

Конкретно для моей задачи был установлен Microsoft SQL Server 2008 редакции Enterprise и учебная база данных AdventureWorksDW2008.

Рис. 25. Проверка конфигурации операционной системы на предмет возможности установки SQL Server

Формировать и проектировать источник данных, представление источника данных, измерения, структуры и модели будем в среде BI Dev Studio.

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

Исходным источником данных, который был создан, является Adventure Works DW.ds, который указывает на реляционную базу AdventureWorksDW.

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

В реляционной базе данных AdventureWorksDW есть представление dbo.vTargetMail, которое позволяет получить информацию о клиенте (идентификаторы, имя, фамилию, регион и т.д.) и о том, купил он велосипед или нет. А также есть представление dbo.vDMPrep, которое описывает категорию и модель продукта, и клиента, который его купил (регион, возраст, доход и т.д.).

Если в исходной БД открыть в конструкторе представление vTargetMail, то получим следующий код на языке SQL:

SELECT     c.[CustomerKey], c.[GeographyKey], c.[CustomerAlternateKey], c.[Title],  c.[FirstName], c.[MiddleName], c.[LastName], c.[NameStyle], c.[BirthDate], c.[MaritalStatus], c.[Suffix], c.[Gender], c.[EmailAddress], c.[YearlyIncome], c.[TotalChildren], c.[NumberChildrenAtHome], c.[EnglishEducation], c.[SpanishEducation], c.[FrenchEducation], c.[EnglishOccupation], c.[SpanishOccupation], c.[FrenchOccupation], c.[HouseOwnerFlag], c.[NumberCarsOwned], c.[AddressLine1], c.[AddressLine2], c.[Phone], c.[DateFirstPurchase], c.[CommuteDistance], x.[Region], x.[Age],    CASE x.[Bikes]    WHEN 0    THEN 0     ELSE 1

END AS [BikeBuyer]

FROM [dbo].[DimCustomer] c INNER JOIN (

SELECT

[CustomerKey],[Region],[Age],Sum(CASE [EnglishProductCategoryName]

WHEN    'Bikes' THEN 1  ELSE 0  END) AS [Bikes]

FROM     [dbo].[vDMPrep]

GROUP BY    [CustomerKey],[Region],[Age])     AS [x]    ON

c.[CustomerKey] = x.[CustomerKey]

Отсюда видно, что часть информации о клиенте берется из таблицы dbo.DimCustomer.

Аналогичным образом и для второго представления - dbo.vDMPrep, которое будет использоваться в дальнейшем для создания структур и моделей.

Следующим шагом является создание структур и моделей.

Для каждой поставленной задачи будет создаваться своя структура и свои модели. Например, для задачи кластеризации клиентов создана структура vTargetMail_structure2.dmm, которая использует единый для всех поставленных задач в практической части работы источник данных Adventure Works DW.ds и представление источника данных TargetMail_dsv2.dsv. Таким образом, имеется один источник данных, 4 представления источника данных, 4 структуры и построенные на их основе модели.

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

Существуют разные типы обработки объекта:

 – Полная обработка (объект полностью обрабатывается, обработка структуры и всех ее моделей);

– Обработка по умолчанию (сервер выполняет действия, необходимые для приведения данного объекта в обработанное состояние)

– Обработка структуры;

– Очистка структуры (кэш структуры будет очищен от исходных данных, но модели сохранятся в обработанном виде);

– Отмена обработки (переводит объект в необработанное состояние).

3.3 Задача кластеризации клиентов базы данных AdventureWorks   

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

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

В качестве входных атрибутов будем использовать:

  •  Age (Возраст)
  •  BikeBuyer (Покупка велосипеда)
  •  CommuteDistance (Расстояние ежедневных поездок)
  •  EnglishEducation (Образование)
  •  Gender (Пол)
  •  NumberCarOwned (Число имеющихся машин)
  •  NumberChildrenAtHome (Число детей дома)
  •   Region (Регион)
  •  YearlyIncome (Годовой доход)

В результате, получим модель – vTargetMail_Cl.

После обработки структуры и модели, можно увидеть выявленные характеристики кластеров. Кластер 5 объединяет людей, проживающих только в Европе, у которых, в среднем, 1 ребенок, и, в основном, нет машины. И именно в этом кластере почти у всех есть велосипеды.


Рис. 26. Просмотр характеристик выявленных кластеров


  1.  Задача классификации клиентов на основе оценки их доходов

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

Создадим структуру интеллектуального анализа и модель, использующую алгоритм Байеса. Назовем структуру v DMPrep_structure4.dmm, а модель – v DM Prep_NB2. Представление источника данных будем использовать DMPrep_dsv.dsv, а источник данных прежний – Adventure Works DW.ds.

Предсказываемый атрибут выберем – IncomeGroup (доход). В нашем случае доход у клиентов бывает высокий (High), средний (Moderate) и низкий (Low). Для того, чтобы определить является ли клиент высоко прибыльным, достаточно только два значения – High и Low.

Далее определяем какие атрибуты оказывают на него влияние – Age и Region.

Таким образом, самым прибыльным районом из всех является Северная Америка, люди возрастом от 44 до 52 лет. А самым бедным по прибыли является – Европа, возрастом младше 44 лет. Следовательно, если необходимо определить каким является определенный клиент (прибыльный для компании или нет), то достаточно определить его географический район, а для более точного результата – уточнить его возраст.


Рис. 27. Просмотр характеристики (IncomeGroup) доходов клиентов


  1.  Задача анализа точности предсказания 

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

Создадим одну структуру, а на ее базе 3 различных модели. Предсказываемый атрибут будет BikeBuyer.

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

На диаграмме роста (рис.29) верхняя линия соответсвует идеальной модели, линия под углом 45 градусов – случайный выбор. В данном случае, примерно 50% вариантов имеют значение BikeBuyer = 1, то есть клиент, купивший велосипед. Чем ближе результат к иедальной модели, тем точнее прогноз. Наилучший результат дает алгоритм деревьев решений.

Более подробно ознакомиться с содержимым модели позволяет средство просмотра Microsoft Generic Content Tree Viewer. В данном случае, для модели алгоритма Байеса, в случае отсутсвия у клмента машины – 1889 клиентов купили велосипед, приблизительно 63%.

Построим прогноз для отдельного варианта – купит ли человек, заполнивший анкету, велосипед.

Выберем одноэлементный запрос и зададим набор параметров, характеризующих нового клиента. Целью запроса будет  - узнать значение атрибута BikeBuyer. Чтобы узнать оценку вероятности для выполняемого прогноза, используем функцию PredicyProbability() с указанием столбца [vTargetMail_DT].[BikeBuyer] в качетсве аргумента.

Таким образом, предсказываемое значение и оценка вероятности покупки велосипеда клиентом будет примерно 0,7:

Рис.28. Результаты анализа точности предсказания

 


Рис.29. Диаграмма роста


Полученный запрос можно представить на языке DMX:

SELECT

 [vTargetMail_DT].[Bike Buyer],  PredictProbability([vTargetMail_DT].[Bike Buyer])

From

 [vTargetMail_DT]

NATURAL PREDICTION JOIN

(SELECT 39 AS [Age],  '0-1 Miles' AS [Commute Distance],  'Bachelors' AS [English Education], 'F' AS [Gender], 1 AS [Number Cars Owned], 2 AS [Number Children At Home],  'Europe' AS [Region],

2 AS [Total Children],  NULL AS [Yearly Income]) AS t

3.6 Задача предсказания по продажам определенного товара в заданном регионе

Пусть нам необходимо узнать сколько клиентов купило велосипед определенной модели Mountain-100 в определенном регионе, то есть в Европе.

Для этого необходимо создать новое представление источника данных,  так как на основе предыдущих этот анализ выполнить невозможно. После исследования имеющихся представлений и таблиц на сервере, можно сделать следующий вывод: для реализации поставленной задачи необходимо на базе источника данных  Adventure Works DW.ds создать представление источника данных, которое включает в себя представление dbo.vDMPrep и таблицы DimProduct, DimProductCategory, DimProductSubcategory.

Полученную структуру назовем v DM Prep_structure5.dmm. На базе этой струтуры будут созданы 3 модели, использующие алгорит Байеса, деревьев решений и нейронных сетей.

Предсказываемый атрибут будет Amount (количество).

Таком образом, получается, что именно эту модель велосипеда в Европе купила группа людей с низким доходом, младше 44 лет. За всю историю компании Adventure Works  велосипед Mountain-100 купило приблизительно 221 человек.

Рис. 30. Результаты предсказания


Рис.31 Просмотр характеристик предсказания


Заключение

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

Целью выпускной работы бакалавра было исследование математических моделей, методов и средств бизнес-аналитики СУБД SQL Server.

В ходе решения поставленной цели были решены следующие задачи:

  1.  Рассмотрены теоретические основы различных технологий в бизнес-аналитике на примере СУБД SQL Server.
  2.  Рассмотрены основные принципы используемых математических моделей.
  3.  Проведен анализ языковых средств, с помощью которых реализованы методы и алгоритмы для СУБД SQL Server.
  4.  Разработана практическая задача классификации клиентов по доходу.
  5.  Проведен анализ точности предсказания по продажам определенных товаров в заданных регионах.
  6.  Применена задача кластеризации клиентов и предложены рекомендации по применению полученных результатов.


Библиографический список

  1.  Барсегян А. А. Анализ данных и процессов: учеб. пособие / А.А. Барсегян, М.С. Куприянов, И.И. Холод, М.Д.Тесс, С.И. Елизаров. ‒ 3-е изд., перераб. и доп. ‒ СПб.: БХВ-Петербург, 2009. ‒ 512 с.
  2.  Полубояров В. В. Использование MS SQL Server Analysis Services 2008 для построения хранилищ данных. [Электронный ресурс] Режим доступа: https://www.facultyresourcecenter.com/curriculum/RU/8621--MS-SQL-Server-An.aspx?c1=ru-ru&c2=RU
  3.  Паклин Н.Б., Орешков В.И. Бизнес-аналитика: от данных к знаниям: учебное пособие. 2-е изд., испр. – СПб.: Питер, 2013. – 704 с.: ил.
  4.  Нестеров С.А. Базы данных. Интеллектуальный анализ данных: учеб.пособие / С.А.Нестеров – Спб.: Изд-во Политехн. ун-та, 2011. – 272с.
  5.  Семченков С.Ю. Формальное представление структуры систем аналитической обработки данных, основанных на OLAP-технологии. [Электронный ресурс] Режим доступа: http://www.unn.ru/pages/issues/vestnik/99999999_West_2010_6/30.pdf
  6.  Миронов В.В., Макарова Е.С. Агрегация показателей в OLAP-кубе при сведении по зависимым измерениям. [Электронный ресурс] Режим доступа: http://journal.ugatu.ac.ru/index.php/vestnik/article/view/85/95
  7.   Олифер В., Олифер Н. Введение в BackOffice 2.5. [Электронный ресурс] Режим доступа: http://citforum.ru/ofis/backoffice/index.shtml
  8.  Анализ современной технологии реализации баз данных. Языки и стандарты. [Электронный ресурс] Режим доступа: http://www.unn.ru/pages/e-library/publisher_db/files/43/8.pdf
  9.  Торбен Бэч, Кристиан Йенсен. Технология многомерных баз данных. [Электронный ресурс] Режим доступа: http://www.olap.ru/basic/multi_dim_DWH.asp
  10.  Планирование и архитектура служб Analysis Services. [Электронный ресурс] Режим доступа: http://technet.microsoft.com/ru-ru/library/bb510500(v=sql.100)
  11.  Алексей Федоров, Наталия Елманова. Введение в OLAP, часть 8. Обзор MDX. [Электронный ресурс] Режим доступа: http://www.olap.ru/basic/olap_intro8.asp
  12.   Майкл Гандерлой, Джозеф Джорден, Дейвид Чанц. SQL Server 2005 Analysis Services и MDX для профессионалов. [Электронный ресурс] Режим доступа: http://www.dialektika.com/PDF/978-5-8459-1316-6/part.pdf
  13.  Алгоритмы интеллектуального анализа данных (службы Analysis services). [Электронный ресурс] Режим доступа: http://msdn.microsoft.com/ru-ru/library/ms175312.aspx
  14.   Соловьев С.В., Цой Р.И., Гринкруг Л.С. Технология разработки прикладного программного обеспечения. [Электронный ресурс] Режим доступа: http://www.rae.ru/monographs/141-4638 


Приложение 1

Бизнес-аналитика - чаще всего подразумевают программное обеспечение, созданное для помощи менеджеру в анализе информации о своей компании и её окружении. Существует несколько вариантов понимания этого термина:

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

Аналитик – специалист в области анализа и моделирования. Он владеет разными инструментальными и программными средствами анализа данных. В его обязанности входят функции систематизации данных, опроса мнений экспертов, координации действий всех участников проекта по анализу данных.

OLAP (Online Analytical Processing) – технология оперативной аналитической обработки данных, использующая методы и средства для сбора, хранения и анализа многомерных данных в целях поддержки процессов принятия решений.

Data Mining – это процесс выделения, исследования и моделирования больших объемов данных для обнаружения неизвестных до этого структур (patterns) с целью достижения преимуществ в бизнесе (определение SAS Institute).

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

Система управления базами данных (СУБД) — это система программного обеспечения, позволяющая обрабатывать обращения к базе данных, поступающие от прикладных программ конечных пользователей.

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

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

Реляционная база данных (relational database) — совокупность отношений, содержащих всю информацию, которая должна храниться в базе. Физически это выражается в том, что информация хранится в виде двумерных таблиц, связанных с помощью ключевых полей.

 Гиперкуб – это умозрительная многомерная конструкция в многомерном пространстве, образованном плоскостями данных, которые важны для деятельности предприятия. Многомерная конструкция, предназначенная для хранения данных Каждая ячейка (cell) определена отдельным элементом из каждого измерения (dimension).

Рис. 25. Гиперкуб данных

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

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

Рис. 26 – измерения и факты в многомерном кубе

Оперативная обработка транзакций (On-Line Transaction Processing) – включает ввод, структурированное хранение и обработку оперативной информации (операций, документов) в режиме реального времени. 

Рис.27. OLTP-система

ОLAP-клиент – приложение для аналитической обработки данных, сформированных в OLAP-куб. Обычно обладает мощными аналитическими возможностями и удобным интерфейсом для анализа.

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

Структурированный язык запросов (Structured Query Language) – международный стандартный язык запросов для определения доступа к реляционным базам данных.

MDX – это SQL-подобный язык, предназначенный для создания запросов к многомерным данным, доступ к которым осуществляется через OLE DB for OLAP API, и для работы в OLAP Services.

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

Зависимая переменная – параметр, значение которого рассматривается как зависящее от других параметров (независимых переменных).

Структура интеллектуального анализа данных – совокупность исходных данных и описания способов их обработки.

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

Алгоритм интеллектуального анализа данных – механизм, создающий модель интеллектуального анализа данных.




1. тематический факультет МГУ им
2. «Разработка медиа-плана»
3. Весь объем выпуска 2 Объем выпуска готовой продукции 3 Товары и услуги 4
4. Статья Стратегия рекламной кампании
5. массовое сознание получило широкое хождение в газетной и журнальной публицистике трудах специалистов в о
6. тема и организации подготовки населения России в области защиты от ЧС
7. і Історія етногеографічних досліджень в Україні
8. это политическое учреждение созданное для участия в осуществлении функций исполнительной ветви государст
9. Учет и контроль денежных средств на расчетном счете
10. Внутренние болезни
11. Ранние греческие философы 1
12. The history of grmmticl study of the English lnguge
13. тематики Математическое моделирование и оптимизация в химической технологии.html
14. на тему- ldquo;Административноправовой статус иностранных лиц и лиц без гражд
15. Neptunin objects TNOs strongly suggesting the presence of hitherto unknown plnet in the outskirts of the solr system
16. Статья 1. Государственная служба в Украине это профессиональная деятельность лиц которые занимают до
17. Тема- Игра Zombie dy Выполнила- студентка гр
18. Интеллигенция и её жизнь в обществе
19. Реферат- Стратегия в отношении покупателей и поставщиков
20. Статья 1 Отношения регулируемые гражданским законодательством 1