Data Mining в Microsoft SQL Server 2005 презентация

Содержание

Почему мы сегодня говорим о технологии Data Mining? За последние два десятилетия реляционные БД на предприятиях накопили грандиозные объемы данных в самых различных областях и приложениях ERP, CRM, Inventory, финансы, ...

Слайд 1Data Mining в Microsoft SQL Server 2005
Алексей Шуленин


Consulting Services
XI ежегодная техническая

конференция «Корпоративные базы данных-2006»

Слайд 2Почему мы сегодня говорим о технологии Data Mining?
За последние два десятилетия

реляционные БД на предприятиях накопили грандиозные объемы данных в самых различных областях и приложениях
ERP, CRM, Inventory, финансы, ...
Просто журналы посещений, наконец
Для чего реально использовались эти данные?
Выпустили пару раз отчетность на их основе, потом сагрегировали, заархивировали и забыли?
Лежат мертвым грузом вместо того, чтобы работать и приносить прибыль
Data Mining – средство их «оживить» и заставить работать

Имеет огромное теоретическое и практическое значение
= Лично мне это представляется интересным
«Инструкция для читателя научных статей» // «Физики шутят», М., Мир, 1968


Слайд 3Введение
Что такое Data Mining?
В литературе переводится по-разному
Добыча данных (калька)
Интеллектуальный анализ данных

(а бывает неинтеллектуальный)
Искусственный интеллект (перевод в стиле школы времен АСУ)
Поиск закономерностей
...
Независимо от перевода смысл одинаков (в большинстве случаев):
Это средство превратить данные в знания
Мало прока от строки в таблице, говорящей, что в день A клиент B приобрел товар C в магазине D на сумму ... в кол-ве ... и т.д.
Однако просмотрев миллионы подобных строк можно заметить, например:
что товар С в магазине D расходится лучше, чем в других торговых точках,
что клиент B проявляет покупательскую активность в дни А
что товар C1 продается в основном с товаром С
...
Эти знания уже можно непосредственно использовать в бизнесе

Хорошо известно, что...
= Я не удосужился найти работу, в которой об этом было сказано впервые
Там же


Слайд 4Введение
Данные и Знания
Данные – реактивный характер, т.е. отчет о состоявшемся событии
Знания

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

Слайд 5Три принципа в основе DM
Иными словами, Data Mining – это анализ

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

Исследование данных

Отыскание образцов

Предсказание результатов

На этот счет существует единодушное мнение
= Я знаю еще пару ребят, которые придерживаются того же
Там же


Слайд 6Классификация
Разбить случаи на предопределенные классы (напр., хорошо, плохо, ...)
Бизнес-задачи: анализ кредитных

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

Типовые задачи Data Mining


Слайд 7Кластеризация, или сегментирование
Определить естественные группы случаев, базируясь на множестве атрибутов. Случаи

внутри группы имеют схожие значения атрибутов
Бизнес-задачи: профилирование клиентов
Ассоциация
Подобно кластеризации, определяет наиболее популярные наборы значений плюс устанавливает ассоциативные правила: например, если клиент взял пепси и чипсы, то с вероятностью 80% он выберет еще сок
Бизнес-задачи: анализ рыночной корзины, кросс-селлинг

Типовые задачи Data Mining


Слайд 8Прогноз
Имеется в виду во времени, т.е. Forecast, а не абы какое

Prediction
Бизнес-задачи: какой будет курс доллара (акций Microsoft температура, влажность, ...) на завтра (послезавтра, через неделю, ...)
Алгоритмы: анализ временного ряда
Анализ отклонений
В известном смысле задача, обратная вышеперечисленным – требуется отыскать «незакономерность», т.е. отклонение от ранее наблюдавшегося поведения
Бизнес-задачи: выявление мошенничеств с кредитными карточками, определение вторжения в сеть
Алгоритмы: в настоящее время не существует устоявшихся методик, остается областью активных исследований. Основная проблема: как отличить такие случаи от помех и не отфильтровать вместе с водой ребенка

Типовые задачи Data Mining


Слайд 9Обучаемые и необучаемые задачи
Обучаемым (контролируемым, supervised) называется алгоритм, перед нормальной которого

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

Слайд 10Жизненный цикл проекта Data Mining
Сбор данных
Определение области, представляющей интерес с точки

зрения Data Mining, и выделение ее в корпоративном хранилище (или многомерной витрине)
Является ли она достаточной или какие-то данные необходимо дособрать
Определение представительной выборки
Как правило, не имеет смысла обучать модель, натравливая ее на весь набор данных, если на миллиарде записей результаты будут такие же, как и на 50 тыс.
Только лишнее время займет
См. SELECT SalesOrderID, SalesOrderDetailID, OrderQty, ProductID FROM Sales.SalesOrderDetail TABLESAMPLE (1000 ROWS) или PERCENT в T-SQL и Row Sampling Transformation в SSIS
Очистка и трансформация
Преобразование типов, например, bool в int
Букетирование, например, (непрерывный) доход в диапазоны
Группировка, например, ОКОНХ слишком детальный, требуется укрупнить некоторые отрасли в одну
Агрегирование, например, CDR регистрируется с точностью до секунды, для наших задач такая точность не требуется, можно объединить длительности звонков по одному абоненту по времени суток, когда они совершались
Обработка пропущенных значений: отбрасываем, кидаем на Unknown, заменяем средней температурой по больнице, ...

Слайд 11Жизненный цикл проекта Data Mining
Что делать с «выбивающимися» записями, т.н. outliers?
Отбросить

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

Слайд 12Жизненный цикл проекта Data Mining
Оценка модели
Насколько адекватно она соответствует реальности
Практика –

критерий истины
Предсказываем с ее помощью величину и сравниваем с действительностью
Очевидно, речь идет о «свежих» случаях; нет смысла проверять модель на данных, которые уже есть в системе, потому что на них она натаскивалась
Выбросить тавтологии и очевидности
Например, выявлена ассоциация, что если имя = «Петя», то пол = «М»
Закономерность может быть давно известна специалистам в данной предметной области
«Подкрутить» параметры настройки модели
Циклический процесс: обычно требуется несколько итераций, чтобы получить пригодную модель
Отчетность
Построение адекватной модели не есть самоцель; большинство инструментов Data Mining снабжены средствами текстовой или графической отчетности
Отчетность по выявленным тенденциям
Отчетность предсказательного и прогнозного характера

Слайд 13Жизненный цикл проекта Data Mining
Интеграция в приложение
Отчетность для руководства может рассматриваться

как вид обратной связи, но ее скорость – это дрейф континентов
Реакция должна быть мгновенной, чтобы блокировать украденную карту, перекрыть «левого» абонента или предложить клиенту товар из списка сопутствующих
В идеале модуль Data Mining должен быть встроен в систему и автономно принимать решение о компенсирующем воздействии
Цикл замыкается, точнее, спираль уходит на новый виток
Административно-программная поддержка
В быстроменяющемся бизнесе смена образцов происходит довольно часто
Например, на Амазоне каждый день появляются сотни новых названий
В идеале процесс перестройки версий моделей и настройки их параметров должен быть автоматизирован
Политики безопасности
Несанкционированный доступ к модели как правило имеет более неприятные последствия, чем хищение части данных
Утечка DM модели к конкурентам демонстрирует вектор ваших интересов, подносит на блюдце готовые результаты исследований в этом направлении и может привести к реверс-инжинирингу ваших алгоритмов поиска закономерностей, каждый из которых сам по себе может представлять немалую интеллектуальную ценность

Слайд 14Математический аппарат Data Mining
Обычно у непосвященных Data Mining в составе SQL

Server вызывает ощущение «черного ящика», который неизвестно как работает, непонятно что предсказывает, и вообще сомнительно, с какой стати верить его прогнозам
Чтобы развеять эти сомнения, предпримем небольшой технический экскурс и посмотрим, как это выглядит в теории и как реализовано в SQL Server
Мы увидим, что никакого шаманства здесь нет, есть стандартные алгоритмы математики и статистики, открытые в разное время и отшлифовывавшиеся человечеством начиная с середины XVII в. и до наших дней
Наивный Байес
Деревья решений
ВременнЫе ряды
Ассоциативные правила
Последовательности и кластеризация
Нейронные сети
Нечеткий поиск текста
В конце концов мы же не сомневаемся в способности СУБД обеспечивать транзакционность, строить индексы и пр.

Слайд 15Наивный Байесовский метод
В основе лежит известная со школы формула Байеса вычисления

условной вероятности
Если есть гипотеза H и свидетельство справедливости этой гипотезы E, то P(Н|Е) = P(Н)P(Е|Н) / P(Е) (1)
Пример
Известно, что в конгрессе США ответы демократов и республиканцев по основным политическим вопросам распределились как











0.2 = 41 / (41 + 166); 0.8 = 166 / (41 + 166)
0.49 = 211 / (211 + 223)


Слайд 16Наивный Байесовский метод
И пусть известно, что некий товарищ проголосовал как





P(Д) =

0.2 * 0.57 * 0.94 * 0.89 * 0.49 = 0.0467, Р(Р) = 0.98* 0.03 * 0.83 * 0.995 * 0.51 = 0.0124
Окончательно нормируя по формуле Байеса имеем Р(Д) = 0.0467 / (0.0467 + 0.0124) = 0.79, Р(Р) = 0.0124 / (0.0467 + 0.0124) = 0.21
Наивность состоит в том, что все атрибуты (мнения по вопросам) считаются независимыми
Это спорное утверждение, т.к. сами вопросы по своей формулировке могут коррелировать, однако данное предположение позволяет нам перемножить вероятности
Где еще грабли?
Предположим, в выборке не встретилось демократов, проголосовавших «Да» по первому вопросу
Тогда Р(Д) = 0 * ... = 0, и товарищ никогда не будет отнесен к демократам
Чтобы этого избежать, в таблице везде должны быть ненулевые значения
Либо расширять выборку, либо вводить априорные вероятности в нулевых ячейках

Слайд 17Деревья решений
Краткая эволюция метода
Бинарные и кустистые деревья
Контроль роста, обрезание при наступлении

условия, динамический рост и сокращение при просмотре
Алгоритм ID3, предложил в 1986 г. Росс Куинлан (Quinlan), Сиднейский ун-т
Впоследствии переработан в С4.5, к-й способен обрабатывать численные атрибуты, пропущенные значения, отфильтровывать шум
Некоторые деревья позволяют решать регрессионные задачи
Classification and Regression Tree (CART), предложил в 1984 г. проф. Лео Бриман (Brieman), каф. статистики ун-та Беркли (Калифорния)
В SQL Server 2005 исп-ся гибридный алгоритм деревьев, позволяющий решать задачи классификации, регрессии и ассоциации
Разработка Microsoft Research

Слайд 18Деревья решений
Пример: опрос выпускников






Например, всего в опросе имелось 400 выпускников с

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

Слайд 19На каждом графике сравниваем столбцы одного цвета
Например, пол – это малозначимый

критерий: М он или Ж, продолжать образование собирается одинаковое кол-во народа

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


Слайд 20Деревья решений
Примерно так же поступает SQL Server
Только вместо сравнения столбиков

по высоте, он считает энтропию E(p1,...,pn) = Σ-pilog2pi











Минимальной энтропией, как мы видим, обладает атрибут «Влияние родителей», значит, по нему будет первое ветвление и т.д.
За рамками доклада остаются атрибуты со многими исходами (почтовый индекс, IP-адрес, ...), борьба с овертренингом дерева, регрессия и вообще практически все

Слайд 21Анализ временного ряда
Есть функция от времени, требуется спрогнозировать ее значение на

следующем интервале
Используется алгоритм, основанный на авторегрессии и деревьях решений
ART – AutoRegression Tree
Авторегрессия работает с дискретным временем и ставит задачу прогнозирования Xt = f(Xt-1, …, Xt-n) + ε(t), где ε – шум, n – порядок регрессии
Так выглядит процесс преобразования

Слайд 22Анализ временного ряда
В случае линейной авторегрессии уравнение приобретает вид X(t) =

a1X(t-1) + a2X(t-2) + ... + anX(t-n) + ε(t)
Для нахождения коэффициентов авторегрессии используется метод Юля – Уолкера (Yule – Walker, 1927 г.) минимизации среднеквадратичного отклонения между модельным и наблюдаемым временным рядом
Алгоритм был усовершенствован и распространен на область деревьев решений в 2001 г. сотрудниками Microsoft Research
Chris Meek, David Maxwell Chickering, David Heckerman и др.
См., напр., ftp://ftp.research.microsoft.com/pub/tr/TR-2004-86.pdf

Корень

Хлеб (t-2) <= 5000

Хлеб (t-2) > 5000

Молоко (t-1) <= 6000

Молоко (t-1) > 6000

Молоко = 3.02 + 0.72*Хлеб(t-1) + 0.31*Молоко(t-1)


Слайд 23Кластеризация
Нахождение «центров конденсации» внутри данных
Можно еще определить как отыскание или введение

переменной, классифицирующей данные
Например, в аэропорту мы видим сгустки пассажиров: одни одеты в майки, шорты и бейсболки (Кластер 1), другие – в валенки, шубы и ушанки (Кластер 2)
Случай «валенки + шорты», равно как и «майка + ушанка» и пр., является нетипичным и встречается редко
Такой переменной будет, что одни прилетели с севера, другие – с юга
Алгоритм работы кластерного алгоритма удобно представлять себе на примере n-мерного пространства, в которое насыпаны точки
Оси – это атрибуты, точки – это случаи
Исходим из того, что в начальный момент уже есть какие-то кластеры
Вопрос о том, сколько их и как назначаются их центры, выходит за рамки
Достаточно чувствительный и сложный вопрос, потому что от него зависит сходимость модели
Каждая точка, очевидно, будет относиться к какому-нибудь кластеру
После этого пересчитываем центры кластеров как среднее всех точек, которые в него попали
Повторяем переприсвоение точек, пока они не перестанут перемещаться между кластерами (алгоритм сошелся)
Или не придем к выводу, что модель больше не улучшится от дальнейших итераций

Слайд 24Кластеризация


Слайд 25Кластеризация
Два принципа в основе алгоритма
К-среднее, или жесткая кластеризация
Центры кластеров пересчитываются

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

Слайд 26Sequence Clustering
Выше мы рассматривали группировку товаров в сгустки по степени похожести,

но нас не волновал порядок их приобретения
Существуют задачи, в которых порядок тоже важен
Например, нас интересует не только на какие страницы заходил посетитель нашего сайта (т.е. какие кластеры страниц здесь вырисовываются), но и в какой последовательности он их обходил
Т.н. clickstream analysis
Алгоритм Sequence Clustering в составе Microsoft SQL Server базируется на марковских цепях и теории конечных автоматов
А.А.Марков, 1856-1922, ординарный член Санкт-Петербургской Академии Наук, известный русский математик, автор более 70 работ по теории чисел, теории приближения функций, теории дифференциальных уравнений, теории вероятностей

