'

Data Mining в Microsoft SQL Server 2005

Понравилась презентация – покажи это...





Слайд 0

Data Mining в Microsoft SQL Server 2005 Алексей Шуленин Consulting Services XI ежегодная техническая конференция «Корпоративные базы данных-2006»


Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

Три принципа в основе DM Иными словами, Data Mining – это анализ данных с целью отыскания в них типовых образцов или стереотипных изменений, скрытых от нас по причине невозможности держать в голове такое количество данных и анализировать такое количество взаимосвязей между ними Исследование данных Отыскание образцов Предсказание результатов На этот счет существует единодушное мнение = Я знаю еще пару ребят, которые придерживаются того же Там же


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

Жизненный цикл проекта 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, заменяем средней температурой по больнице, ...


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

Наивный Байесовский метод В основе лежит известная со школы формула Байеса вычисления условной вероятности Если есть гипотеза H и свидетельство справедливости этой гипотезы E, то P(Н|Е) = P(Н)P(Е|Н) / P(Е) (1) Пример Известно, что в конгрессе США ответы демократов и республиканцев по основным политическим вопросам распределились как 0.2 = 41 / (41 + 166); 0.8 = 166 / (41 + 166) 0.49 = 211 / (211 + 223)


Слайд 15

Наивный Байесовский метод И пусть известно, что некий товарищ проголосовал как 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, и товарищ никогда не будет отнесен к демократам Чтобы этого избежать, в таблице везде должны быть ненулевые значения Либо расширять выборку, либо вводить априорные вероятности в нулевых ячейках


Слайд 16

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


Слайд 17

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


Слайд 18

На каждом графике сравниваем столбцы одного цвета Например, пол – это малозначимый критерий: М он или Ж, продолжать образование собирается одинаковое кол-во народа Деревья решений


Слайд 19

Деревья решений Примерно так же поступает SQL Server Только вместо сравнения столбиков по высоте, он считает энтропию E(p1,...,pn) = ?-pilog2pi Минимальной энтропией, как мы видим, обладает атрибут «Влияние родителей», значит, по нему будет первое ветвление и т.д. За рамками доклада остаются атрибуты со многими исходами (почтовый индекс, IP-адрес, ...), борьба с овертренингом дерева, регрессия и вообще практически все


Слайд 20

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


Слайд 21

Анализ временного ряда В случае линейной авторегрессии уравнение приобретает вид 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)


Слайд 22

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


Слайд 23

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


Слайд 24

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


Слайд 25

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


Слайд 26

Sequence 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 Матрица вероятностей перехода состояний Низкие вероятности более тусклые Обычно в модели хранятся вероятности выше определенного порога За один момент времени – один шаг перехода


Слайд 27

Sequence 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-ю атрибутами: набором состояний, выходным алфавитом, вероятностями начальных состояний, вероятностями перехода между состояниями и выходными вероятностями каждого конкретного состояния Применяются в куче мест от распознавания речи до расшифровки генома


Слайд 28

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


Слайд 29

Нейронные сети Как известно, ведут свое происхождение 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) и оригинальным алгоритмом настройки весов


Слайд 30

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


Слайд 31

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


Слайд 32

Как работает нейронная сеть После того, как топология сети определена, кол-во скрытых узлов задано, процесс обучения означает нахождение лучшего мн-ва весов На начальном этапе веса расставляются случайно из диапазона (-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-м нейронами * В действительности они немного различаются для дискретных и непрерывных значений


Слайд 33

Корректировка ошибки (обучение) 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 найти не удалось


Слайд 34

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


Слайд 35

Стандарты Data Mining SQL/MM for DM CWM for DM JDM OLE DB for DM XMLA for DM PL/SQL DMX PMML CRISP-DM


Слайд 36

Стандарты 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 (последовательность фаз, составные задачи, что на входе и выходе каждой), не опускаясь до частных методик добычи


Слайд 37

Стандарты 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


Слайд 38

Расширение интерфейсов 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


Слайд 39

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


Слайд 40

Визуализация


Слайд 41

Визуализация (замечание) Несмотря на то, что среди после установки клиента 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"


Слайд 42

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


Слайд 43

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


Слайд 44

Визуализация В его составе


Слайд 45

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


Слайд 46

Список полезных ресурсов 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/


Слайд 47

Список литературы «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


Слайд 48

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


×

HTML:





Ссылка: