Алгоритмы поиска закономерностей в SQL Serv

Download Report

Transcript Алгоритмы поиска закономерностей в SQL Serv

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 проявляет покупательскую активность в дни А
что товар C1 продается в основном с товаром С
...
Эти знания уже можно непосредственно использовать в бизнесе
Введение
Данные и Знания
Данные – реактивный характер, т.е. отчет о состоявшемся событии
Знания – проактивный характер, т.е. заглядывание в будущее
Дано: летит кирпич (мозг неявно оценивает его вес, скорость, направление,
боковой ветер и пр.)
В это время некий аналоговый компьютер на основе этих данных и
имеющихся моделей (сиречь опыта) рассчитывает: пролетит мимо или лучше
отойти
В конечном счете знания помогают выживать
Совершенно аналогично обстоит дело в бизнес-ситуациях
Управление заказами и складскими запасами
Сколько товара будет продано завтра в этом магазине?
Управление рисками
Выдавать ли кредит этому клиенту?
Управление клиентской базой
Кто наши клиенты? Какие группы товаров они предпочитают?
Довольны ли они обслуживанием, кто из них может свалить к конкуренту?
Как правильно спланировать маркетинговую кампанию и оценить ее эффект?
Выявление мошенничеств
Не является ли этот страховой случай обманным?
...
Три принципа в
основе DM
На этот счет существует единодушное
мнение
= Я знаю еще пару ребят, которые
придерживаются того же
Там же
Иными словами, Data Mining – это анализ данных с целью
отыскания в них типовых образцов или стереотипных изменений,
скрытых от нас по причине невозможности держать в голове
такое количество данных и анализировать такое количество
взаимосвязей между ними
Исследование
данных
Отыскание
образцов
Предсказание
результатов
Типовые задачи Data Mining
Классификация
Разбить случаи на предопределенные классы (напр., хорошо,
плохо, ...)
Бизнес-задачи: анализ кредитных рисков, анализ клиентской
базы, целевая реклама
Алгоритмы: деревья решений, нейронные сети, наивный
байесовский алгоритм
Регрессия
Сходна с задачей классификации, но предсказываемый
атрибут здесь является непрерывной величиной
Бизнес-задачи: предсказать скорость ветра (курс доллара, ...)
на основе температуры, давления, влажности, ...
Алгоритмы: линейная регрессия, логистическая регрессия,
регрессионные деревья, нейронные сети
Типовые задачи Data Mining
Кластеризация, или сегментирование
Определить естественные группы случаев, базируясь на
множестве атрибутов. Случаи внутри группы имеют схожие
значения атрибутов
Бизнес-задачи: профилирование клиентов
Ассоциация
Подобно кластеризации, определяет наиболее популярные
наборы значений плюс устанавливает ассоциативные правила:
например, если клиент взял пепси и чипсы, то с вероятностью
80% он выберет еще сок
Бизнес-задачи: анализ рыночной корзины, кросс-селлинг
Типовые задачи Data Mining
Прогноз
Имеется в виду во времени, т.е. Forecast, а не абы какое
Prediction
Бизнес-задачи: какой будет курс доллара (акций Microsoft
температура, влажность, ...) на завтра (послезавтра, через
неделю, ...)
Алгоритмы: анализ временного ряда
Анализ отклонений
В известном смысле задача, обратная вышеперечисленным –
требуется отыскать «незакономерность», т.е. отклонение от
ранее наблюдавшегося поведения
Бизнес-задачи: выявление мошенничеств с кредитными
карточками, определение вторжения в сеть
Алгоритмы: в настоящее время не существует устоявшихся
методик, остается областью активных исследований. Основная
проблема: как отличить такие случаи от помех и не
отфильтровать вместе с водой ребенка
Обучаемые и необучаемые
задачи
Обучаемым (контролируемым, supervised)
называется алгоритм, перед нормальной
которого его требуется натренировать на
модельном множестве (с известными
исходами)
К обучаемым относятся, например, задачи
классификации, ассоциации
К необучаемым относится, например, алгоритм
кластеризации
Модель строится через последовательность
итераций и считается завершенной, когда она
начинает сходиться, т.е. границы кластеров
стабилизируются
Жизненный цикл проекта 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,
заменяем средней температурой по больнице, ...
Жизненный цикл проекта 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.98
0.43
0.97
0.94
0.83
0.89
0.995
Нет
0.80
0.02
0.57
0.03
0.06
0.17
0.11
0.005
0.2 = 41 / (41 + 166); 0.8 = 166 / (41 + 166)
0.49 = 211 / (211 + 223)
Наивный Байесовский метод
И пусть известно, что некий товарищ проголосовал как
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, и товарищ никогда не будет отнесен к демократам
Чтобы этого избежать, в таблице везде должны быть ненулевые значения
Либо расширять выборку, либо вводить априорные вероятности в нулевых
ячейках
Деревья решений
Краткая эволюция метода
Бинарные и кустистые деревья
Контроль роста, обрезание при наступлении условия,
динамический рост и сокращение при просмотре
Алгоритм ID3, предложил в 1986 г. Росс Куинлан (Quinlan),
Сиднейский ун-т
Впоследствии переработан в С4.5, к-й способен обрабатывать
численные атрибуты, пропущенные значения, отфильтровывать
шум
Некоторые деревья позволяют решать регрессионные задачи
Classification and Regression Tree (CART), предложил в 1984 г.
проф. Лео Бриман (Brieman), каф. статистики ун-та Беркли
(Калифорния)
В SQL Server 2005 исп-ся гибридный алгоритм деревьев,
позволяющий решать задачи классификации, регрессии и
ассоциации
Разработка Microsoft Research
Деревья решений
Пример: опрос выпускников
IQ
Влияние
родителей
Доход семьи
Да
Высо
кий
Низк
ий
Высо
кий
Сред
ний
Низк
ий
300
500
200
700
300
400
100
1000
900
400
1600
400
Нет
Пол
Продолжить
образование
М
Ж
600
500
500
Да
1600
1100
900
Нет
Например, всего в опросе имелось 400 выпускников с
высоким IQ; 300 из них планируют продолжать
образование, 100 – нет
И т.д. по каждому столбцу
Чтобы построить дерево решений, требуется для
начала понять, какой из этих признаков является
самым значимым
Деревья решений
На каждом графике сравниваем столбцы одного цвета
Например, пол – это малозначимый критерий: М он или Ж,
продолжать образование собирается одинаковое кол-во народа
1000
1600
900
1400
800
1200
700
1000
600
500
Да
400
Нет
Да
800
Нет
600
300
400
200
200
100
0
0
Высокий
Средний
Да
Низкий
Нет
Влияние родителей
IQ
1600
1200
1400
1000
1200
800
1000
Да
800
Да
600
Нет
600
Нет
400
400
200
200
0
Высокий
Низкий
Доход семьи
0
М
Ж
Пол
Деревья решений
Примерно так же поступает SQL Server
Только вместо сравнения столбиков по высоте, он считает энтропию
E(p1,...,pn) = Σ-pilog2pi
Вл-е родителей Доход семьи
IQ
Выс. Сред.
Низ.
300 500 200
Кол-во "Да"
100 1000 900
Кол-во "Нет"
Сумма столбца
400 1500 1100
Нормализованные 0.750 0.333 0.182
кол-ва
0.250 0.667 0.818
Энтропия
0.811 0.918 0.684
Сумма энтропий по
2.414
атрибуту
Да
700
400
1100
0.636
0.364
0.946
Нет
Выс.
Низ.
Пол
М
300 400 600 500
1600 400 1600 1100
1900 800 2200 1600
0.158 0.500 0.273 0.313
0.842 0.500 0.727 0.688
0.629 1.000 0.845 0.896
1.575
1.845
Ж
500
900
1400
0.357
0.643
0.940
1.836
Минимальной энтропией, как мы видим, обладает атрибут «Влияние
родителей», значит, по нему будет первое ветвление и т.д.
За рамками доклада остаются атрибуты со многими исходами (почтовый
индекс, IP-адрес, ...), борьба с овертренингом дерева, регрессия и вообще
практически все
Анализ временного ряда
Есть функция от времени, требуется спрогнозировать ее значение
на следующем интервале
Используется алгоритм, основанный на авторегрессии и деревьях
решений
ART – AutoRegression 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
5200
5240
6390
6280
3
5240
03.2006
6750
6160
4
04.2006
6280
6560
...
...
...
...
Хлеб
t
t-2
t-1
5240
6390
4500
4600
4600
5130
5130
6280
6390
6750
5130
6280
6160
6390
6750
6280
6280
6160
6560
...
…
…
…
…
t
...
Анализ временного ряда
В случае линейной авторегрессии уравнение приобретает вид 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
Молоко = 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
0.15
0.10
G
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.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.15
0.35
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-ю атрибутами: набором состояний, выходным
алфавитом, вероятностями начальных состояний, вероятностями
перехода между состояниями и выходными вероятностями каждого
конкретного состояния
Применяются в куче мест от распознавания речи до расшифровки
генома
Sequence Clustering
В текущей версии SQL Server используются наблюдаемые
марковские цепи
Каждый кластер соответствует своей цепи со своей матрицей
перехода
Кластерный анализ для скалярных атрибутов выполняется в
соответствии с ЕМ-алгоритмом:
Инициализировать параметры модели
Отнести испытание (case) к каждому из K кластеров с той или иной
вероятностью (шаг Е – expectation)
Пересчитать параметры модели, основываясь на взвешенной
принадлежности каждого испытания (шаг М – максимизация)
Если наступило схождение, закончить, иначе вернуться к шагу 2
Последовательность состояний перехода – векторный атрибут
Хранится как вложенная таблица
Вероятность вхождения последовательности в кластер Р(х | C)
считается по марковскому закону (2), а предсказание кластера
делается по формуле Байеса (1), где Р(С) – предельная вероятность
кластера С - также известна (например, его вес)
Нейронные сети
Как известно, ведут свое происхождение c 1943 г.
МакКаллоком и Питтсом (Warren McCulloch, 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-ах) для скрытого
1.2
1
0.8
0.6
0.4
0.2
sigm(x)
0
-0.2
-0.4
-0.6
-0.8
-1
-1.2
-5
-4
-3
-2
-1
0
1
2
3
4
5
th(x)
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), которая имеет высокое значение на начальных итерациях для
повышения скорости и снижается к концу обучения для повышения точности
Возраст
W14(0.2)
1
4
W15(0.1)
Пол
6
W24(0.2)
Кредитный риск
2
5
W25(-0.4)
W34(0.2)
Доход
W46(-0.3)
3
W35(-0.3)
W56(-0.1)
* В [1] упоминается также метод сопряженного
градиента (conjugate gradient), однако
технических деталей реализации в нынешнем
алгоритме Microsoft Neural Network найти не
удалось
Подключение собственного
алгоритма
Должен имплементировать два основных
интерфейса
IDMAlgorithmMetadata – метаданные (фабрика)
IDMAlgorithm – собственно, алгоритм (по экземпляру
на объект)
Есть еще масса вспомогательных
IDMPersist, IDMPushCaseSet, IDMCaseProcessor, ...
Принимает данные в виде потока пар
«атрибут-значение»
Таким образом абстрагируясь от источника
Пример на тему написания и подключения
нового DM-алгоритма
См. MSDN
Стандарты Data Mining
JDM
PL/SQL
OLE DB for DM
SQL/MM for DM
XMLA for DM
CWM for DM
DMX
PMML
CRISP-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 и DaimlerChrysler
Фактически это методология
Описывает жизненный цикл проекта 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/May99/D
ataminingpr.mspx
Визуализация
.NET WinForm Controls в составе клиентской части
SQL Server – Data Viewers
Позволяют просматривать модель, ее характеристики,
профили, дискриминацию, lift chart для оценки точности и пр.
Можно расширить этот набор, создав собственные
элементы управления
Реализовав интерфейс IMiningModelViewerControl
Св-ва MiningModel и ConnectionString, метод LoadViewerData
По такому же принципу построены штатные DataViewers
Примеры также имеются в документации
Можно создать управляющие элементы с нуля
Вытащив все, что требуется, с сервера при помощи OLE DB for
DM и отрисовав это под свой вкус и цвет
Аналогичная ситуация с элементами управления для
Web
Визуализация
Визуализация (Web)
Примеры построения клиентских
приложений
Визуализация
Кроме того, месяц назад вышел Community Pack for SQL Server 2005
http://www.microsoft.com/downloads/details.aspx?FamilyID=AE94BB12C839-4B4F-A71B-412FB3A0500E&displaylang=en
Набор редистрибутируемых компонент
Визуализация
В его составе
Применимость Data Mining
Как и любой инструмент, требует навыков в своем применении
Факт попадания молотком по пальцам не обязательно означает, что
молоток плохой
Между входными параметрами модели и предсказаниями должна
быть (пусть неявная) связь
Нельзя предсказать погоду на завтра, зная свой размер обуви
Поиск закономерностей предполагает закономерности.
Бессмысленно их искать в равномерном распределении
Нельзя предсказать результат лотереи, если она проводится честно
Прогноз должен делаться в тех же условиях, для которых
проводилось построение и обучение модели
Модель не должна вносить помехи в исследуемые данные
Едва ли удастся достоверно предсказать ситуацию на фондовом
рынке, потому что не вы один используете для этого DM
В отличие от погоды здесь поведение участников оказывает
непосредственное влияние на тренд
Список полезных ресурсов
MSDN и документация
http://msdn2.microsoft.com/en-us/library/ms174949(SQL.90).aspx
Technet
http://www.microsoft.com/technet/prodtechnol/sql/2005/intro2dm.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»
ZhaoHui Tang, Jamie MacLennan
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/p80-column-seligman.pdf
3.
Unearth the New Data Mining Features of Analysis Services 2005
Jamie MacLennan
http://msdn.microsoft.com/msdnmag/issues/04/09/AnalysisServices2005/default.as
px
4.
Detect Anomalies in Excel Spreadsheets. Use SQL Server 2005 Data Mining
inside Excel.
Bogdan Crivat, Jamie MacLennan
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/asp200410ri_l/asp200410ri_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
Спасибо за внимание
Эти результаты будут
опубликованы позднее
= Либо будут, либо нет
Там же
Вопросы?