Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

SQLServer08_DM_Nesterov

.pdf
Скачиваний:
167
Добавлен:
07.02.2016
Размер:
16.46 Mб
Скачать

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

Выделяют два основных формата представления временных рядов – столбчатый и чередующийся (или смешанный, от англ. mixed) [1]. Пусть рассматриваемая предметная область – торговля велосипедами. И нужно представить данные продаж по месяцам двух моделей велосипедов, которые называются M200 и R200. В этом случае мы имеем два временных ряда. В таблице 2.3 они представлены в столбчатом формате, в таблице 2.4 – используется чередующийся.

Таблица 2.3

Представление временных рядов в столбчатом формате

 

Год и месяц

Количество M200

Количество R200

 

 

 

 

 

 

 

200904

100

50

 

 

 

 

 

 

 

200905

120

20

 

 

 

 

 

 

 

200906

110

60

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.4

Представление временных рядов в чередующемся формате

 

 

 

 

 

Год и месяц

Модель

Количество

 

 

 

 

 

 

 

200904

M200

100

 

 

 

 

 

 

 

200904

R200

50

 

 

 

 

 

 

 

200905

M200

120

 

 

 

 

 

 

 

200905

R200

20

 

 

 

 

 

 

 

200906

M200

110

 

 

 

 

 

 

 

200906

R200

60

 

 

 

 

 

 

 

 

 

 

 

 

 

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

31

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

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

Рис.2.6. Графики с историческими и прогнозируемыми значениями ряда

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

- алгоритм «дерево авторегрессии с перекрестным прогнозированием» (ARTxp), который оптимизирован для прогнозирования следующего значения в ряду; он появился в SQL Server 2005;

32

- алгоритм «интегрированные скользящие средние авторегрессии» (ARIMA), являющийся отраслевым стандартом в данной области; добавлен в SQL Server 2008, чтобы повысить точность долгосрочного прогнозирования.

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

Рис.2.6. Просмотр параметров модели

На рисунке 2.6 представлены параметры для одного из узлов прогнозирующей модели, основанной на алгоритме временных рядов. Из рисунка видно, что узел на самом деле содержит параметры для двух алгоритмов. Также у рассматриваемого временного ряда ‗R250 Europe: Quantity‘ (количество проданных в Европе велосипедов марки R250) обнаружена корреляция с другим рядом ‗R750 North America: Amount‘ (продажи в Северной Америке велосипедов марки R750).

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

33

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

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

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

xt=a1xt-1+a2xt-2+…+anxt-nt (2.3)

где εt – погрешность, которую надо минимизировать путем подбора коэффициентов a1-an, в чем и заключается обучение модели. Как видно из рисунка 2.6, наличие корреляции может учитываться путем включения в эту формулу членов из другого ряда. Периодичность учитывают, вводя в рассмотрение дополнительные члены последовательности. Например, для периодичности 12 это будет xt-12, xt-24 и т.д. А использование аналитическими службами SQL Server дерева авторегрессии позволяет менять формулу путем разбиения в точках нелинейности.

2.5.КЛАСТЕРИЗАЦИЯ

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

34

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

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

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

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

a) b) c)

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

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

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

35

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

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

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

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

Второй метод, реализованный в Microsoft Clustering, это макси-

мизация ожиданий (англ. Expectation-maximization, EM). Он относит-

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

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

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

36

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

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

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

2.6 АЛГОРИТМ ВЗАИМОСВЯЗЕЙ

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

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

37

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

Рис.2.8.Пример набора правил, формируемых алгоритмом Association Rules

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

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

2008 [1,2]. Алгоритм Apriori последовательно выделяет часто встречающиеся одно-, двух-, …, n-элементные наборы. На i-м этапе выделяются i-элементные наборы. Для этого сначала выполняется формирование наборов-кандидатов, после чего для них рассчитывается поддержка.

Поддержка (от англ. support) используется для измерения популярности набора элементов. Например, поддержка набора элементов {A,B} – общее количество транзакций, которые содержат как A, так и B. Чтобы сократить запись, здесь и далее указывается просто A и B, а не A=Existing, B=Existing, как на рис.2.8 (existing с англ. «присутству-

ет»).

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

ся достоверностью.

Probability (A=>B) = Probability (B|A) = Support(A,B)/Support(A) (2.3)

38

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

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

Importance({A,B})=Probability({A,B})/(Probability(A)*Probability(B))

(2.4)

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

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

Importance(A=>B)=log(Probability(B|A)/(Probability(B| not A)) (2.5)

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

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

2.7 КЛАСТЕРИЗАЦИЯ ПОСЛЕДОВАТЕЛЬНОСТЕЙ

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

39

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

Примеры применения подобных алгоритмов – анализ переходов по страницам web-сайтов, анализ событий, предшествовавших сбоям в работе информационной системы, и т.д.

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

Таблица 2.5

Пример формирования варианта для анализа обращений к сайту

Идентифика-

Располо-

Идентификатор

Тематика

тор пользова-

жение

последовательно-

 

теля

 

сти

 

 

 

 

 

1

Москва

1

Главная страница

 

 

 

 

 

 

2

Велосипеды

 

 

 

 

 

 

3

Запчасти

 

 

 

 

 

 

4

Велосипеды

 

 

 

 

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

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]