Слайд 27Sequence Clustering
0
A
C
G
T
1
0.35
0.15
0.15
0.25
0.10
P(xi = G | xi-1=A) = 0.15
P(xi = C |

xi-1=A) = 0.15
P(xi = T | xi-1=A) = 0.25
P(xi = A | xi-1=A) = 0.35
P(xi = End | xi-1=A) = 0.10

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

За один момент времени – один шаг перехода


Слайд 28Sequence Clustering
Цепь имеет n-й порядок, если ее матрица перехода состояний определяется

историей состояний на n моментов времени назад
Вероятность последовательности последовательных состояний длины L: Р(хL, xL-1, xL-2, …, x1) = Р(хL | xL-1, xL-2, …, x1) * Р(xL-1 | xL-2, …, x1) * … * Р(x1)
Обычные марковские цепи 1-го порядка
Цепь n-го порядка из k состояний сводится к цепи 1-го порядка из kn состояний
Например, цепь 2-го порядка на пред.слайде сводится к цепи 1-го порядка из состояний AA, AC, AG, AT, CA, CC, CG,CT, GA, GC, GG, GT, TA, TC, TG, TT = 42 = 16
Для марковской цепи 1-го порядка Р(хL, xL-1, xL-2, …, x1) = Р(хL | xL-1) * Р(xL-1 | xL-2) * ... * Р(х2 | x1) * Р(x1) (2)
Скрытые марковские цепи
Последовательность состояний перехода неизвестна
Характеризуется 5-ю атрибутами: набором состояний, выходным алфавитом, вероятностями начальных состояний, вероятностями перехода между состояниями и выходными вероятностями каждого конкретного состояния
Применяются в куче мест от распознавания речи до расшифровки генома

Слайд 29Sequence Clustering
В текущей версии SQL Server используются наблюдаемые марковские цепи
Каждый кластер

соответствует своей цепи со своей матрицей перехода
Кластерный анализ для скалярных атрибутов выполняется в соответствии с ЕМ-алгоритмом:
Инициализировать параметры модели
Отнести испытание (case) к каждому из K кластеров с той или иной вероятностью (шаг Е – expectation)
Пересчитать параметры модели, основываясь на взвешенной принадлежности каждого испытания (шаг М – максимизация)
Если наступило схождение, закончить, иначе вернуться к шагу 2
Последовательность состояний перехода – векторный атрибут
Хранится как вложенная таблица
Вероятность вхождения последовательности в кластер Р(х | C) считается по марковскому закону (2), а предсказание кластера делается по формуле Байеса (1), где Р(С) – предельная вероятность кластера С - также известна (например, его вес)

Слайд 30Нейронные сети
Как известно, ведут свое происхождение c 1943 г.
МакКаллоком и

Питтсом (Warren McCulloch, Walter Pitts) в рамках работ по изучению биологической нервной сети была построена модель линейного порогового нейрона
Хебб (Donald Hebb) в 1949 г. в своей работе «The Organization of Behavior» сформулировал принцип обучаемости (hebbian re-inforcement learning systems)
The weight between two neurons will increase if the two neurons activate simultaneously; it is reduced if they activate separately
Иными словами, эффективность переменного синапса между двумя нейронами увеличивается в процессе повторяющейся активации одного нейрона другим через этот синапс
В 1958 г. Розенблатт (Frank Rosenblatt, «Principles of Neurodynamics») рассматривает перцептрон, первую NN
До этого были введены линейный ассоциатор и адаптивная машина Марвина Мински (1951 г.)
1982 г. - разработка Хопфилдом (John Hopfield), Калифорнийский Технологический ин-т, ИНС с полностью связанной структурой (backpropagation) и оригинальным алгоритмом настройки весов

Слайд 31Нейронные сети
Нейронная сеть состоит из узлов (нейронов) и соединяющих их ребер

(синапсов)
Узлы бывают входные, скрытые, выходные
Каждое ребро связывает узлы с определенным весом
Направление ребра обозначает поток данных во время предсказания
Входные узлы формируют первый слой сети
В большинстве сетей каждый входящий узел представляет один какой-нибудь атрибут (возраст, пол, доход, ...)
Первоначальные значения входных атрибутов нормируются к одному интервалу, напр., (-1; 1)
Скрытые узлы образуют промежуточный слой
В слое комбинируется весь вход с весами соответствующих ребер, производятся некоторые вычисления и результат подается на следующий слой
Скрытый слой позволяет сети узнавать нелинейные отношения
Выходной слой
Как правило, узел представляет предсказываемый атрибут
После обработки в выходном слое результат приводится к своей первоначальной шкале
Сеть Microsoft Neural Network является feedforward = прямого распространения, нерекуррентная
В других сетях, следуя направлениям ребер, можно снова попасть на тот же узел

Слайд 32Как устроен нейрон
Нейрон – единица обработки
Σ – комбинация входов
Возможны разные варианты:

среднее, max, and, or
SQL Server использует наиболее популярный метод – взвешенная сумма
Которая затем передается ф-ции активации
f – ф-ция активации
Обычно нелинейна, чувствительна на средний диапазон входов
Эта ее особенность улучшает обучаемость сети
В SQL Server в кач-ве ф-ции активации используется логистическая ф-ция, или сигмоид, 1/(1+e-ах) для выходного слоя и гиперболический тангенс (eах – e-ах) / (eах + e-ах) для скрытого



Слайд 33Как работает нейронная сеть
После того, как топология сети определена, кол-во скрытых

узлов задано, процесс обучения означает нахождение лучшего мн-ва весов
На начальном этапе веса расставляются случайно из диапазона (-1; 1)
Во время каждой обучающей итерации сеть воспринимает вход, генерирует предсказания в выходном слое, вычисляет ошибку и корректирует веса, используя back-, или retro-propagation (алгоритм обратного распространения)
Функция ошибки
Мера расхождения между выходом с нейрона и истинным значением, известным в тренировочных данных
Напр., двоичная пороговая ф-ция: если модуль разницы <= 0.5, то 0, если больше, то 1
SQL Server использует следующие функции ошибок*
Для выходного слоя Erri = Oi(1 - Oi)(Ti - Oi), где Oi – выход с i-го нейрона выходного слоя, Ti – истинное значение
Для скрытого слоя Erri = Oi(1 - Oi) Σj Errj wij, где Oi – выход с i-го нейрона скрытого слоя, Errj – ошибка j-го нейрона в выходном слое, wij – вес связи между i-м и j-м нейронами

* В действительности они немного различаются для дискретных и непрерывных значений


Слайд 34Корректировка ошибки (обучение)
1
2
3
4
5
6
W24(0.2)
Возраст
Пол
Доход
Кредитный риск
W46(-0.3)
W35(-0.3)
W56(-0.1)
W15(0.1)
W14(0.2)
W25(-0.4)
W34(0.2)
Рассмотрим ошибку как ф-цию от весов Wij
По сути,

нам требуется найти глобальный минимум данной поверхности ошибок
Поверхность может иметь очень сложную форму (с локальными минимумами и пр.)
В качестве ф-ции корректировки весов SQL Server использует метод градиентного спуска*
wij = wij + l * Errj * Oi, где l – некая константа из (-1; 1) под названием темп обучения (learning rate), которая имеет высокое значение на начальных итерациях для повышения скорости и снижается к концу обучения для повышения точности

* В [1] упоминается также метод сопряженного градиента (conjugate gradient), однако технических деталей реализации в нынешнем алгоритме Microsoft Neural Network найти не удалось


Слайд 35Подключение собственного алгоритма
Должен имплементировать два основных интерфейса
IDMAlgorithmMetadata – метаданные (фабрика)
IDMAlgorithm –

