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

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

  • View
    223

  • Download
    2

Embed Size (px)

Citation preview

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

Data Mining Data Mining в в Microsoft SQL Server Microsoft SQL Server

20052005

Алексей ШуленинАлексей Шуленин

Consulting ServicesConsulting Services

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

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

Почему мы сегодня Почему мы сегодня говорим о говорим о технологии технологии Data Data Mining?Mining?

За последние два десятилетия реляционные БД на За последние два десятилетия реляционные БД на предприятиях накопили грандиозные объемы данных в предприятиях накопили грандиозные объемы данных в самых различных областях и приложенияхсамых различных областях и приложениях

ERP, CRM, Inventory, ERP, CRM, Inventory, финансы, ...финансы, ...Просто журналы посещений, наконецПросто журналы посещений, наконец

Для чего реально использовались эти данные?Для чего реально использовались эти данные?Выпустили пару раз отчетность на их основе, потом Выпустили пару раз отчетность на их основе, потом сагрегировали, заархивировали и забыли?сагрегировали, заархивировали и забыли?Лежат мертвым грузом вместо того, чтобы работать и Лежат мертвым грузом вместо того, чтобы работать и приносить прибыльприносить прибыльData Mining – Data Mining – средство их «оживить» и заставить работатьсредство их «оживить» и заставить работать

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

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

ВведениеВведение

Что такое Что такое Data Mining?Data Mining?В литературе переводится по-разномуВ литературе переводится по-разному

Добыча данных (калька)Добыча данных (калька)Интеллектуальный анализ данных (а бывает неинтеллектуальный)Интеллектуальный анализ данных (а бывает неинтеллектуальный)Искусственный интеллект (перевод в стиле школы времен АСУ)Искусственный интеллект (перевод в стиле школы времен АСУ)Поиск закономерностейПоиск закономерностей......

Независимо от перевода смысл одинаков (в большинстве Независимо от перевода смысл одинаков (в большинстве случаев):случаев):

Это средство превратить данные в знанияЭто средство превратить данные в знанияМало прока от строки в таблице, говорящей, что в день Мало прока от строки в таблице, говорящей, что в день AA клиент клиент B B приобрел товар приобрел товар C C в магазине в магазине D D на сумму ... в кол-ве ... и т.д.на сумму ... в кол-ве ... и т.д.Однако просмотрев миллионы подобных строк можно заметить, Однако просмотрев миллионы подобных строк можно заметить, например:например:

что товар С в магазине что товар С в магазине D D расходится лучше, чем в других расходится лучше, чем в других торговых точках, торговых точках, что клиент что клиент B B проявляет покупательскую активность в дни Апроявляет покупательскую активность в дни Ачто товар что товар C1 C1 продается в основном с товаром Спродается в основном с товаром С......

Эти знания уже можно непосредственно использовать в бизнесеЭти знания уже можно непосредственно использовать в бизнесе

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

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

ВведениеВведение

Данные и ЗнанияДанные и ЗнанияДанные – реактивный характер, т.е. отчет о состоявшемся Данные – реактивный характер, т.е. отчет о состоявшемся событиисобытииЗнания – проактивный характер, т.е. заглядывание в будущееЗнания – проактивный характер, т.е. заглядывание в будущее

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

Совершенно аналогично обстоит дело в бизнес-ситуацияхСовершенно аналогично обстоит дело в бизнес-ситуацияхУправление заказами и складскими запасамиУправление заказами и складскими запасами

Сколько товара будет продано завтра в этом магазине?Сколько товара будет продано завтра в этом магазине?

Управление рискамиУправление рискамиВыдавать ли кредит этому клиенту?Выдавать ли кредит этому клиенту?

Управление клиентской базойУправление клиентской базойКто наши клиенты? Какие группы товаров они предпочитают?Кто наши клиенты? Какие группы товаров они предпочитают?Довольны ли они обслуживанием, кто из них может свалить к Довольны ли они обслуживанием, кто из них может свалить к конкуренту?конкуренту?Как правильно спланировать маркетинговую кампанию и оценить Как правильно спланировать маркетинговую кампанию и оценить ее эффект?ее эффект?

Выявление мошенничествВыявление мошенничествНе является ли этот страховой случай обманным?Не является ли этот страховой случай обманным?......

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

Три принципа Три принципа в основе в основе DMDM

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ПрогнозПрогнозИмеется в виду во времени, т.е. Имеется в виду во времени, т.е. Forecast, Forecast, а не абы а не абы какое какое PredictionPredictionБизнес-задачи: какой будет курс доллара (акций Бизнес-задачи: какой будет курс доллара (акций Microsoft температура, влажность, ...) на завтра Microsoft температура, влажность, ...) на завтра (послезавтра, через неделю, ...)(послезавтра, через неделю, ...)Алгоритмы: анализ временного рядаАлгоритмы: анализ временного ряда

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

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

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

Обучаемые и необучаемые Обучаемые и необучаемые задачизадачи

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

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

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

Жизненный цикл проекта Жизненный цикл проекта Data MiningData Mining

Сбор данныхСбор данныхОпределение области, представляющей интерес с точки зрения Определение области, представляющей интерес с точки зрения Data Data MiningMining,, и выделение ее в корпоративном хранилище (или и выделение ее в корпоративном хранилище (или многомерной витрине)многомерной витрине)Является ли она достаточной или какие-то данные необходимо Является ли она достаточной или какие-то данные необходимо дособратьдособратьОпределение представительной выборкиОпределение представительной выборки

Как правило, не имеет смысла обучать модель, натравливая ее на весь Как правило, не имеет смысла обучать модель, натравливая ее на весь набор данных, если на миллиарде записей результаты будут такие же, как набор данных, если на миллиарде записей результаты будут такие же, как и на 50 тыс.и на 50 тыс.Только лишнее время займетТолько лишнее время займетСм. См. SELECT SalesOrderID, SalesOrderDetailID, OrderQty, ProductID FROM SELECT SalesOrderID, SalesOrderDetailID, OrderQty, ProductID FROM Sales.SalesOrderDetail Sales.SalesOrderDetail TABLESAMPLETABLESAMPLE (1000 ROWS) (1000 ROWS) или или PERCENT PERCENT в в T-SQL T-SQL и и Row Row Sampling Transformation Sampling Transformation в в SSISSSIS

Очистка и трансформацияОчистка и трансформацияПреобразование типов, например, Преобразование типов, например, bool bool в в intintБукетирование, например, (непрерывный) доход в диапазоныБукетирование, например, (непрерывный) доход в диапазоныГруппировка, например, ОКОНХ слишком детальный, требуется Группировка, например, ОКОНХ слишком детальный, требуется укрупнить некоторые отрасли в однуукрупнить некоторые отрасли в однуАгрегирование, например, Агрегирование, например, CDR CDR регистрируется с точностью до регистрируется с точностью до секунды, для наших задач такая точность не требуется, можно секунды, для наших задач такая точность не требуется, можно объединить длительности звонков по одному абоненту по времени объединить длительности звонков по одному абоненту по времени суток, когда они совершалисьсуток, когда они совершалисьОбработка пропущенных значений: отбрасываем, кидаем на Обработка пропущенных значений: отбрасываем, кидаем на Unknown, Unknown, заменяем средней температурой по больнице, ...заменяем средней температурой по больнице, ...

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

Жизненный цикл проекта Жизненный цикл проекта Data MiningData Mining

Что делать с «выбивающимися» записями, т.н. Что делать с «выбивающимися» записями, т.н. outliers?outliers?Отбросить – не будем иметь возможность анализа отклонений Отбросить – не будем иметь возможность анализа отклонений (напр., выявление мошенничеств)(напр., выявление мошенничеств)Сохранить – получим перекос моделиСохранить – получим перекос моделиКак правило, отбрасываются на стадии обучения, потом Как правило, отбрасываются на стадии обучения, потом рассматриваютсярассматриваются

Построение моделиПостроение моделиНе столь дорогостоящий по ресурсам, как предыдущий, но Не столь дорогостоящий по ресурсам, как предыдущий, но имеющий принципиальное значениеимеющий принципиальное значениеОтнесение к одной из вышеперечисленных категорий задачОтнесение к одной из вышеперечисленных категорий задач

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

Выбор алгоритмаВыбор алгоритмаИногда помогают априорные знанияИногда помогают априорные знания

Например, в задаче классификации если связь между Например, в задаче классификации если связь между предсказываемым и входными атрибутами, в основном, предсказываемым и входными атрибутами, в основном, линейна, лучше использовать деревьялинейна, лучше использовать деревьяВ случае более сложной связи – нейронные сетиВ случае более сложной связи – нейронные сети

Если их нет, остается пробовать разные алгоритмыЕсли их нет, остается пробовать разные алгоритмыSQL Server позволяет использовать более одного алгоритма на SQL Server позволяет использовать более одного алгоритма на модельмодель

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

Жизненный цикл проекта Жизненный цикл проекта Data MiningData Mining

Оценка моделиОценка моделиНасколько адекватно она соответствует реальностиНасколько адекватно она соответствует реальности

Практика – критерий истиныПрактика – критерий истиныПредсказываем с ее помощью величину и сравниваем с Предсказываем с ее помощью величину и сравниваем с действительностьюдействительностьюОчевидно, речь идет о «свежих» случаях; нет смысла проверять Очевидно, речь идет о «свежих» случаях; нет смысла проверять модель на данных, которые уже есть в системе, потому что на них модель на данных, которые уже есть в системе, потому что на них она натаскиваласьона натаскивалась

Выбросить тавтологии и очевидностиВыбросить тавтологии и очевидностиНапример, выявлена ассоциация, что если имя = «Петя», то пол = Например, выявлена ассоциация, что если имя = «Петя», то пол = «М»«М»Закономерность может быть давно известна специалистам в Закономерность может быть давно известна специалистам в данной предметной областиданной предметной области

«Подкрутить» параметры настройки модели«Подкрутить» параметры настройки моделиЦиклический процесс: обычно требуется несколько итераций, Циклический процесс: обычно требуется несколько итераций, чтобы получить пригодную модельчтобы получить пригодную модель

ОтчетностьОтчетностьПостроение адекватной модели не есть самоцель; Построение адекватной модели не есть самоцель; большинство инструментов большинство инструментов Data Mining Data Mining снабжены снабжены средствами текстовой или графической отчетностисредствами текстовой или графической отчетностиОтчетность по выявленным тенденциямОтчетность по выявленным тенденциямОтчетность предсказательного и прогнозного характераОтчетность предсказательного и прогнозного характера

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

Жизненный цикл проекта Жизненный цикл проекта Data MiningData Mining

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

Административно-программная поддержкаАдминистративно-программная поддержкаВ быстроменяющемся бизнесе смена образцов происходит довольно В быстроменяющемся бизнесе смена образцов происходит довольно часточасто

Например, на Амазоне каждый день появляются сотни новых названийНапример, на Амазоне каждый день появляются сотни новых названий

В идеале процесс перестройки версий моделей и настройки их В идеале процесс перестройки версий моделей и настройки их параметров должен быть автоматизированпараметров должен быть автоматизированПолитики безопасностиПолитики безопасности

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

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

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

Server вызывает ощущение «черного ящика», который Server вызывает ощущение «черного ящика», который неизвестно как работает, непонятно что предсказывает, неизвестно как работает, непонятно что предсказывает, и вообще сомнительно, с какой стати верить его и вообще сомнительно, с какой стати верить его прогнозампрогнозам

Чтобы развеять эти сомнения, предпримем небольшой Чтобы развеять эти сомнения, предпримем небольшой технический экскурс и посмотрим, как это выглядит в теории технический экскурс и посмотрим, как это выглядит в теории и как реализовано в SQL Server и как реализовано в SQL Server Мы увидим, что никакого шаманства здесь нет, есть Мы увидим, что никакого шаманства здесь нет, есть стандартные алгоритмы математики и статистики, открытые стандартные алгоритмы математики и статистики, открытые в разное время и отшлифовывавшиеся человечеством в разное время и отшлифовывавшиеся человечеством начиная с середины начиная с середины XVII XVII в. и до наших днейв. и до наших дней

Наивный БайесНаивный БайесДеревья решенийДеревья решенийВременнЫе рядыВременнЫе рядыАссоциативные правилаАссоциативные правилаПоследовательности и кластеризацияПоследовательности и кластеризацияНейронные сетиНейронные сетиНечеткий поиск текста Нечеткий поиск текста

В конце концов мы же не сомневаемся в способности В конце концов мы же не сомневаемся в способности СУБД обеспечивать транзакционность, строить индексы СУБД обеспечивать транзакционность, строить индексы и пр.и пр.

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

Наивный Байесовский методНаивный Байесовский метод

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

Если есть гипотеза Если есть гипотеза H H и свидетельство справедливости этой и свидетельство справедливости этой гипотезы гипотезы E, E, то то P(P(НН||ЕЕ) = P() = P(НН)P()P(ЕЕ||НН) / P() / P(ЕЕ))

(1)(1)ПримерПример

Известно, что в конгрессе США ответы демократов и Известно, что в конгрессе США ответы демократов и республиканцев по основным политическим вопросам республиканцев по основным политическим вопросам распределились какраспределились как

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

Death TaxDeath Tax Homeland Homeland SecuritySecurity

Help Help America America

VoteVote

Child Child AbductionAbduction

Всего в Всего в конгрессеконгрессе

ДД РР ДД РР ДД РР ДД РР Д Д РР

ДаДа 41 214 87 211 184 172 178 210211 223

НетНет 166166 44 114114 66 1111 3636 2323 11

ДаДа 0.200.20 0.980.98 0.430.43 0.970.97 0.940.94 0.830.83 0.890.89 0.990.9955

0.490.49 0.510.51НетНет 0.800.80 0.020.02 0.570.57 0.030.03 0.060.06 0.170.17 0.110.11 0.000.00

55

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

Наивный Байесовский методНаивный Байесовский метод

И пусть известно, что некий товарищ проголосовал какИ пусть известно, что некий товарищ проголосовал как

P(P(Д) = Д) = 0.2 * 0.57 * 0.94 * 0.89 * 0.490.2 * 0.57 * 0.94 * 0.89 * 0.49 = 0.0467, Р(Р) = = 0.0467, Р(Р) = 0.98* 0.03 * 0.83 * 0.98* 0.03 * 0.83 * 0.995 * 0.510.995 * 0.51 = = 0.01240.0124Окончательно нормируя по формуле Байеса имеем Р(Д) = 0.0467 / Окончательно нормируя по формуле Байеса имеем Р(Д) = 0.0467 / (0.0467 + 0.0124) = (0.0467 + 0.0124) = 0.790.79, Р(Р) = 0.0124 / (0.0467 + 0.0124) = 0.21, Р(Р) = 0.0124 / (0.0467 + 0.0124) = 0.21

Наивность состоит в том, что все атрибуты (мнения по Наивность состоит в том, что все атрибуты (мнения по вопросам) считаются независимымивопросам) считаются независимыми

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

Где еще грабли?Где еще грабли?Предположим, в выборке не встретилось демократов, Предположим, в выборке не встретилось демократов, проголосовавших «Да» по первому вопросупроголосовавших «Да» по первому вопросуТогда Р(Д) = 0 * ... = 0, и товарищ никогда не будет отнесен к Тогда Р(Д) = 0 * ... = 0, и товарищ никогда не будет отнесен к демократамдемократамЧтобы этого избежать, в таблице везде должны быть ненулевые Чтобы этого избежать, в таблице везде должны быть ненулевые значениязначенияЛибо расширять выборку, либо вводить априорные вероятности в Либо расширять выборку, либо вводить априорные вероятности в нулевых ячейкахнулевых ячейках

Death TaxDeath Tax Homeland Homeland SecuritySecurity

Help Help America America

VoteVote

Child Child AbductionAbduction

Кто он?Кто он?

Да Нет Да Да ???

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

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

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

Алгоритм Алгоритм ID3, ID3, предложил в 1986 г. Росс Куинланпредложил в 1986 г. Росс Куинлан (Quinlan) (Quinlan), , Сиднейский ун-тСиднейский ун-тВпоследствии переработан в С4.5, к-й способен Впоследствии переработан в С4.5, к-й способен обрабатывать численные атрибуты, пропущенные обрабатывать численные атрибуты, пропущенные значения, отфильтровывать шумзначения, отфильтровывать шум

Некоторые деревья позволяют решать регрессионные Некоторые деревья позволяют решать регрессионные задачизадачи

Classification and Regression Tree (CART), Classification and Regression Tree (CART), предложил в 1984 предложил в 1984 г. проф. Лео Бриман (г. проф. Лео Бриман (Brieman), Brieman), каф. статистики ун-та каф. статистики ун-та Беркли (Калифорния)Беркли (Калифорния)

В SQL Server 2005 исп-ся гибридный алгоритм В SQL Server 2005 исп-ся гибридный алгоритм деревьев, позволяющий решать задачи деревьев, позволяющий решать задачи классификации, регрессии и ассоциацииклассификации, регрессии и ассоциации

Разработка Microsoft Разработка Microsoft ResearchResearch

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

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

Пример: опрос выпускниковПример: опрос выпускников

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

IQIQ Влияние Влияние родителейродителей

Доход Доход семьисемьи ПолПол

ПродолжитПродолжить ь

образованиобразованиее

ВысоВысокийкий

СредСреднийний

НизкНизкийий ДаДа НетНет ВысоВысо

кийкийНизкНизкийий ММ ЖЖ

300 500 200 700 300 400 600 500 500 Да

100100 10001000 900900 400400 11660000 400400 16001600 11001100 900900 НетНет

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

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

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

0

100

200

300

400

500

600

700

800

900

1000

Высокий Средний Низкий

IQ

Да

Нет

0

200

400

600

800

1000

1200

1400

1600

Да Нет

Влияние родителей

Да

Нет

0

200

400

600

800

1000

1200

1400

1600

Высокий Низкий

Доход семьи

Да

Нет

0

200

400

600

800

1000

1200

М Ж

Пол

Да

Нет

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

Деревья решенийДеревья решенийПримерно так же поступает SQL Server Примерно так же поступает SQL Server Только вместо сравнения столбиков по высоте, он считает Только вместо сравнения столбиков по высоте, он считает энтропию энтропию E(pE(p11,...,p,...,pnn) = ) = ΣΣ-p-piiloglog22ppii

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

Выс. Сред. Низ. Да Нет Выс. Низ. М ЖКол-во "Да" 300 500 200 700 300 400 600 500 500Кол-во "Нет" 100 1000 900 400 1600 400 1600 1100 900

Сумма столбца 400 1500 1100 1100 1900 800 2200 1600 14000.750 0.333 0.182 0.636 0.158 0.500 0.273 0.313 0.3570.250 0.667 0.818 0.364 0.842 0.500 0.727 0.688 0.643

Энтропия 0.811 0.918 0.684 0.946 0.629 1.000 0.845 0.896 0.940Сумма энтропий по

атрибуту

Нормализованные кол-ва

2.414 1.575 1.845 1.836

IQ Вл-е родителей Доход семьи Пол

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

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

ART – AutoRegression TreeART – AutoRegression Tree

Авторегрессия работает с дискретным временем и ставит Авторегрессия работает с дискретным временем и ставит задачу прогнозирования задачу прогнозирования XXtt = f(X = f(Xt-1t-1, …, X, …, Xt-nt-n) + ) + εε(t), (t), где где εε – – шум, шум, n – n – порядок регрессиипорядок регрессииТак выглядит процесс преобразованияТак выглядит процесс преобразования

МесяцМесяц МолокоМолоко ХлебХлеб

11.20011.20055

50005000 45004500

12.20012.20055

52005200 46004600

01.20001.20066

52405240 51305130

02.20002.20066

63906390 62806280

03.20003.20066

67506750 61606160

04.20004.20066

62806280 65606560

...... ...... ......

IDIDМолокоМолоко ХлебХлеб

t-2t-2 t-1t-1 tt t-2t-2 t-1t-1 tt

11 50005000 52005200 52405240 45004500 46004600 51305130

22 52005200 52405240 63906390 46004600 51305130 62806280

33 52405240 63906390 67506750 51305130 62806280 66160160

44 63906390 67506750 62806280 62806280 66160160 66556060

...... ...... …… …… …… …… ......

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

Анализ временного рядаАнализ временного рядаВ случае линейной авторегрессии уравнение приобретает В случае линейной авторегрессии уравнение приобретает вид X(t)вид X(t) == aa11XX((t-1t-1)) ++ aa22X(tX(t--2)2) ++ ...... ++ aannX(tX(t--n)n) + ε+ ε((tt))Для нахождения коэффициентов авторегрессии Для нахождения коэффициентов авторегрессии используется метод Юля – Уолкера (используется метод Юля – Уолкера (Yule – WalkerYule – Walker, 1927 г., 1927 г.) ) минимизации среднеквадратичного отклонения между минимизации среднеквадратичного отклонения между модельным и наблюдаемым временным рядом модельным и наблюдаемым временным рядом Алгоритм был усовершенствован и распространен на Алгоритм был усовершенствован и распространен на область деревьев решений в 2001 г. сотрудниками область деревьев решений в 2001 г. сотрудниками Microsoft Microsoft Research Research

Chris Meek, David Maxwell Chickering, David Heckerman Chris Meek, David Maxwell Chickering, David Heckerman и др.и др.См., напр., См., напр., ftp://ftp.research.microsoft.com/pub/tr/TR-2004-86.pdfftp://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)

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

КластеризацияКластеризацияНахождение «центров конденсации» внутри данныхНахождение «центров конденсации» внутри данных

Можно еще определить как отыскание или введение Можно еще определить как отыскание или введение переменной, классифицирующей данныепеременной, классифицирующей данныеНапример, в аэропорту мы видим сгустки пассажиров: одни Например, в аэропорту мы видим сгустки пассажиров: одни одеты в майки, шорты и бейсболки (Кластер 1), другие – в одеты в майки, шорты и бейсболки (Кластер 1), другие – в валенки, шубы и ушанки (Кластер 2)валенки, шубы и ушанки (Кластер 2)

Случай «валенки + шорты», равно как и «майка + ушанка» и пр., Случай «валенки + шорты», равно как и «майка + ушанка» и пр., является нетипичным и встречается редкоявляется нетипичным и встречается редко

Такой переменной будет, что одни прилетели с севера, Такой переменной будет, что одни прилетели с севера, другие – с югадругие – с юга

Алгоритм работы кластерного алгоритма удобно Алгоритм работы кластерного алгоритма удобно представлять себе на примере представлять себе на примере n-n-мерного пространства, в мерного пространства, в которое насыпаны точкикоторое насыпаны точки

Оси – это атрибуты, точки – это случаиОси – это атрибуты, точки – это случаиИсходим из того, что в начальный момент уже есть какие-то Исходим из того, что в начальный момент уже есть какие-то кластерыкластеры

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

Каждая точка, очевидно, будет относиться к какому-нибудь Каждая точка, очевидно, будет относиться к какому-нибудь кластерукластеруПосле этого пересчитываем центры кластеров как среднее После этого пересчитываем центры кластеров как среднее всех точек, которые в него попаливсех точек, которые в него попалиПовторяем переприсвоение точек, пока они не перестанут Повторяем переприсвоение точек, пока они не перестанут перемещаться между кластерами (алгоритм сошелся)перемещаться между кластерами (алгоритм сошелся)

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

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

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

X

X

X

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

КластеризацияКластеризацияДва принципа в основе алгоритма Два принципа в основе алгоритма

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

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

Вообще говоря, кластеризация – достаточно дорогой Вообще говоря, кластеризация – достаточно дорогой алгоритмалгоритм

В процессе конвергенции (т.е. пока кластера устаканятся), В процессе конвергенции (т.е. пока кластера устаканятся), требуются многочисленные итерации через модельные данныетребуются многочисленные итерации через модельные данные

Которых может быть очень и очень многоКоторых может быть очень и очень многоПроблемы масштабируемости решаются путемПроблемы масштабируемости решаются путем

Улучшения сходимости методаУлучшения сходимости методаОтбрасывания несущественных точекОтбрасывания несущественных точек

Которые оцениваются как уже не могущие повлиять на Которые оцениваются как уже не могущие повлиять на изменение кластеровизменение кластеров

......

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

Sequence ClusteringSequence Clustering

Выше мы рассматривали группировку товаров в сгустки Выше мы рассматривали группировку товаров в сгустки по степени похожести, но нас не волновал порядок их по степени похожести, но нас не волновал порядок их приобретенияприобретения

Существуют задачи, в которых порядок тоже важенСуществуют задачи, в которых порядок тоже важен

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

Т.н. Т.н. clickstream analysisclickstream analysis

Алгоритм Sequence Clustering в составе Microsoft SQL Алгоритм Sequence Clustering в составе Microsoft SQL Server базируется на марковских цепях и теории Server базируется на марковских цепях и теории конечных автоматовконечных автоматов

А.А.Марков, 1856-1922, ординарный член Санкт-А.А.Марков, 1856-1922, ординарный член Санкт-Петербургской Академии Наук, известный русский Петербургской Академии Наук, известный русский математик, автор более 70 работ по теории чисел, теории математик, автор более 70 работ по теории чисел, теории приближения функций, теории дифференциальных приближения функций, теории дифференциальных уравнений, теории вероятностейуравнений, теории вероятностей

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

Sequence ClusteringSequence Clustering

00

AA

CC

GG

TT

11

0.350.35

0.150.15

0.150.15

0.250.25

0.100.10

P(xP(xii = G | x = G | xi-1i-1=A) = 0.15=A) = 0.15P(xP(xii = C | x = C | xi-1i-1=A) = 0.15=A) = 0.15P(xP(xii = T | x = T | xi-1i-1=A) = 0.25=A) = 0.25P(xP(xii = A | x = A | xi-1i-1=A) = 0.35=A) = 0.35P(xP(xii = End | x = End | xi-1i-1=A) = =A) = 0.100.10

AA GG CC TT

AA 0.350.35 0.150.15 0.150.15 0.20.255

GG 0.150.15 0.350.35 0.250.25 0.10.155

CC 0.150.15 0.250.25 0.350.35 0.10.155

TT 0.250.25 0.150.15 0.150.15 0.30.355

Матрица вероятностей Матрица вероятностей перехода состоянийперехода состояний

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

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

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

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

Вероятность последовательности последовательных Вероятность последовательности последовательных состояний длины состояний длины L:L: Р(х Р(хLL, x, xL-1L-1, x, xL-2L-2, …, x, …, x11) = ) = Р(хР(хLL | x | xL-1L-1, x, xL-2L-2, …, x, …, x11) * ) * Р(Р(xxL-1L-1 | x | xL-2L-2, …, x, …, x11) * … * ) * … * Р(Р(xx11))

Обычные марковские цепи 1-го порядкаОбычные марковские цепи 1-го порядкаЦепь Цепь n-n-го порядка из го порядка из k k состояний сводится к цепи 1-го состояний сводится к цепи 1-го порядка из порядка из kknn состоянийсостоянийНапример, цепь 2-го порядка на пред.слайде сводится к Например, цепь 2-го порядка на пред.слайде сводится к цепи 1-го порядка из состояний цепи 1-го порядка из состояний AA, AC, AG, AT, CA, CC, CG,CT, AA, AC, AG, AT, CA, CC, CG,CT, GA, GC, GG, GT, TA, TC, TG, TTGA, GC, GG, GT, TA, TC, TG, TT = 4 = 422 = 16 = 16

Для марковской цепи 1-го порядка Р(хДля марковской цепи 1-го порядка Р(хLL, x, xL-1L-1, x, xL-2L-2, …, x, …, x11) =) = Р(х Р(хLL | | xxL-1L-1) * ) * Р(Р(xxL-1L-1 | x | xL-2L-2) * ... * Р(х) * ... * Р(х22 | x| x11) * Р() * Р(xx11))(2)(2)

Скрытые марковские цепиСкрытые марковские цепиПоследовательность состояний перехода неизвестнаПоследовательность состояний перехода неизвестнаХарактеризуется 5-ю атрибутами: набором состояний, Характеризуется 5-ю атрибутами: набором состояний, выходным алфавитом, вероятностями начальных состояний, выходным алфавитом, вероятностями начальных состояний, вероятностями перехода между состояниями и выходными вероятностями перехода между состояниями и выходными вероятностями каждого конкретного состояниявероятностями каждого конкретного состоянияПрименяются в куче мест от распознавания речи до Применяются в куче мест от распознавания речи до расшифровки геномарасшифровки генома

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

Sequence ClusteringSequence Clustering

В текущей версии SQL Server используются В текущей версии SQL Server используются наблюдаемые марковские цепинаблюдаемые марковские цепиКаждый кластер соответствует своей цепи со своей Каждый кластер соответствует своей цепи со своей матрицей переходаматрицей переходаКластерный анализ для скалярных атрибутов Кластерный анализ для скалярных атрибутов выполняется в соответствии с ЕМ-алгоритмом:выполняется в соответствии с ЕМ-алгоритмом:

Инициализировать параметры моделиИнициализировать параметры моделиОтнести испытание (Отнести испытание (case) case) к каждому из к каждому из K K кластеров с той кластеров с той или иной вероятностью (шаг Е – или иной вероятностью (шаг Е – expectation)expectation)Пересчитать параметры модели, основываясь на взвешенной Пересчитать параметры модели, основываясь на взвешенной принадлежности каждого испытания (шаг М – принадлежности каждого испытания (шаг М – максимизация)максимизация)Если наступило схождение, закончить, иначе вернуться к Если наступило схождение, закончить, иначе вернуться к шагу 2шагу 2

Последовательность состояний перехода – векторный Последовательность состояний перехода – векторный атрибутатрибут

Хранится как вложенная таблицаХранится как вложенная таблицаВероятность вхождения последовательности в кластер Р(х Вероятность вхождения последовательности в кластер Р(х | | C)C) считается по марковскому закону считается по марковскому закону (2) (2), а предсказание , а предсказание кластера делается по формуле Байеса (1), где Р(С) – кластера делается по формуле Байеса (1), где Р(С) – предельная вероятность кластера С - также известна предельная вероятность кластера С - также известна (например, его вес)(например, его вес)

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

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

МакКаллоком и Питтсом (МакКаллоком и Питтсом (Warren McCullochWarren McCulloch, , Walter PittsWalter Pitts) в ) в рамках работ по изучению биологической нервной сети была рамках работ по изучению биологической нервной сети была построена модель линейного порогового нейронапостроена модель линейного порогового нейрона

Хебб (Хебб (Donald Hebb) Donald Hebb) в 1949 г. в своей работе «в 1949 г. в своей работе «The The Organization of BehaviorOrganization of Behavior» сформулировал принцип » сформулировал принцип обучаемости (обучаемости (hebbian hebbian re-inforcement learning systemsre-inforcement learning systems))

The weight between two neurons will increase if the two neurons The weight between two neurons will increase if the two neurons activate simultaneously; it is reduced if they activate separatelyactivate simultaneously; it is reduced if they activate separatelyИными словами, эффективность переменного синапса между Иными словами, эффективность переменного синапса между двумя нейронами увеличивается в процессе повторяющейся двумя нейронами увеличивается в процессе повторяющейся активации одного нейрона другим через этот синапсактивации одного нейрона другим через этот синапс

В 1958 г. Розенблатт (Frank Rosenblatt, «В 1958 г. Розенблатт (Frank Rosenblatt, «Principles of Principles of NeurodynamicsNeurodynamics») рассматривает перцептрон, первую ») рассматривает перцептрон, первую NNNN

До этого были введены линейный ассоциатор и адаптивная До этого были введены линейный ассоциатор и адаптивная машина Марвина Мински (1951 г.)машина Марвина Мински (1951 г.)

1982 г. - разработка Хопфилдом (1982 г. - разработка Хопфилдом (John Hopfield)John Hopfield), , Калифорнийский Технологический ин-т, ИНС с Калифорнийский Технологический ин-т, ИНС с полностью связанной структурой (полностью связанной структурой (backpropagation) backpropagation) и и оригинальным алгоритмом настройки весоворигинальным алгоритмом настройки весов

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

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

Узлы бывают входные, скрытые, выходныеУзлы бывают входные, скрытые, выходныеКаждое ребро связывает узлы с определенным весомКаждое ребро связывает узлы с определенным весомНаправление ребра обозначает поток данных во время предсказанияНаправление ребра обозначает поток данных во время предсказания

Входные узлы формируют первый слой сетиВходные узлы формируют первый слой сетиВ большинстве сетей каждый входящий узел представляет один В большинстве сетей каждый входящий узел представляет один какой-нибудь атрибут (возраст, пол, доход, ...)какой-нибудь атрибут (возраст, пол, доход, ...)Первоначальные значения входных атрибутов нормируются к одному Первоначальные значения входных атрибутов нормируются к одному интервалу, напр., (интервалу, напр., (-1; 1-1; 1))

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

Выходной слойВыходной слойКак правило, узел представляет предсказываемый атрибутКак правило, узел представляет предсказываемый атрибутПосле обработки в выходном слое результат приводится к своей После обработки в выходном слое результат приводится к своей первоначальной шкалепервоначальной шкале

Сеть Microsoft Сеть Microsoft Neural Network Neural Network является является feedforward =feedforward = прямого прямого распространения, нерекуррентнаяраспространения, нерекуррентная

В других сетях, следуя направлениям ребер, можно снова попасть на В других сетях, следуя направлениям ребер, можно снова попасть на тот же узелтот же узел

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

Как устроен нейронКак устроен нейронНейрон – единица обработкиНейрон – единица обработкиΣΣ – комбинация входов – комбинация входов

Возможны разные варианты: среднее, Возможны разные варианты: среднее, max, and, ormax, and, orSQL Server использует наиболее популярный SQL Server использует наиболее популярный метод – взвешенная суммаметод – взвешенная суммаКоторая затем передается ф-ции активацииКоторая затем передается ф-ции активации

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

ΣΣ

ff

Вход 1Вход 1 Вход 2Вход 2 Вход 3Вход 3 Вход 4Вход 4

-1.2

-1

-0.8

-0.6

-0.4

-0.2

0

0.2

0.4

0.6

0.8

1

1.2

-5 -4 -3 -2 -1 0 1 2 3 4 5

sigm(x)

th(x)

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

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

На начальном этапе веса расставляются случайно из На начальном этапе веса расставляются случайно из диапазона (диапазона (-1; 1-1; 1))

Во время каждой обучающей итерации сеть Во время каждой обучающей итерации сеть воспринимает вход, генерирует предсказания в выходном воспринимает вход, генерирует предсказания в выходном слое, вычисляет ошибку и корректирует веса, используя слое, вычисляет ошибку и корректирует веса, используя back-, back-, или retroили retro--propropapagation (алгоритм обратного gation (алгоритм обратного распространения)распространения)Функция ошибкиФункция ошибки

Мера расхождения между выходом с нейрона и истинным Мера расхождения между выходом с нейрона и истинным значением, известным в тренировочных данныхзначением, известным в тренировочных данных

Напр., двоичная пороговая ф-ция: если модуль разницы Напр., двоичная пороговая ф-ция: если модуль разницы <<== 0.5, 0.5, то то 0, если больше, то 10, если больше, то 1

SQL Server использует следующие функции ошибок*SQL Server использует следующие функции ошибок*Для выходного слоя Для выходного слоя ErrErrii = O = Oii(1 - O(1 - Oii)(T)(Tii - O - Oii)), где , где OOii – выход с – выход с i-i-го го нейрона выходного слоя, нейрона выходного слоя, TTii – истинное значение – истинное значение

Для скрытого слоя Для скрытого слоя ErrErrii = = OOii(1 - O(1 - Oii)) ΣΣjj Err Errjj w wijij, где , где OOii – выход с – выход с i-i-го го нейрона скрытого слоя, Errнейрона скрытого слоя, Errjj – ошибка – ошибка j-j-го нейрона в выходном слое, го нейрона в выходном слое, wwijij – вес связи между – вес связи между i-i-м и м и j-j-м нейронамим нейронами* В действительности они немного различаются для дискретных и непрерывных * В действительности они немного различаются для дискретных и непрерывных

значений значений

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

Корректировка ошибки Корректировка ошибки (обучение)(обучение)

11

22

33

44

55

66WW2424(0.2)(0.2)

ВозрастВозраст

ПолПол

ДоходДоход

Кредитный рискКредитный риск

WW4646(-0.3)(-0.3)

WW3535(-0.3)(-0.3)

WW5656(-0.1)(-0.1)

WW1515(0.1)(0.1)

WW1414(0.2)(0.2)

WW2525(-0.4)(-0.4)

WW3434(0.2)(0.2)

Рассмотрим ошибку как ф-цию от весов WРассмотрим ошибку как ф-цию от весов Wijij

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

В качестве ф-ции корректировки весов SQL Server использует В качестве ф-ции корректировки весов SQL Server использует метод градиентного спуска*метод градиентного спуска*

wwijij = w = wijij + l * Err + l * Errj j * O* Oii, где , где l – l – некая константа из (-1; 1) под названием темп некая константа из (-1; 1) под названием темп обучения (обучения (learning rate), learning rate), которая имеет высокое значение на начальных которая имеет высокое значение на начальных итерациях для повышения скорости и снижается к концу обучения для итерациях для повышения скорости и снижается к концу обучения для повышения точностиповышения точности

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

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

Подключение собственного Подключение собственного алгоритмаалгоритма

Должен имплементировать два Должен имплементировать два основных интерфейсаосновных интерфейса

IDMAlgorithmMetadata – метаданные IDMAlgorithmMetadata – метаданные (фабрика)(фабрика)IDMAlgorithm – собственно, алгоритм (по экземпляру на объект)

Есть еще масса вспомогательныхЕсть еще масса вспомогательныхIDMPersist, IDMPushCaseSet, IDMCaseProcessor, ...

Принимает данные в виде потока пар «атрибут-значение»

Таким образом абстрагируясь от источника

Пример на тему написания и Пример на тему написания и подключения нового подключения нового DM-DM-алгоритмаалгоритма

См. См. MSDNMSDN

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

СтандартыСтандарты Data Mining Data Mining

SQL/MM for DMSQL/MM for DM

CWM for DMCWM for DM

JDM JDM OLE DB for DMOLE DB for DM

XMLA for DMXMLA for DMPL/SQL PL/SQL

DMXDMX

PMMLPMML

CRISP-DMCRISP-DM

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

Стандарты Стандарты Data MiningData MiningСитуация напоминает рынок СУБД четверть Ситуация напоминает рынок СУБД четверть века назад до официального принятия века назад до официального принятия реляционной парадигмы и SQL реляционной парадигмы и SQL Единственными отраслевыми стандартами Единственными отраслевыми стандартами являютсяявляются PMML PMML и и CRISP-DM CRISP-DM

Predictive Model Markup LanguagePredictive Model Markup LanguageОпределен Data Mining Group (Определен Data Mining Group (dmg.orgdmg.org): SAS, SPSS, IBM, ): SAS, SPSS, IBM, Microsoft, Oracle, ...Microsoft, Oracle, ...Представляет собой XML-формат хранения модели для Представляет собой XML-формат хранения модели для наиболее распространенных алгоритмовнаиболее распространенных алгоритмовНе есть программный интерфейс для Не есть программный интерфейс для Data Mining, Data Mining, фокусируется на описании содержания моделифокусируется на описании содержания модели: : словарь словарь данных, схема добычи, трансформация полей, статистика, данных, схема добычи, трансформация полей, статистика, ......

Crisp-DMCrisp-DMПродукт усилий Продукт усилий SPSS (тогда ISL), NCR и DaimlerChryslerФактически это методологияФактически это методологияОписывает жизненный цикл проекта Описывает жизненный цикл проекта Data Mining Data Mining ((последовательность фаз, составные задачи, что на входе последовательность фаз, составные задачи, что на входе и выходе каждой)и выходе каждой), , не опускаясь до частных методик не опускаясь до частных методик добычидобычи

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

Стандарты Стандарты Data MiningData Mining

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

Microsoft, Oracle, IBMMicrosoft, Oracle, IBMЧто не удивительно, если принимать в расчет объемы Что не удивительно, если принимать в расчет объемы данных, инсталляции и существенные инвестирования в данных, инсталляции и существенные инвестирования в Data MiningData Mining

Естественно, Естественно, ““стандартыстандарты” ” каждого отличаются от каждого отличаются от других, хотя в большинстве обслуживают одни и те же других, хотя в большинстве обслуживают одни и те же нуждынужды

ISO SQL/Multimedia (SQL MM) – ISO SQL/Multimedia (SQL MM) – потоковые многофрагментные потоковые многофрагментные расширения SQL на область полнотекста, геопространства, расширения SQL на область полнотекста, геопространства, мультимедиа и пр.мультимедиа и пр.

См. доклад Сергея Кузнецова «Предвестники новых манифестов См. доклад Сергея Кузнецова «Предвестники новых манифестов управления данными»управления данными»Секция по Секция по Data Mining Data Mining была введена в этот стандарт по настоянию была введена в этот стандарт по настоянию IBMIBMКонцепция и синтаксис очень близки к Концепция и синтаксис очень близки к DMXDMX

Java Data Mining API (JSR-73) – Java-Java Data Mining API (JSR-73) – Java-пакет, позволяющий пакет, позволяющий Java-Java-приложениям взаимодействовать с приложениям взаимодействовать с Data Mining-Data Mining-движкомдвижком

Вдохновлялся и лоббировался Oracle Вдохновлялся и лоббировался Oracle Программная модель до неприличия напоминает Программная модель до неприличия напоминает C# C# и и AMOAMO

OLE DB for Data Mining OLE DB for Data Mining и и XML/AXML/AСтандарты, разрабатываемые и продвигаемые Microsoft при Стандарты, разрабатываемые и продвигаемые Microsoft при поддержке поддержке Hyperion, SAS, Angoss, KXEN, Megaputer

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

Расширение интерфейсов OLE Расширение интерфейсов OLE DB на область DB на область Data MiningData Mining

24 мая 1999 г.24 мая 1999 г.Пресс-релиз «Пресс-релиз «Microsoft Announces Vendor Initiative To Microsoft Announces Vendor Initiative To Create Open Data Mining SpecificationCreate Open Data Mining Specification»»Microsoft Corp. today announced a new initiative to Microsoft Corp. today announced a new initiative to extend OLE DB data access interfaces, providing software extend OLE DB data access interfaces, providing software vendors and application developers with an open interface vendors and application developers with an open interface to more efficiently integrate data mining tools and to more efficiently integrate data mining tools and applications.applications.A joint effort between the Microsoft® SQL Server™ A joint effort between the Microsoft® SQL Server™ development group and Microsoft Research, OLE DB for development group and Microsoft Research, OLE DB for data mining exemplifies Microsoft's commitment to data mining exemplifies Microsoft's commitment to delivering leading-edge technology to the developer delivering leading-edge technology to the developer community community

http://www.microsoft.com/presspass/press/1999/Mhttp://www.microsoft.com/presspass/press/1999/May99/Dataminingpr.mspxay99/Dataminingpr.mspx

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

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

.NET WinForm Controls в составе клиентской части SQL Server – Data Viewers

Позволяют просматривать модель, ее характеристики, профили, дискриминацию, lift chart для оценки точности и пр.

Можно расширить этот набор, создав собственные элементы управления

Реализовав интерфейс IMiningModelViewerControlСв-ва MiningModel и ConnectionString, метод LoadViewerDataПо такому же принципу построены штатные DataViewersПримеры также имеются в документации

Можно создать управляющие элементы с нуляВытащив все, что требуется, с сервера при помощи OLE DB for DM и отрисовав это под свой вкус и цвет

Аналогичная ситуация с элементами управления для Web

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

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

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

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

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

ВизуализацияВизуализацияКроме того, месяц назад вышел Кроме того, месяц назад вышел Community Pack for SQL Community Pack for SQL Server 2005Server 2005

http://www.microsoft.com/downloads/details.aspx?http://www.microsoft.com/downloads/details.aspx?FamilyID=AE94BB12-C839-4B4F-A71B-FamilyID=AE94BB12-C839-4B4F-A71B-412FB3A0500E&displaylang=en 412FB3A0500E&displaylang=en Набор редистрибутируемых компонентНабор редистрибутируемых компонент

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

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

В его составеВ его составе

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

Применимость Применимость Data MiningData Mining

Как и любой инструмент, требует навыков в своем Как и любой инструмент, требует навыков в своем примененииприменении

Факт попадания молотком по пальцам не обязательно Факт попадания молотком по пальцам не обязательно означает, что молоток плохойозначает, что молоток плохой

Между входными параметрами модели и Между входными параметрами модели и предсказаниями должна быть (пусть неявная) связьпредсказаниями должна быть (пусть неявная) связь

Нельзя предсказать погоду на завтра, зная свой размер Нельзя предсказать погоду на завтра, зная свой размер обувиобуви

Поиск закономерностей предполагает закономерности. Поиск закономерностей предполагает закономерности. Бессмысленно их искать в равномерном распределенииБессмысленно их искать в равномерном распределении

Нельзя предсказать результат лотереи, если она проводится Нельзя предсказать результат лотереи, если она проводится честночестно

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

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

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

Список полезных ресурсовСписок полезных ресурсовMSDN MSDN и документацияи документация

http://msdn2.microsoft.com/en-us/library/http://msdn2.microsoft.com/en-us/library/ms174949(SQL.90).aspx ms174949(SQL.90).aspx

TechnetTechnethttp://www.microsoft.com/technet/prodtechnol/sql/2005/http://www.microsoft.com/technet/prodtechnol/sql/2005/intro2dm.mspxintro2dm.mspx

SQL Server SQL Server Data Mining Technical CommunityData Mining Technical Communityhttp://www.sqlserverdatamining.com/DMCommunity/http://www.sqlserverdatamining.com/DMCommunity/

Оптимизация и настройка SQL Server Оптимизация и настройка SQL Server http://www.sql-server-performance.com/http://www.sql-server-performance.com/ec_data_mining.asp ec_data_mining.asp

Отечественные ресурсыОтечественные ресурсыhttp://www.citforum.ru/ http://www.citforum.ru/ http://www.osp.ru/ http://www.osp.ru/ http://olap.ruhttp://olap.ruhttp://www.gotdotnet.ru/http://www.gotdotnet.ru/http://www.rsdn.ru/http://www.rsdn.ru/

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

Список литературыСписок литературы

1.1. ««Data Mining with SQL Server 2005Data Mining with SQL Server 2005»» ZhaoHui Tang, Jamie MacLennanZhaoHui Tang, Jamie MacLennanWiley Publishing, Oct 2005, ISBN: 0471462616Wiley Publishing, Oct 2005, ISBN: 0471462616

2.2. Building Data Mining Solutions with OLE DB for DM and XML for Building Data Mining Solutions with OLE DB for DM and XML for AnalysisAnalysis

Zhaohui Tang, Jamie Maclennan, Peter Pyungchul KimZhaohui Tang, Jamie Maclennan, Peter Pyungchul Kimhttp://www.sigmod.org/sigmod/record/issues/0506/p80-column-http://www.sigmod.org/sigmod/record/issues/0506/p80-column-seligman.pdf seligman.pdf

3.3. Unearth the New Data Mining Features of Analysis Services 2005 Unearth the New Data Mining Features of Analysis Services 2005 Jamie MacLennanJamie MacLennanhttp://msdn.microsoft.com/msdnmag/issues/04/09/http://msdn.microsoft.com/msdnmag/issues/04/09/AnalysisServices2005/default.aspx AnalysisServices2005/default.aspx

4.4. Detect Anomalies in Excel Spreadsheets. Use SQL Server 2005 Data Detect Anomalies in Excel Spreadsheets. Use SQL Server 2005 Data Mining inside Excel.Mining inside Excel.

Bogdan Crivat, Jamie MacLennanBogdan Crivat, Jamie MacLennanhttp://msaccess.advisorguide.com/doc/14413http://msaccess.advisorguide.com/doc/14413

5.5. SQL Server 2005 Data Mining. Create a Web Cross-sell ApplicationSQL Server 2005 Data Mining. Create a Web Cross-sell ApplicationRaman Iyer and Jesper LindRaman Iyer and Jesper Lindhttp://www.aspnetpro.com/newsletterarticle/2004/10/asp200410ri_l/http://www.aspnetpro.com/newsletterarticle/2004/10/asp200410ri_l/asp200410ri_l.asp asp200410ri_l.asp

6.6. The Microsoft Data Warehouse Toolkit : With SQL Server 2005 and The Microsoft Data Warehouse Toolkit : With SQL Server 2005 and the Microsoft Business Intelligence Toolset the Microsoft Business Intelligence Toolset

Joy Mundy, Warren Thornthwaite, Ralph KimballJoy Mundy, Warren Thornthwaite, Ralph KimballWiley Publishing, Feb 2006, ISBN: 0471267155 Wiley Publishing, Feb 2006, ISBN: 0471267155

7.7. ««Applied Microsoft Analysis Services 2005 and Microsoft Business Applied Microsoft Analysis Services 2005 and Microsoft Business IntelligenceIntelligence»»

Teo LachevTeo LachevPrologika Press, Nov 2005, ISBN: 0976635305Prologika Press, Nov 2005, ISBN: 0976635305

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

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

Спасибо за Спасибо за вниманиевнимание

Вопросы?Вопросы?

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