ad19553fe50a859174b009fc106fc962.ppt
- Количество слайдов: 48
XI ежегодная техническая конференция «Корпоративные базы данных-2006» Data Mining в Microsoft SQL Server 2005 Алексей Шуленин Consulting Services
Почему мы сегодня говорим о технологии Data Mining? Имеет огромное теоретическое и практическое значение = Лично мне это представляется интересным «Инструкция для читателя научных статей» // «Физики шутят» , Мир, 1968 За последние два десятилетия реляционные БД на предприятиях накопили грандиозные объемы данных в самых различных областях и приложениях ERP, CRM, Inventory, финансы, . . . Просто журналы посещений, наконец Для чего реально использовались эти данные? Выпустили пару раз отчетность на их основе, потом сагрегировали, заархивировали и забыли? Лежат мертвым грузом вместо того, чтобы работать и приносить прибыль Data Mining – средство их «оживить» и заставить работать
Введение Хорошо известно, что. . . = Я не удосужился найти работу, в которой об этом было сказано впервые Там же Что такое Data Mining? В литературе переводится по-разному Добыча данных (калька) Интеллектуальный анализ данных (а бывает неинтеллектуальный) Искусственный интеллект (перевод в стиле школы времен АСУ) Поиск закономерностей. . . Независимо от перевода смысл одинаков (в большинстве случаев): Это средство превратить данные в знания Мало прока от строки в таблице, говорящей, что в день A клиент B приобрел товар C в магазине D на сумму. . . в кол-ве. . . и т. д. Однако просмотрев миллионы подобных строк можно заметить, например: что товар С в магазине D расходится лучше, чем в других торговых точках, что клиент B проявляет покупательскую активность в дни А что товар C 1 продается в основном с товаром С. . . Эти знания уже можно непосредственно использовать в бизнесе
Введение Данные и Знания Данные – реактивный характер, т. е. отчет о состоявшемся событии Знания – проактивный характер, т. е. заглядывание в будущее Дано: летит кирпич (мозг неявно оценивает его вес, скорость, направление, боковой ветер и пр. ) В это время некий аналоговый компьютер на основе этих данных и имеющихся моделей (сиречь опыта) рассчитывает: пролетит мимо или лучше отойти В конечном счете знания помогают выживать Совершенно аналогично обстоит дело в бизнес-ситуациях Управление заказами и складскими запасами Сколько товара будет продано завтра в этом магазине? Управление рисками Выдавать ли кредит этому клиенту? Управление клиентской базой Кто наши клиенты? Какие группы товаров они предпочитают? Довольны ли они обслуживанием, кто из них может свалить к конкуренту? Как правильно спланировать маркетинговую кампанию и оценить ее эффект? Выявление мошенничеств Не является ли этот страховой случай обманным? . . .
Три принципа в основе DM На этот счет существует единодушное мнение = Я знаю еще пару ребят, которые придерживаются того же Там же Иными словами, Data Mining – это анализ данных с целью отыскания в них типовых образцов или стереотипных изменений, скрытых от нас по причине невозможности держать в голове такое количество данных и анализировать такое количество взаимосвязей между ними Исследование данных Отыскание образцов Предсказание результатов
Типовые задачи Data Mining Классификация Разбить случаи на предопределенные классы (напр. , хорошо, плохо, . . . ) Бизнес-задачи: анализ кредитных рисков, анализ клиентской базы, целевая реклама Алгоритмы: деревья решений, нейронные сети, наивный байесовский алгоритм Регрессия Сходна с задачей классификации, но предсказываемый атрибут здесь является непрерывной величиной Бизнес-задачи: предсказать скорость ветра (курс доллара, . . . ) на основе температуры, давления, влажности, . . . Алгоритмы: линейная регрессия, логистическая регрессия, регрессионные деревья, нейронные сети
Типовые задачи Data Mining Кластеризация, или сегментирование Определить естественные группы случаев, базируясь на множестве атрибутов. Случаи внутри группы имеют схожие значения атрибутов Бизнес-задачи: профилирование клиентов Ассоциация Подобно кластеризации, определяет наиболее популярные наборы значений плюс устанавливает ассоциативные правила: например, если клиент взял пепси и чипсы, то с вероятностью 80% он выберет еще сок Бизнес-задачи: анализ рыночной корзины, кросс-селлинг
Типовые задачи Data Mining Прогноз Имеется в виду во времени, т. е. Forecast, а не абы какое Prediction Бизнес-задачи: какой будет курс доллара (акций Microsoft температура, влажность, . . . ) на завтра (послезавтра, через неделю, . . . ) Алгоритмы: анализ временного ряда Анализ отклонений В известном смысле задача, обратная вышеперечисленным – требуется отыскать «незакономерность» , т. е. отклонение от ранее наблюдавшегося поведения Бизнес-задачи: выявление мошенничеств с кредитными карточками, определение вторжения в сеть Алгоритмы: в настоящее время не существует устоявшихся методик, остается областью активных исследований. Основная проблема: как отличить такие случаи от помех и не отфильтровать вместе с водой ребенка
Обучаемые и необучаемые задачи Обучаемым (контролируемым, supervised) называется алгоритм, перед нормальной которого его требуется натренировать на модельном множестве (с известными исходами) К обучаемым относятся, например, задачи классификации, ассоциации К необучаемым относится, например, алгоритм кластеризации Модель строится через последовательность итераций и считается завершенной, когда она начинает сходиться, т. е. границы кластеров стабилизируются
Жизненный цикл проекта Data Mining Сбор данных Определение области, представляющей интерес с точки зрения Data Mining, и выделение ее в корпоративном хранилище (или многомерной витрине) Является ли она достаточной или какие-то данные необходимо дособрать Определение представительной выборки Как правило, не имеет смысла обучать модель, натравливая ее на весь набор данных, если на миллиарде записей результаты будут такие же, как и на 50 тыс. Только лишнее время займет См. SELECT Sales. Order. ID, Sales. Order. Detail. ID, Order. Qty, Product. ID FROM Sales. Order. Detail TABLESAMPLE (1000 ROWS) или PERCENT в T-SQL и Row Sampling Transformation в SSIS Очистка и трансформация Преобразование типов, например, bool в int Букетирование, например, (непрерывный) доход в диапазоны Группировка, например, ОКОНХ слишком детальный, требуется укрупнить некоторые отрасли в одну Агрегирование, например, CDR регистрируется с точностью до секунды, для наших задач такая точность не требуется, можно объединить длительности звонков по одному абоненту по времени суток, когда они совершались Обработка пропущенных значений: отбрасываем, кидаем на Unknown, заменяем средней температурой по больнице, . . .
Жизненный цикл проекта Data Mining Что делать с «выбивающимися» записями, т. н. outliers? Отбросить – не будем иметь возможность анализа отклонений (напр. , выявление мошенничеств) Сохранить – получим перекос модели Как правило, отбрасываются на стадии обучения, потом рассматриваются Построение модели Не столь дорогостоящий по ресурсам, как предыдущий, но имеющий принципиальное значение Отнесение к одной из вышеперечисленных категорий задач Собственно, что собираемся предсказывать и на основе чего Категоризация сужает набор возможных алгоритмов Выбор алгоритма Иногда помогают априорные знания Например, в задаче классификации если связь между предсказываемым и входными атрибутами, в основном, линейна, лучше использовать деревья В случае более сложной связи – нейронные сети Если их нет, остается пробовать разные алгоритмы SQL Server позволяет использовать более одного алгоритма на модель
Жизненный цикл проекта Data Mining Оценка модели Насколько адекватно она соответствует реальности Практика – критерий истины Предсказываем с ее помощью величину и сравниваем с действительностью Очевидно, речь идет о «свежих» случаях; нет смысла проверять модель на данных, которые уже есть в системе, потому что на них она натаскивалась Выбросить тавтологии и очевидности Например, выявлена ассоциация, что если имя = «Петя» , то пол = «М» Закономерность может быть давно известна специалистам в данной предметной области «Подкрутить» параметры настройки модели Циклический процесс: обычно требуется несколько итераций, чтобы получить пригодную модель Отчетность Построение адекватной модели не есть самоцель; большинство инструментов Data Mining снабжены средствами текстовой или графической отчетности Отчетность по выявленным тенденциям Отчетность предсказательного и прогнозного характера
Жизненный цикл проекта Data Mining Интеграция в приложение Отчетность для руководства может рассматриваться как вид обратной связи, но ее скорость – это дрейф континентов Реакция должна быть мгновенной, чтобы блокировать украденную карту, перекрыть «левого» абонента или предложить клиенту товар из списка сопутствующих В идеале модуль Data Mining должен быть встроен в систему и автономно принимать решение о компенсирующем воздействии Цикл замыкается, точнее, спираль уходит на новый виток Административно-программная поддержка В быстроменяющемся бизнесе смена образцов происходит довольно часто Например, на Амазоне каждый день появляются сотни новых названий В идеале процесс перестройки версий моделей и настройки их параметров должен быть автоматизирован Политики безопасности Несанкционированный доступ к модели как правило имеет более неприятные последствия, чем хищение части данных Утечка DM модели к конкурентам демонстрирует вектор ваших интересов, подносит на блюдце готовые результаты исследований в этом направлении и может привести к реверс-инжинирингу ваших алгоритмов поиска закономерностей, каждый из которых сам по себе может представлять немалую интеллектуальную ценность
Математический аппарат Data Mining Обычно у непосвященных Data Mining в составе SQL Server вызывает ощущение «черного ящика» , который неизвестно как работает, непонятно что предсказывает, и вообще сомнительно, с какой стати верить его прогнозам Чтобы развеять эти сомнения, предпримем небольшой технический экскурс и посмотрим, как это выглядит в теории и как реализовано в SQL Server Мы увидим, что никакого шаманства здесь нет, есть стандартные алгоритмы математики и статистики, открытые в разное время и отшлифовывавшиеся человечеством начиная с середины XVII в. и до наших дней Наивный Байес Деревья решений Временн. Ые ряды Ассоциативные правила Последовательности и кластеризация Нейронные сети Нечеткий поиск текста В конце концов мы же не сомневаемся в способности СУБД обеспечивать транзакционность, строить индексы и пр.
Наивный Байесовский метод В основе лежит известная со школы формула Байеса вычисления условной вероятности Если есть гипотеза H и свидетельство справедливости этой гипотезы E, то P(Н|Е) = P(Н)P(Е|Н) / P(Е) (1) Пример Известно, что в конгрессе США ответы демократов и республиканцев по основным политическим вопросам распределились как Death Tax Homeland Security Д Д Р Help America Vote Child Abduction Всего в конгрессе Д Р 211 223 0. 49 0. 51 Р Д Р Да 41 214 87 211 184 172 178 210 Нет 166 4 114 6 11 36 23 1 Да Нет 0. 20 0. 80 0. 98 0. 02 0. 43 0. 57 0. 97 0. 03 0. 94 0. 06 0. 83 0. 17 0. 2 = 41 / (41 + 166); 0. 8 = 166 / (41 + 166) 0. 49 = 211 / (211 + 223) 0. 89 0. 11 0. 995 0. 005
Наивный Байесовский метод И пусть известно, что некий товарищ проголосовал как Death Tax Homeland Security Help America Vote Child Abduction Кто он? Да Нет Да Да ? ? ? 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, и товарищ никогда не будет отнесен к демократам Чтобы этого избежать, в таблице везде должны быть ненулевые значения Либо расширять выборку, либо вводить априорные вероятности в нулевых ячейках
Деревья решений Краткая эволюция метода Бинарные и кустистые деревья Контроль роста, обрезание при наступлении условия, динамический рост и сокращение при просмотре Алгоритм ID 3, предложил в 1986 г. Росс Куинлан (Quinlan), Сиднейский ун-т Впоследствии переработан в С 4. 5, к-й способен обрабатывать численные атрибуты, пропущенные значения, отфильтровывать шум Некоторые деревья позволяют решать регрессионные задачи Classification and Regression Tree (CART), предложил в 1984 г. проф. Лео Бриман (Brieman), каф. статистики ун-та Беркли (Калифорния) В SQL Server 2005 исп-ся гибридный алгоритм деревьев, позволяющий решать задачи классификации, регрессии и ассоциации Разработка Microsoft Research
Деревья решений Пример: опрос выпускников Влияние родителей IQ Доход семьи Да Высо кий Низк ий Высо кий Сред ний Низк ий 300 500 200 700 300 400 1000 900 400 1600 400 Нет Пол Продолжить образование М Ж 600 500 Да 1600 1100 900 Нет Например, всего в опросе имелось 400 выпускников с высоким IQ; 300 из них планируют продолжать образование, 100 – нет И т. д. по каждому столбцу Чтобы построить дерево решений, требуется для начала понять, какой из этих признаков является самым значимым
Деревья решений На каждом графике сравниваем столбцы одного цвета Например, пол – это малозначимый критерий: М он или Ж, продолжать образование собирается одинаковое кол-во народа
Деревья решений Примерно так же поступает SQL Server Только вместо сравнения столбиков по высоте, он считает энтропию E(p 1, . . . , pn) = Σ-pilog 2 pi Минимальной энтропией, как мы видим, обладает атрибут «Влияние родителей» , значит, по нему будет первое ветвление и т. д. За рамками доклада остаются атрибуты со многими исходами (почтовый индекс, IP-адрес, . . . ), борьба с овертренингом дерева, регрессия и вообще практически все
Анализ временного ряда Есть функция от времени, требуется спрогнозировать ее значение на следующем интервале Используется алгоритм, основанный на авторегрессии и деревьях решений ART – Auto. Regression Tree Авторегрессия работает с дискретным временем и ставит задачу прогнозирования Xt = f(Xt-1, …, Xt-n) + ε(t), где ε – шум, n – порядок регрессии Так выглядит процесс преобразования Месяц Молоко Хлеб 11. 2005 5000 4500 12. 2005 5200 4600 01. 2006 5240 02. 2006 ID Молоко t-2 t-1 5130 1 2 5000 5200 5240 6390 6280 3 5240 03. 2006 6750 6160 4 04. 2006 6280 6560 . . . Хлеб t t-2 t-1 5240 6390 4500 4600 5130 6280 6390 6750 5130 6280 6160 6390 6750 6280 6160 6560 . . . … … t . . .
Анализ временного ряда В случае линейной авторегрессии уравнение приобретает вид X(t) = a 1 X(t-1) + a 2 X(t-2) +. . . + an. X(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 Молоко = 3. 02 + 0. 72*Хлеб(t-1) + 0. 31*Молоко(t-1) Хлеб (t-2) > 5000 Молоко (t-1) <= 6000 Молоко (t-1) > 6000
Кластеризация Нахождение «центров конденсации» внутри данных Можно еще определить как отыскание или введение переменной, классифицирующей данные Например, в аэропорту мы видим сгустки пассажиров: одни одеты в майки, шорты и бейсболки (Кластер 1), другие – в валенки, шубы и ушанки (Кластер 2) Случай «валенки + шорты» , равно как и «майка + ушанка» и пр. , является нетипичным и встречается редко Такой переменной будет, что одни прилетели с севера, другие – с юга Алгоритм работы кластерного алгоритма удобно представлять себе на примере n-мерного пространства, в которое насыпаны точки Оси – это атрибуты, точки – это случаи Исходим из того, что в начальный момент уже есть какие-то кластеры Вопрос о том, сколько их и как назначаются их центры, выходит за рамки Достаточно чувствительный и сложный вопрос, потому что от него зависит сходимость модели Каждая точка, очевидно, будет относиться к какому-нибудь кластеру После этого пересчитываем центры кластеров как среднее всех точек, которые в него попали Повторяем переприсвоение точек, пока они не перестанут перемещаться между кластерами (алгоритм сошелся) Или не придем к выводу, что модель больше не улучшится от дальнейших итераций
Кластеризация X X X
Кластеризация Два принципа в основе алгоритма К-среднее, или жесткая кластеризация Центры кластеров пересчитываются как среднее всех вошедших в него объектов Отсюда и название (К – обычное обозначение для числа кластеров) Пространство полагается с константной мерой Жесткая, потому что при таком подходе каждая точка принадлежит строго одному кластеру, кластеры имеют четкие границы Максимизация ожидания, или мягкая кластеризация Вместо евклидова расстояния используется мера вероятности с плотностью гауссова распределения (по всей видимости) Границы кластеров нечетки, могут между собой пересекаться Вообще говоря, кластеризация – достаточно дорогой алгоритм В процессе конвергенции (т. е. пока кластера устаканятся), требуются многочисленные итерации через модельные данные Которых может быть очень и очень много Проблемы масштабируемости решаются путем Улучшения сходимости метода Отбрасывания несущественных точек Которые оцениваются как уже не могущие повлиять на изменение кластеров. . .
Sequence Clustering Выше мы рассматривали группировку товаров в сгустки по степени похожести, но нас не волновал порядок их приобретения Существуют задачи, в которых порядок тоже важен Например, нас интересует не только на какие страницы заходил посетитель нашего сайта (т. е. какие кластеры страниц здесь вырисовываются), но и в какой последовательности он их обходил Т. н. clickstream analysis Алгоритм Sequence Clustering в составе Microsoft SQL Server базируется на марковских цепях и теории конечных автоматов А. А. Марков, 1856 -1922, ординарный член Санкт-Петербургской Академии Наук, известный русский математик, автор более 70 работ по теории чисел, теории приближения функций, теории дифференциальных уравнений, теории вероятностей
Sequence Clustering 0. 35 A 0 0. 15 G 0. 10 1 0. 25 C За один момент времени – один шаг перехода T Матрица вероятностей перехода состояний Низкие вероятности более тусклые Обычно в модели хранятся вероятности выше определенного порога 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 A G C T A 0. 35 0. 15 0. 25 G 0. 15 0. 35 0. 25 0. 15 C 0. 15 0. 25 0. 35 0. 15 T 0. 25 0. 15 0. 35
Sequence Clustering Цепь имеет n-й порядок, если ее матрица перехода состояний определяется историей состояний на n моментов времени назад Вероятность последовательности последовательных состояний длины L: Р(х. L, x. L-1, x. L-2, …, x 1) = Р(х. L | x. L-1, x. L-2, …, x 1) * Р(x. L-1 | x. L-2, …, x 1) * … * Р(x 1) Обычные марковские цепи 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, x. L-1, x. L-2, …, x 1) = Р(х. L | x. L-1) * Р(x. L-1 | x. L-2) *. . . * Р(х2 | x 1) * Р(x 1) (2) Скрытые марковские цепи Последовательность состояний перехода неизвестна Характеризуется 5 -ю атрибутами: набором состояний, выходным алфавитом, вероятностями начальных состояний, вероятностями перехода между состояниями и выходными вероятностями каждого конкретного состояния Применяются в куче мест от распознавания речи до расшифровки генома
Sequence Clustering В текущей версии SQL Server используются наблюдаемые марковские цепи Каждый кластер соответствует своей цепи со своей матрицей перехода Кластерный анализ для скалярных атрибутов выполняется в соответствии с ЕМ-алгоритмом: Инициализировать параметры модели Отнести испытание (case) к каждому из K кластеров с той или иной вероятностью (шаг Е – expectation) Пересчитать параметры модели, основываясь на взвешенной принадлежности каждого испытания (шаг М – максимизация) Если наступило схождение, закончить, иначе вернуться к шагу 2 Последовательность состояний перехода – векторный атрибут Хранится как вложенная таблица Вероятность вхождения последовательности в кластер Р(х | C) считается по марковскому закону (2), а предсказание кластера делается по формуле Байеса (1), где Р(С) – предельная вероятность кластера С - также известна (например, его вес)
Нейронные сети Как известно, ведут свое происхождение c 1943 г. Мак. Каллоком и Питтсом (Warren Mc. Culloch, Walter Pitts) в рамках работ по изучению биологической нервной сети была построена модель линейного порогового нейрона Хебб (Donald Hebb) в 1949 г. в своей работе «The Organization of Behavior» сформулировал принцип обучаемости (hebbian reinforcement 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) и оригинальным алгоритмом настройки весов
Нейронные сети Нейронная сеть состоит из узлов (нейронов) и соединяющих их ребер (синапсов) Узлы бывают входные, скрытые, выходные Каждое ребро связывает узлы с определенным весом Направление ребра обозначает поток данных во время предсказания Входные узлы формируют первый слой сети В большинстве сетей каждый входящий узел представляет один какой-нибудь атрибут (возраст, пол, доход, . . . ) Первоначальные значения входных атрибутов нормируются к одному интервалу, напр. , (-1; 1) Скрытые узлы образуют промежуточный слой В слое комбинируется весь вход с весами соответствующих ребер, производятся некоторые вычисления и результат подается на следующий слой Скрытый слой позволяет сети узнавать нелинейные отношения Выходной слой Как правило, узел представляет предсказываемый атрибут После обработки в выходном слое результат приводится к своей первоначальной шкале Сеть Microsoft Neural Network является feedforward = прямого распространения, нерекуррентная В других сетях, следуя направлениям ребер, можно снова попасть на тот же узел
Как устроен нейрон Вход 1 Вход 2 Вход 3 Нейрон – единица обработки Σ – комбинация входов Возможны разные варианты: среднее, max, and, or SQL Server использует наиболее популярный метод – взвешенная сумма Которая затем передается ф-ции активации f – ф-ция активации Обычно нелинейна, чувствительна на средний диапазон входов Эта ее особенность улучшает обучаемость сети В SQL Server в кач-ве ф-ции активации используется логистическая ф-ция, или сигмоид, 1/(1+e-ах) для выходного слоя и гиперболический тангенс (eах – e-ах) / (eах + e-ах) для скрытого Σ f Вход 4
Как работает нейронная сеть После того, как топология сети определена, кол-во скрытых узлов задано, процесс обучения означает нахождение лучшего мн-ва весов На начальном этапе веса расставляются случайно из диапазона (-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-м нейронами * В действительности они немного различаются для дискретных и непрерывных значений
Корректировка ошибки (обучение) Рассмотрим ошибку как ф-цию от весов Wij По сути, нам требуется найти глобальный минимум данной поверхности ошибок Поверхность может иметь очень сложную форму (с локальными минимумами и пр. ) В качестве ф-ции корректировки весов SQL Server использует метод градиентного спуска* wij = wij + l * Errj * Oi, где l – некая константа из (-1; 1) под названием темп обучения (learning rate), которая имеет высокое значение на начальных итерациях для повышения скорости и снижается к концу обучения для повышения точности Возраст W 14(0. 2) 1 4 W 15(0. 1) Пол 6 W 24(0. 2) 2 5 W 25(-0. 4) W 34(0. 2) Доход W 46(-0. 3) 3 W 35(-0. 3) Кредитный риск W 56(-0. 1) * В [1] упоминается также метод сопряженного градиента (conjugate gradient), однако технических деталей реализации в нынешнем алгоритме Microsoft Neural Network найти не удалось
Подключение собственного алгоритма Должен имплементировать два основных интерфейса IDMAlgorithm. Metadata – метаданные (фабрика) IDMAlgorithm – собственно, алгоритм (по экземпляру на объект) Есть еще масса вспомогательных IDMPersist, IDMPush. Case. Set, IDMCase. Processor, . . . Принимает данные в виде потока пар «атрибут-значение» Таким образом абстрагируясь от источника Пример на тему написания и подключения нового DM-алгоритма См. MSDN
Стандарты Data Mining JDM PL/SQL OLE DB for DM XMLA for DM DMX PMML CRISP-DM SQL/MM for DM CWM for DM
Стандарты 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 и Daimler. Chrysler Продукт усилий Фактически это методология Описывает жизненный цикл проекта Data Mining (последовательность фаз, составные задачи, что на входе и выходе каждой), не опускаясь до частных методик добычи
Стандарты 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
Расширение интерфейсов 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/May 99/D ataminingpr. mspx
Визуализация. NET Win. Form Controls в составе клиентской части SQL Server – Data Viewers Позволяют просматривать модель, ее характеристики, профили, дискриминацию, lift chart для оценки точности и пр. Можно расширить этот набор, создав собственные элементы управления Реализовав интерфейс IMining. Model. Viewer. Control Св-ва Mining. Model и Connection. String, метод Load. Viewer. Data По такому же принципу построены штатные Data. Viewers Примеры также имеются в документации Можно создать управляющие элементы с нуля Вытащив все, что требуется, с сервера при помощи OLE DB for DM и отрисовав это под свой вкус и цвет Аналогичная ситуация с элементами управления для Web
Визуализация
Визуализация (Web) Примеры построения клиентских приложений
Визуализация Кроме того, месяц назад вышел Community Pack for SQL Server 2005 http: //www. microsoft. com/downloads/details. aspx? Family. ID=AE 94 BB 12 -C 839 -4 B 4 F-A 71 B-412 FB 3 A 0500 E&displaylang=en Набор редистрибутируемых компонент
Визуализация В его составе
Применимость Data Mining Как и любой инструмент, требует навыков в своем применении Факт попадания молотком по пальцам не обязательно означает, что молоток плохой Между входными параметрами модели и предсказаниями должна быть (пусть неявная) связь Нельзя предсказать погоду на завтра, зная свой размер обуви Поиск закономерностей предполагает закономерности. Бессмысленно их искать в равномерном распределении Нельзя предсказать результат лотереи, если она проводится честно Прогноз должен делаться в тех же условиях, для которых проводилось построение и обучение модели Модель не должна вносить помехи в исследуемые данные Едва ли удастся достоверно предсказать ситуацию на фондовом рынке, потому что не вы один используете для этого DM В отличие от погоды здесь поведение участников оказывает непосредственное влияние на тренд
Список полезных ресурсов MSDN и документация http: //msdn 2. microsoft. com/en-us/library/ms 174949(SQL. 90). aspx Technet http: //www. microsoft. com/technet/prodtechnol/sql/2005/intro 2 dm. m spx 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/
Список литературы 1. «Data Mining with SQL Server 2005» Zhao. Hui Tang, Jamie Mac. Lennan Wiley Publishing, Oct 2005, ISBN: 0471462616 2. Автор благодарит Джона Смита за участие в экспериментах и Джона Брауна за ценное обсуждение = Смит получил все результаты, а Браун объяснил, что они значат «Инструкция для читателя научных статей» // «Физики шутят» , Мир, 1968 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/p 80 -column-seligman. pdf 3. Unearth the New Data Mining Features of Analysis Services 2005 Jamie Mac. Lennan http: //msdn. microsoft. com/msdnmag/issues/04/09/Analysis. Services 2005/default. as px 4. Detect Anomalies in Excel Spreadsheets. Use SQL Server 2005 Data Mining inside Excel. Bogdan Crivat, Jamie Mac. Lennan http: //msaccess. advisorguide. com/doc/14413 5. SQL Server 2005 Data Mining. Create a Web Cross-sell Application Raman Iyer and Jesper Lind http: //www. aspnetpro. com/newsletterarticle/2004/10/asp 200410 ri_l. a sp 6. 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 7. «Applied Microsoft Analysis Services 2005 and Microsoft Business Intelligence» Teo Lachev Prologika Press, Nov 2005, ISBN: 0976635305
Спасибо за внимание Эти результаты будут опубликованы позднее = Либо будут, либо нет Там же Вопросы?
ad19553fe50a859174b009fc106fc962.ppt