собственно, алгоритм (по экземпляру на объект)
Есть еще масса вспомогательных
IDMPersist, IDMPushCaseSet, IDMCaseProcessor, ...
Принимает данные в виде потока пар «атрибут-значение»
Таким образом абстрагируясь от источника
Пример на тему написания и подключения нового DM-алгоритма
См. MSDN

Слайд 36Стандарты Data Mining
SQL/MM for DM
CWM for DM
JDM
OLE DB for DM
XMLA

for DM

PL/SQL

DMX

PMML

CRISP-DM


Слайд 37Стандарты Data Mining
Ситуация напоминает рынок СУБД четверть века назад до официального

принятия реляционной парадигмы и SQL
Единственными отраслевыми стандартами являются PMML и CRISP-DM
Predictive Model Markup Language
Определен Data Mining Group (dmg.org): SAS, SPSS, IBM, Microsoft, Oracle, ...
Представляет собой XML-формат хранения модели для наиболее распространенных алгоритмов
Не есть программный интерфейс для Data Mining, фокусируется на описании содержания модели: словарь данных, схема добычи, трансформация полей, статистика, ...
Crisp-DM
Продукт усилий SPSS (тогда ISL), NCR и DaimlerChrysler
Фактически это методология
Описывает жизненный цикл проекта Data Mining (последовательность фаз, составные задачи, что на входе и выходе каждой), не опускаясь до частных методик добычи

Слайд 38Стандарты Data Mining
Наибольшее распространение получили стандарты «большой тройки» производителей СУБД
Microsoft, Oracle,

IBM
Что не удивительно, если принимать в расчет объемы данных, инсталляции и существенные инвестирования в Data Mining
Естественно, “стандарты” каждого отличаются от других, хотя в большинстве обслуживают одни и те же нужды
ISO SQL/Multimedia (SQL MM) – потоковые многофрагментные расширения SQL на область полнотекста, геопространства, мультимедиа и пр.
См. доклад Сергея Кузнецова «Предвестники новых манифестов управления данными»
Секция по Data Mining была введена в этот стандарт по настоянию IBM
Концепция и синтаксис очень близки к DMX
Java Data Mining API (JSR-73) – Java-пакет, позволяющий Java-приложениям взаимодействовать с Data Mining-движком
Вдохновлялся и лоббировался Oracle
Программная модель до неприличия напоминает C# и AMO
OLE DB for Data Mining и XML/A
Стандарты, разрабатываемые и продвигаемые Microsoft при поддержке Hyperion, SAS, Angoss, KXEN, Megaputer

Слайд 39Расширение интерфейсов OLE DB на область Data Mining
24 мая 1999 г.
Пресс-релиз

«Microsoft Announces Vendor Initiative To Create Open Data Mining Specification»
Microsoft Corp. today announced a new initiative to extend OLE DB data access interfaces, providing software vendors and application developers with an open interface to more efficiently integrate data mining tools and applications.
A joint effort between the Microsoft® SQL Server™ development group and Microsoft Research, OLE DB for data mining exemplifies Microsoft's commitment to delivering leading-edge technology to the developer community
http://www.microsoft.com/presspass/press/1999/May99/Dataminingpr.mspx

Слайд 40Визуализация
.NET WinForm Controls в составе клиентской части SQL Server – Data

Viewers
Позволяют просматривать модель, ее характеристики, профили, дискриминацию, lift chart для оценки точности и пр.
Можно расширить этот набор, создав собственные элементы управления
Реализовав интерфейс IMiningModelViewerControl
Св-ва MiningModel и ConnectionString, метод LoadViewerData
По такому же принципу построены штатные DataViewers
Примеры также имеются в документации
Можно создать управляющие элементы с нуля
Вытащив все, что требуется, с сервера при помощи OLE DB for DM и отрисовав это под свой вкус и цвет
Аналогичная ситуация с элементами управления для Web

Слайд 41Визуализация


Слайд 42Визуализация (замечание)
Несмотря на то, что среди после установки клиента SQL Server

среди компонент .NET Framework появляются MiningModel, MiningStructure и пр., они не предназначены для визуализации
Используются в АМО для клиентского создания и управления моделями

Sub CreateModels(ByVal ms As MiningStructure)
Dim ClusterModel As MiningModel
Dim TreeModel As MiningModel
Dim mmc As MiningModelColumn

ClusterModel = ms.CreateMiningModel(True, _
"Premium Generation Clusters")
ClusterModel.Columns.Clear()
ClusterModel.Algorithm = "Microsoft_Clusters"
ClusterModel.AlgorithmParameters.Add("CLUSTER_COUNT", 0)
mmc = ClusterModel.Columns.Add("UserID")
mmc.SourceColumnID = "UserID"
mmc.Usage = "Key"


Слайд 43Визуализация (Web)
Примеры построения клиентских приложений


Слайд 44Визуализация
Кроме того, месяц назад вышел Community Pack for SQL Server 2005
http://www.microsoft.com/downloads/details.aspx?FamilyID=AE94BB12-C839-4B4F-A71B-412FB3A0500E&displaylang=en


Набор редистрибутируемых компонент

Слайд 45Визуализация
В его составе


Слайд 46Применимость Data Mining
Как и любой инструмент, требует навыков в своем применении
Факт

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

Слайд 47Список полезных ресурсов
MSDN и документация
http://msdn2.microsoft.com/en-us/library/ms174949(SQL.90).aspx
Technet
http://www.microsoft.com/technet/prodtechnol/sql/2005/intro2dm.mspx
SQL Server Data Mining Technical

Community
http://www.sqlserverdatamining.com/DMCommunity/
Оптимизация и настройка SQL Server
http://www.sql-server-performance.com/ec_data_mining.asp
Отечественные ресурсы
http://www.citforum.ru/
http://www.osp.ru/
http://olap.ru
http://www.gotdotnet.ru/
http://www.rsdn.ru/

Слайд 48Список литературы
«Data Mining with SQL Server 2005»
ZhaoHui Tang, Jamie MacLennan
Wiley

Publishing, Oct 2005, ISBN: 0471462616
Building Data Mining Solutions with OLE DB for DM and XML for Analysis
Zhaohui Tang, Jamie Maclennan, Peter Pyungchul Kim
http://www.sigmod.org/sigmod/record/issues/0506/p80-column-seligman.pdf
Unearth the New Data Mining Features of Analysis Services 2005
Jamie MacLennan
http://msdn.microsoft.com/msdnmag/issues/04/09/AnalysisServices2005/default.aspx
Detect Anomalies in Excel Spreadsheets. Use SQL Server 2005 Data Mining inside Excel.
Bogdan Crivat, Jamie MacLennan
http://msaccess.advisorguide.com/doc/14413
SQL Server 2005 Data Mining. Create a Web Cross-sell Application
Raman Iyer and Jesper Lind
http://www.aspnetpro.com/newsletterarticle/2004/10/asp200410ri_l/asp200410ri_l.asp
The Microsoft Data Warehouse Toolkit : With SQL Server 2005 and the Microsoft Business Intelligence Toolset
Joy Mundy, Warren Thornthwaite, Ralph Kimball
Wiley Publishing, Feb 2006, ISBN: 0471267155
«Applied Microsoft Analysis Services 2005 and Microsoft Business Intelligence»
Teo Lachev
Prologika Press, Nov 2005, ISBN: 0976635305

Автор благодарит Джона Смита за участие в экспериментах и Джона Брауна за ценное обсуждение
= Смит получил все результаты, а Браун объяснил, что они значат
«Инструкция для читателя научных статей» // «Физики шутят», М., Мир, 1968


Слайд 49Спасибо за внимание
Вопросы?
Эти результаты будут опубликованы позднее
= Либо будут,

либо нет
Там же

Обратная связь

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

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

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


Для правообладателей

Яндекс.Метрика