ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
К.С. Зайцев
Применение ...
273 downloads
637 Views
2MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ЯДЕРНЫЙ УНИВЕРСИТЕТ «МИФИ»
К.С. Зайцев
Применение методов Data Mining для поддержки процессов управления IT-услугами Учебное пособие
Москва 2009
УДК 004.4(075)+ 004.65(075) + 007.51(075) ББК 32.973-018.2я7+32.973.26-018.2я7+30.17я7 З-17 Зайцев К.С. Применение методов Data Mining для поддержки процессов управления IT-услугами: учебное пособие. – М.: МИФИ, 2009. – 96 с. Учебное пособие ориентировано на студентов, специализирующихся по направлению «Прикладная математика», в части практического применения технологий глубокого анализа (Data Mining) структурированных хронологических данных при решении задач из области управления деятельностью IT-служб крупных предприятий (IT Service Management) и социальных сетей. В пособии описаны наиболее популярные сегодня методы глубокого анализа данных (методы анализа временных рядов, граничные методы, методы деревьев решений и др.) и области их эффективного использования; исследованы программные продукты Data Mining, а также приведены примеры решения конкретных практических задач анализа из области ITSM. Предназначено как для студентов старших курсов, так и для аспирантов и научных работников, специализирующихся в области технологий организации и систематизации контента для добычи новых знаний, а также технологий параллельной и распределенной обработки данных. Рецензент д-р физ.-мат. наук, проф. О.В. Нагорнов Рекомендовано редсоветом МИФИ в качестве учебного пособия ISBN 978-5-7262-1150-3
©
Национальный исследовательский ядерный университет «МИФИ», 2009
Редактор Н.Н. Антонова Подписано в печать 22.05.2009. Формат 60х84 1/16 П.л. 6,0. Уч.-изд.л. 6,0. Тираж 100 экз. Изд. № 050-1. Заказ № 287 Национальный исследовательский ядерный университет «МИФИ». Типография МИФИ. 115409, Москва, Каширское шоссе, 31
ОГЛАВЛЕНИЕ Введение .........................................................................................................................4 1. Методы анализа структурированных данных с использованием технологии Data Mining ..............................................................5 1.1. Анализ временных рядов ...............................................................................5 1.2. Граничные методы..........................................................................................7 1.3. Деревья решений. ..........................................................................................9 1.4. Иерархические методы кластерного анализа .............................................11 1.5. Неиерархические методы кластерного анализа .........................................11 1.6. Методы рассуждений на основе аналогичных случаев .............................13 1.7. Линейная регрессия ......................................................................................14 1.8. Логистическая регрессия..............................................................................14 1.9. Наивная байесовская классификация..........................................................16 1.10. Нейронные сети ............................................................................................17 1.11. Поиск ассоциативных правил ......................................................................18 2. Алгоритмы нахождения деревьев решений.......................................................18 2.1. Описание дерева решений ...........................................................................18 2.2. Анализ возможностей и ограничений метода деревьев решений.............23 2.3. Алгоритм С 4.5..............................................................................................24 2.4. Алгоритм CART............................................................................................32 3. Алгоритмы нахождения ассоциативных правил..............................................48 3.1. Понятие ассоциативного правила ...................................................................48 3.2. Анализ возможностей и ограничений метода поиска ассоциативных правил..................................................................................51 3.3. Алгоритм Apriori...........................................................................................52 3.4. Выявление обобщенных ассоциативных правил .......................................58 3.5. Алгоритм вычисления обобщенных ассоциативных правил ....................63 3.6. Улучшенный алгоритм поиска часто встречающихся множеств .............66 3.7. Прогноз развития ..........................................................................................68 4. Программные продукты, реализующие технологию Data Mining.................70 5. Управление ИТ-услугами .....................................................................................76 5.1. Процессы управления ИТ-услугами............................................................76 5.2. Процесс управления инцидентами ..............................................................77 5.3. Процесс управления проблемами................................................................78 5.4. Процесс управления изменениями ..............................................................79 5.5. Процесс управления активами и конфигурациями ....................................80 6. Практическое применение методов Data Mining в задачах ITSM .................81 6.1. Анализ причин нарушения сроков выполнения заявок.............................81 6.2. Анализ причин нарушения сроков выполнения нарядов ..........................85 6.3. Анализ инцидентов системы автоматизации процессов управления ИТ-услугами ...........................................................90 Контрольные вопросы...............................................................................................94 Список литературы....................................................................................................95 3
Введение Сегодня для многих специалистов по обработке информации стало очевидным, что в сверхбольших массивах (десятки и сотни миллионов записей) хронологически накопленных данных, хранимых в электронных хранилищах (data warehouse) крупных государственных организаций и промышленных компаний содержится значительный скрытый потенциал знаний, способных повысить эффективность их коммерческой и производственной деятельности [9, 14]. Поэтому задача извлечения этих знаний из ранее накопленных данных является достаточно актуальной. Традиционная математическая статистика, долгое время претендовавшая на роль главного инструмента анализа данных, сегодня пасует перед возникшими проблемами добычи новых знаний из больших объемов структурированных оперативных данных [5, 6]. Методы математической статистики оказались полезными главным образом для проверки заранее сформулированных гипотез и для «грубого» разведочного анализа новых закономерностей, составляющего основу оперативной аналитической обработки данных OLAP (online analytical processing) [9]. На передний план выдвинулись иные методы и технологии анализа данных, получившие название Data Mining (добыча новых данных) направленные на выявление скрытых закономерностей различного типа. Понятие Data Mining можно определить как один из процессов поддержки принятия решений, основанный на поиске в накопленных в хранилищах хронологических данных скрытых закономерностей (шаблонов информации) [9]. С другой стороны, Data Mining – технология, которая предназначена для поиска в больших объемах данных неочевидных, объективных и полезных на практике закономерностей [29]. Исходя из приведенных определений, появляется реальная возможность, используя методы Data Mining при обработке информации баз данных, получать новые закономерности, связывающие накопленные оперативные данные, и затем применять их при при4
нятии управленческих и иных решений в государственных организациях федерального уровня, крупных компаниях и корпорациях. Однако среди множества существующих на данный момент методов Data Mining, лишь некоторые представляют найденную информацию о скрытых знаниях в виде, пригодном для восприятия и усвоения человеком. Поэтому главное внимание в системах поддержки принятия решений человеком должно быть обращено на нахождение и исследование именно таких методов. Часто в качестве удобной формы представления найденных зависимостей используется представление информации в виде логических правил «если-то». В настоящем учебном пособии производится исследование методов Data Mining, ориентированных на получение информации о скрытых знаниях в пригодном для восприятия и усвоения человеком виде. Кроме этого, исследуются области эффективного использования и ограничения этих методов при решении конкретных задач глубокого анализа данных с целью выявления скрытых закономерностей. В качестве примера анализируются данные, хранимые системой HP Service Desk – одной из крупных коммерческих компаний. 1. Методы анализа структурированных данных с использованием технологии Data Mining Данный раздел посвящен анализу популярных методов Data Mining и их соответствия критерию получения информации о скрытых знаниях в пригодном для усвоения человеком виде, т.е. в виде правил «если-то». 1.1. Анализ временных рядов В отличие от анализа случайных выборок, анализ временных рядов [9] основывается на предположении, что последовательные значения в файле данных наблюдаются через равные промежутки времени (тогда как в других методах нам не важна и часто не интересна привязка наблюдений ко времени). Большинство регулярных составляющих временных рядов принадлежит к двум классам: они являются либо трендом, либо сезонной составляющей. Тренд представляет собой общую систематиче5
скую линейную или нелинейную компоненту, которая может изменяться во времени. Сезонная составляющая – периодически повторяющаяся компонента. Оба эти вида регулярных компонент часто присутствуют в ряде одновременно. Не существует «автоматического» способа обнаружения тренда во временном ряду. Однако если тренд является монотонным (устойчиво возрастает или устойчиво убывает), то анализировать такой ряд обычно нетрудно. Если временные ряды содержат значительную ошибку, то первым шагом выделения тренда является сглаживание. Сглаживание всегда включает некоторый способ локального усреднения данных, при котором несистематические компоненты взаимно погашают друг друга. Многие монотонные временные ряды можно хорошо приблизить линейной функцией. Если же имеется явная монотонная нелинейная компонента, то данные вначале следует преобразовать, чтобы устранить нелинейность. Обычно для этого используют логарифмическое, экспоненциальное или (реже) полиномиальное преобразование данных. Периодическая и сезонная зависимость (сезонность) представляет собой другой общий тип компонент временного ряда. В общем, периодическая зависимость может быть формально определена как корреляционная зависимость порядка k между каждым i-м элементом ряда и (i-k)-м элементом. Ее можно измерить с помощью автокорреляции (т.е. корреляции между самими членами ряда); k обычно называют лагом (иногда используют эквивалентные термины: сдвиг, запаздывание). Сезонные составляющие временного ряда могут быть найдены с помощью коррелограммы. Коррелограмма (автокоррелограмма) показывает численно и графически автокорреляционную функцию (AКФ), иными словами коэффициенты автокорреляции (и их стандартные ошибки) для последовательности лагов из определенного диапазона (например, от 1 до 30). На коррелограмме обычно отмечается диапазон в размере двух стандартных ошибок на каждом лаге, однако обычно величина автокорреляции более интересна, чем ее надежность, потому, что интерес в основном представляют очень сильные (следовательно, высоко значимые) автокорреляции. Другой полезный метод исследования периодичности состоит в исследовании частной автокорреляционной функции (ЧАКФ), представляющей собой углубление понятия обычной автокорреля6
ционной функции. В ЧАКФ устраняется зависимость между промежуточными наблюдениями (наблюдениями внутри лага). Другими словами, частная автокорреляция на данном лаге аналогична обычной автокорреляции, за исключением того, что при вычислении из нее удаляется влияние автокорреляций с меньшими лагами. На лаге 1 (когда нет промежуточных элементов внутри лага), частная автокорреляция равна, очевидно, обычной автокорреляции. На самом деле, частная автокорреляция дает более «чистую» картину периодических зависимостей. Как отмечалось выше, периодическая составляющая для данного лага k может быть удалена взятием разности соответствующего порядка. Это означает, что из каждого i-го элемента ряда вычитается (i-k)-й элемент. Имеются два довода в пользу таких преобразований. Во-первых, таким образом можно определить скрытые периодические составляющие ряда. Напомним, что автокорреляции на последовательных лагах зависимы. Поэтому удаление некоторых автокорреляций изменит другие автокорреляции, которые, возможно, подавляли их, и сделает некоторые другие сезонные составляющие более заметными. Во-вторых, удаление сезонных составляющих делает ряд стационарным, что необходимо для применения АРПСС и других методов, например, спектрального анализа. Существуют две основные цели анализа временных рядов: определение природы ряда и прогнозирование (предсказание будущих значений временного ряда по настоящим и прошлым значениям). Все методы анализа временных рядов не выдают на выходе правил «если-то», следовательно, эти методы не удовлетворяют критерию получения информации о скрытых знаниях в пригодном для усвоения человеком виде. 1.2. Граничные методы Граничные методы определяют классы, используя границы областей [14]. В некоторых простейших случаях классы можно разделить прямой линией. Каждый объект в данном случае характеризуется двумя измерениями. Набирающий популярность метод опорных векторов (Support Vector Machine – SVM) ищет образцы, расположенные на границах между двумя классами. 7
Метод опорных векторов. Метод опорных векторов (МОВ или SVM – Support Vector Machine) относится к группе граничных методов. Она определяет классы при помощи границ областей. В общем виде задача классификации при использовании МОВ формулируется следующим образом. Имеется: пространство векторов X , m-мерное евклидово пространство Rm векторов-признаков изображения. Пространство ответов Y = {1, -1} , где yi = 1 означает, что вектор xi соответствует объекту одного класса, а y j = −1 , что x j со-
ответствует объекту другого класса. Пространство F функций f: X -> Y, или пространство функцийклассификаторов. Требуется по некоторому обучающему набору ( xi , yi ), i = 1,2,.., N найти функцию f, так чтобы достигался минимум среднеквадратической ошибки N
. ∑ ( yi − f ( xi ))2 → min f ∈F i =1
Метод опорных векторов основан на том, что ищется линейное разделение классов. В этом случае функция решения f ( x) = sgn( w ⋅ x + b) , и производится поиск параметров w и b. Видно, что w ⋅ x + b = 0 – уравнение разделяющей классы гиперплоскости. Проводя параллельные гиперплоскости w ⋅ x + b = ±1 , получим, что для проведения оптимальной разделяющей гиперплоскости, надо максимизировать расстояние между этими двумя 2 с условиями, что между ними нет точек данных, плоскостями w т.е. yi ( w ⋅ xi + b) ≥ 1 . Методом множителей Лагранжа эта задача сводится к поиску коэффициентов N
α i ≥ 0 : L (α ) = ∑ α i − i =1
с ограничениями
1N ∑ αi α j yi y j ( xi ⋅ x j ) → max 2 i, j
N
∑ αi yi = 0 . Эта задача решается с помощью алго-
i =1
ритма последовательной оптимизации SMO (Sequential Minimal Optimization). Этот метод сводит решаемую задачу максимизации 8
функции N переменных к задаче с минимально возможным количеством α – с двумя – и является одним из наиболее эффективных методов обучения. Цель метода опорных векторов – найти плоскость, разделяющую два множества объектов. Метод отыскивает образцы, находящиеся на границах между двумя классами, т.е. опорные векторы. Опорными векторами называются объекты множества, лежащие на границах областей. В результате решения задачи, т.е. построения SVM-модели, находится функция, принимающая значения меньше нуля для векторов одного класса и больше нуля – для векторов другого класса. Для каждого нового объекта отрицательное или положительное значение определяет принадлежность объекта к одному из классов. Все граничные методы на выходе не дают знаний в виде правил вида «если-то». Они дают только собственно функций разделяющих поверхностей. Следовательно, этот метод не удовлетворяет выбранному критерию вида представляемой зависимости. 1.3. Деревья решений
Метод деревьев решений является одним из наиболее популярных методов решения задач классификации [13, 22]. Иногда этот метод Data Mining также называют деревьями решающих правил, деревьями классификации. Рассмотрим следующий пример. База данных, на основе которой должно осуществляться прогнозирование, содержит следующие структурированные данные о клиентах банка, являющиеся ее атрибутами: возраст, наличие недвижимости, образование, среднемесячный доход, вернул ли клиент вовремя кредит. Задача состоит в том, чтобы на основании перечисленных выше данных (кроме последнего атрибута) определить, стоит ли выдавать кредит новому клиенту. Такая задача решается в два этапа: построение классификационной модели и ее использование. На этапе построения модели, собственно, и строится дерево классификации или создается набор неких правил вида «если-то». На этапе использования модели построенное дерево, или путь от его корня к одной из вершин, являющийся набором правил для конкретного клиента, используется для ответа на поставленный вопрос «Выдавать ли кредит?» 9
Правилом является логическая конструкция, представленная в виде «если-то». На следующем рисунке приведен пример дерева классификации, с помощью которого решается задача «Выдавать ли кредит клиенту?». Она является типичной задачей классификации структурированных данных, и при помощи деревьев решений получают достаточно хорошие варианты ее решения. Как видим, внутренние узлы дерева (возраст, наличие недвижимости, доход и образование) являются атрибутами описанной выше базы данных. Эти атрибуты называют прогнозирующими, или атрибутами расщепления. Конечные узлы дерева, или листы, именуются метками класса, являющимися значениями зависимой категориальной переменной «выдавать» или «не выдавать» кредит.
Рис. 1.1. Дерево решений «Выдавать ли кредит?»
На рис. 1.1 изображено одно из возможных деревьев решений для рассматриваемой базы данных. Например, критерий расщепления «Какое образование?» мог бы иметь два предиката расщепления и выглядеть иначе: образование «высшее» и «не высшее». Тогда дерево решений имело бы другой вид. 10
Таким образом, для данной задачи (как и для любой другой) может быть построено множество деревьев решений различного качества, с различной прогнозирующей точностью. Качество построенного дерева решения весьма зависит от правильного выбора критерия расщепления. Над разработкой и усовершенствованием критериев работают многие исследователи. Метод деревьев решений часто называют «наивным» подходом. Но благодаря целому ряду преимуществ, данный метод является одним из наиболее популярных для решения задач классификации. Результат работы алгоритмов конструирования деревьев решений, легко интерпретируется пользователем. Деревья решений дают возможность извлекать правила из базы данных на естественном языке. Следовательно, этот метод удовлетворяет выбранному критерию вида представляемой зависимости. 1.4. Иерархические методы кластерного анализа
Суть иерархической кластеризации состоит в последовательном объединении меньших кластеров в большие или разделении больших кластеров на меньшие [24]. Иерархические агломеративные методы. Эта группа методов характеризуется последовательным объединением исходных элементов и соответствующим уменьшением числа кластеров. В начале работы алгоритма все объекты являются отдельными кластерами. На первом шаге наиболее похожие объекты объединяются в кластер. На последующих шагах объединение продолжается до тех пор, пока все объекты не будут составлять один кластер. Иерархические дивизимные (делимые) методы. Эти методы являются логической противоположностью агломеративным методам. В начале работы алгоритма все объекты принадлежат одному кластеру, который на последующих шагах делится на меньшие кластеры, в результате образуется последовательность расщепляющих групп. Все эти методы не выдают на выходе никаких сведений, кроме, собственно кластеров. Следовательно, эти методы не удовлетворяют выбранному критерию. 1.5. Неиерархические методы кластерного анализа
При большом количестве наблюдений иерархические методы кластерного анализа не пригодны. В таких случаях используют неиерархические методы [24], основанные на разделении, которые 11
представляют собой итеративные методы дробления исходной совокупности. В процессе деления новые кластеры формируются до тех пор, пока не будет выполнено правило остановки. Такая неиерархическая кластеризация состоит в разделении набора данных на определенное количество отдельных кластеров. Существует два подхода. Первый заключается в определении границ кластеров как наиболее плотных участков в многомерном пространстве исходных данных, т.е. определение кластера там, где имеется большое «сгущение точек». Второй подход заключается в минимизации меры различия объектов.
Рис. 1.2. Схема работы алгоритма k-средних
Алгоритм k-средних. Наиболее распространен среди неиерархических методов алгоритм k-средних (рис. 1.2), также называемый 12
быстрым кластерным анализом. Полное описание алгоритма можно найти в работе [24]. В отличие от иерархических методов, которые не требуют предварительных предположений относительно числа кластеров, для возможности использования этого метода необходимо иметь гипотезу о наиболее вероятном количестве кластеров. Алгоритм k-средних строит k кластеров, расположенных на возможно больших расстояниях друг от друга. Основной тип задач, которые решает алгоритм k-средних, – наличие предположений (гипотез) относительно числа кластеров, при этом они должны быть различны настолько, насколько это возможно. Выбор числа k может базироваться на результатах предшествующих исследований, теоретических соображениях или интуиции. Общая идея алгоритма: заданное фиксированное число k кластеров наблюдения сопоставляются кластерам так, что средние в кластере (для всех переменных) максимально возможно отличаются друг от друга. Все методы неиерархического кластерного анализа не выдают на выходе никаких сведений, кроме собственно кластеров. Следовательно, эти методы не удовлетворяют выбранному критерию вида представляемой зависимости. 1.6. Методы рассуждений на основе аналогичных случаев
Следует сразу отметить, что метод «ближайшего соседа» относится к классу методов, работа которых основывается на хранении данных в памяти для сравнения с новыми элементами [19]. При появлении новой записи для прогнозирования находятся отклонения между этой записью и подобными наборами данных, и наиболее подобная (или ближний сосед) идентифицируется. При таком подходе используется термин «k-ближайший сосед». Термин означает, что выбирается k «верхних» (ближайших) соседей для их рассмотрения в качестве множества «ближайших соседей». Поскольку не всегда удобно хранить все данные, иногда хранится только множество «типичных» случаев. В таком случае используемый метод называют рассуждением по аналогии CBR (Case Based Reasoning), рассуждением на основе аналогичных случаев, рассуждением по прецедентам. 13
Данный метод не создает каких-либо моделей или правил, обобщающих предыдущий опыт, – в выборе решения они основываются на всем массиве доступных исторических данных, поэтому невозможно сказать, на каком основании строятся ответы. Следовательно, этот метод не удовлетворяет поставленному критерию вида представляемой зависимости. 1.7. Линейная регрессия
Общее назначение линейной регрессии состоит в анализе связи между несколькими независимыми переменными (называемыми также регрессорами или предикторами) и зависимой переменной. Общая вычислительная задача, которую требуется решать при анализе методом множественной регрессии, состоит в подгонке линейной функции к некоторому набору точек [25]. Делается это с помощью метода наименьших квадратов. Общий смысл оценивания по методу наименьших квадратов заключается в минимизации суммы квадратов отклонений наблюдаемых значений зависимой переменной от значений, предсказанных моделью. Линейная регрессия не выдает на выходе правил «если-то», следовательно, этот метод не удовлетворяет выбранному критерию вида представляемой зависимости. 1.8. Логистическая регрессия
Логистическая регрессия – разновидность множественной регрессии, общее назначение которой состоит в анализе связи между несколькими независимыми переменными (называемыми также регрессорами или предикторами) и зависимой переменной [25]. Бинарная логистическая регрессия, как следует из названия, применяется в случае, когда зависимая переменная является бинарной (т.е. может принимать только два значения). Иными словами, с помощью логистической регрессии можно оценивать вероятность того, что событие наступит для конкретного испытуемого (больной/здоровый, возврат кредита/дефолт и т.д.). Во множественной линейной регрессии предполагается, что зависимая переменная является линейной функцией независимых переменных, т.е. 14
y = a + b1x1 + b2 x2 + .... + bn xn .
(1.1)
Можно ли ее использовать для задачи оценки вероятности исхода события? Да, можно, вычислив стандартные коэффициенты регрессии. Например, если рассматривается исход по займу, задается переменная y со значениями 1 и 0, где 1 означает, что соответствующий заемщик расплатился по кредиту, а 0, что имел место дефолт. Однако здесь возникает проблема: множественная регрессия не «знает», что переменная отклика бинарна по своей природе. Это неизбежно приведет к модели с предсказываемыми значениями большими 1 и меньшими 0. Но такие значения вообще не допустимы для первоначальной задачи. Таким образом, множественная регрессия просто игнорирует ограничения на диапазон значений для y. Для решения проблемы задача регрессии может быть сформулирована иначе: вместо предсказания бинарной переменной, мы предсказываем непрерывную переменную со значениями на отрезке [0,1] при любых значениях независимых переменных. Это достигается применением следующего регрессионного уравнения (логит-преобразование): 1 P= , 1 + e− y где P – вероятность того, что произойдет интересующее событие; e – основание натуральных логарифмов 2,71…; y – стандартное уравнение регрессии (1.1). На самом деле, логистическую регрессию можно представить в виде однослойной нейронной сети с сигмоидальной функцией активации, веса которой есть коэффициенты логистической регрессии, а вес поляризации – константа регрессионного уравнения (рис. 1.3). Для расчета коэффициентов логистической регрессии можно применять любые градиентные методы: метод сопряженных градиентов, методы переменной метрики и другие. Логистическая регрессия не выдает на выходе правил «если-то», следовательно, этот метод не удовлетворяет выбранному критерию вида представляемой зависимости.
15
Рис. 1.3. Представление логистической регрессии в виде нейронной сети
1.9. Наивная байесовская классификация
Одним из эффективных алгоритмов классификации является так называемый «наивный» (упрощенный) алгоритм Байеса [1]. Точность классификации, осуществляемой «наивным» алгоритмом Байеса, сравнима с точностью всех приведенных выше алгоритмов. С точки зрения быстроты обучения, стабильности на различных данных и простоты реализации, «наивный» алгоритм Байеса превосходит практически все известные эффективные алгоритмы классификации. Обучение алгоритма производится путем определения относительных частот значений всех атрибутов входных данных при фиксированных значениях атрибутов класса. Классификация осуществляется путем применения правила Байеса для вычисления условной вероятности каждого класса для вектора входных атрибутов. Входной вектор приписывается классу, условная вероятность которого при данном значении входных атрибутов максимальна. «Наивность» алгоритма заключается в предположении, что входные атрибуты условно (для каждого значения класса) независимы друг от друга, т.е. P ( X i = xi , X j = x j C = ck ) = P( X i = xi , X j = x j ) для всех атрибутов X i , Y j и значений класса C. Это предположение является очень сильным, и, во многих случаях неправомерным, что делает факт эффективности классификации при помощи «наивного» алгоритма Байес довольно неожиданным. 16
Большинство других методов классификации предполагают, что перед началом классификации вероятность того, что объект принадлежит тому или иному классу, одинакова; но это не всегда верно. Метод наивной байесовской классификации на выходе не выдает информации вида правил «если-то». Следовательно, этот метод не удовлетворяет выбранному критерию вида представляемой зависимости. 1.10. Нейронные сети
Согласно словарю по психофизиологии [35], нейронная сеть – группа взаимодействующих нервных клеток или ее модель. Искусственная нейронная сеть – вычислительная или логическая схема, построенная из однородных процессорных элементов, являющихся упрощенными функциональными моделями нейронов. Как математическая модель искусственная нейронная сеть представляет собой частный случай методов распознавания образов или дискриминантного анализа [5]. Каждый процессор подобной сети имеет дело только с сигналами, которые он периодически получает, и сигналами, которые он периодически посылает другим процессорам и, тем не менее, будучи соединёнными в достаточно большую сеть с управляемым взаимодействием, такие локально простые процессоры вместе способны выполнять довольно сложные задачи. Нейронные сети не программируются в привычном смысле этого слова, они обучаются. Возможность обучения – одно из главных преимуществ нейронных сетей перед традиционными алгоритмами. Технически обучение заключается в нахождении коэффициентов связей между нейронами. В процессе обучения нейронная сеть способна выявлять сложные зависимости между входными данными и выходными, а также выполнять обобщение. Это значит, что, в случае успешного обучения, сеть сможет вернуть верный результат на основании данных, которые отсутствовали в обучающей выборке. Нейронные сети, по сути, представляют собой «черные ящики», которые не могут предоставить информации о скрытых знаниях в доступных человеку формах. Следовательно, методы, основанные на нейронных сетях, не удовлетворяют выбранному критерию вида представляемой зависимости. 17
1.11. Поиск ассоциативных правил
Целью поиска ассоциативных правил [2, 12] является нахождение закономерностей между связанными событиями в базах данных. Ассоциативное правило имеет вид: «Из события A следует событие B». В результате такого вида анализа мы устанавливаем закономерность следующего вида: «Если в транзакции встретился набор элементов A, то можно сделать вывод, что в этой же транзакции должен появиться набор элементов B)» Построение таких закономерностей дает нам возможность находить очень простые и понятные правила, называемые ассоциативными. Этот метод удовлетворяет выбранному критерию вида представляемой зависимости. В заключение отметим, что для получения скрытых закономерностей вида «если-то» наиболее подходящими являются методы «Деревьев решений» и «Поиска ассоциативных правил». Рассмотрим их подробнее.
2. Алгоритмы нахождения деревьев решений 2.1. Описание дерева решений
Деревья решений – способ представления правил в иерархической, последовательной структуре, где каждому объекту соответствует единственный узел, дающий решение (рис. 2.1). Под правилом понимается логическая конструкция, представленная в виде «если [условие], то [следствие]», или проще «если, то».
Рис. 2.1. Пример дерева решений
18
Подход к построению дерева решений. Пусть нам задано некоторое обучающее множество T, содержащее объекты (примеры), каждый из которых характеризуется m атрибутами, причем один из них указывает на принадлежность объекта к определенному классу. Идею построения деревьев решений из множества T, впервые высказанную Хантом, приведем по Р. Куинлену [19, 33]. Пусть через {C1, C2, … Ck} обозначены классы (значения метки класса), тогда могут существовать три ситуации: 1) множество T содержит один или более примеров, относящихся к одному классу Ck. Тогда дерево решений для Т – это лист, определяющий класс Ck; 2) множество T не содержит ни одного примера, т.е. пустое множество. Тогда это снова лист, и класс, ассоциированный с листом, выбирается из другого множества отличного от T, скажем, из множества, ассоциированного с родителем; 3) множество T содержит примеры, относящиеся к разным классам. В этом случае следует разбить множество T на некоторые подмножества. Для этого выбирается один из признаков, имеющий два и более отличных друг от друга значений O1, O2, … On. T разбивается на подмножества T1, T2, … Tn, где каждое подмножество Ti содержит все примеры, имеющие значение Oi для выбранного признака. Это процедура будет рекурсивно продолжаться до тех пор, пока конечное множество не будет состоять из примеров, относящихся к одному и тому же классу. Вышеописанная процедура лежит в основе многих современных алгоритмов построения деревьев решений, этот метод известен еще под названием разделения и захвата. Очевидно, что при использовании данной методики, построение дерева решений будет происходить сверху вниз. Поскольку все объекты были заранее отнесены к известным нам классам, такой процесс построения дерева решений называется обучением с учителем. Процесс обучения также называют индуктивным обучением или индукцией деревьев. На сегодняшний день существует множество алгоритмов, реализующих деревья решений - CART, C4.5, NewId, ITrule, CHAID, CN2 и т.д. Но наибольшее распространение и популярность получили первые два: CART (Classification and Regression Tree) – алгоритм построения бинарного дерева решений – дихотомической классификационной 19
модели. Каждый узел дерева при разбиении имеет только двух потомков [13]. Как видно из названия алгоритма, он решает задачи классификации и регрессии. C4.5 (Classification Tree) – улучшенный алгоритм построения дерева решений с неограниченным числом потомков узла. Он не умеет работать с непрерывным целевым полем, поэтому решает только задачи классификации, но не регрессии [32]. Большинство из известных алгоритмов являются так называемыми «жадными алгоритмами». Если один раз был выбран атрибут, и по нему было произведено разбиение на подмножества, то алгоритм не может вернуться назад и выбрать другой атрибут, который дал бы лучшее разбиение. И поэтому на этапе построения нельзя сказать даст ли выбранный атрибут, в конечном итоге, оптимальное разбиение. Этапы построения деревьев решений. При построении деревьев решений особое внимание уделяется вопросам выбора критерия атрибута, по которому пойдет разбиение, остановки обучения и отсечения ветвей. Рассмотрим эти вопросы подробнее. Правило разбиения. Для построения дерева в каждом внутреннем узле необходимо найти условие (проверку), которое бы разбивало множество, ассоциированное с этим узлом на подмножества. В качестве такой проверки должен быть выбран один из атрибутов. Общее правило для выбора атрибута можно сформулировать следующим образом: выбранный атрибут должен разбить множество так, чтобы получаемые в итоге подмножества состояли из объектов, принадлежащих к одному классу, или были максимально приближены к этому, т.е. количество объектов из других классов («примесей») в каждом из этих множеств было как можно меньше. Для этого были разработаны различные критерии. Мы рассмотрим два из них. Теоретико-информационный критерий. Алгоритм C4.5, усовершенствованная версия алгоритма ID3 (Iterative Dichotomizer), использует теоретико-информационный подход. Для выбора наиболее подходящего атрибута, предлагается следующий критерий: Gain(X) = Info(T) - Infox(T) , (2.1) где Info(T) – энтропия множества T, а 20
.
(2.2)
Множества T1, T2, …, Tn получены при разбиении исходного множества T по проверке X. Выбирается атрибут, дающий максимальное значение по критерию (2.1). Впервые эта мера была предложена Р. Куинленом в разработанном им алгоритме ID3. Кроме вышеупомянутого алгоритма C4.5, есть еще целый класс алгоритмов, которые используют этот критерий выбора атрибута. Статистический критерий. Алгоритм CART использует так называемый индекс Gini (в честь итальянского экономиста Corrado Gini), который оценивает «расстояние» между распределениями классов. ,
(2.3)
где c – текущий узел; pj – вероятность класса j в узле c. Этот алгоритм был предложен Л. Брейманом (L. Breiman) и др. [19]. Правило остановки. В дополнение к основному методу построения деревьев решений были предложены различные эвристические правила, улучшающие процедуру построения. В первую очередь, это: а) использование статистических методов для оценки целесообразности дальнейшего разбиения, так называемая «ранняя остановка». В конечном счете «ранняя остановка» процесса построения привлекательна в плане экономии времени обучения, но здесь уместно сделать одно важное предостережение: этот подход строит менее точные классификационные модели и поэтому ранняя остановка крайне нежелательна. Признанные авторитеты в этой области Л. Брейман и Р. Куинлен советуют «вместо остановки использовать отсечение»; b) ограничение глубины дерева. Необходимо остановить дальнейшее построение, если разбиение ведет к дереву с глубиной превышающей заданное значение; c) разбиение должно быть нетривиальным, т.е. получившиеся в результате узлы должны содержать не менее заданного количества примеров. 21
Список дополнительных правил можно продолжить, т.к. на сегодняшний день не существует одного такого, которое бы имело наибольшую практическую ценность. К выбору и использованию правил следует подходить осторожно, из-за того, что многие из них эффективны только в каких-то частных случаях. Правило отсечения. Очень часто алгоритмы построения деревьев решений формируют сложные деревья, которые «переполнены данными», имеют много узлов и ветвей. Такие «ветвистые» деревья очень трудны для понимания и анализа. К тому же ветвистое дерево, имеющее много узлов, разбивает обучающее множество на все большее количество подмножеств, состоящих из все меньшего количества объектов. Ценность правила, справедливого скажем для 2-3 объектов, крайне низка, и в целях анализа данных такое правило практически непригодно. Гораздо ценнее иметь дерево, состоящее из небольшого количества узлов, которым бы соответствовало большое количество объектов из обучающей выборки. И тут возникает вопрос: а не построить ли все возможные варианты деревьев, соответствующие обучающему множеству, и из них выбрать дерево с наименьшей глубиной? К сожалению, это задача является NP-полной, как было показано Л. Хайфилем и Р. Ривестом и, как известно, этот класс задач не имеет эффективных методов решения. Для решения вышеописанной проблемы часто применяется так называемое отсечение ветвей. Пусть под точностью (распознавания) дерева решений понимается отношение правильно классифицированных объектов при обучении к общему количеству объектов из обучающего множества, а под ошибкой – количество неправильно классифицированных. Предположим, что нам известен способ оценки ошибки дерева, ветвей и листьев. Тогда возможно использовать следующее простое правило: 1) построить дерево; 2) отсечь или заменить поддеревом те ветви, которые не приведут к возрастанию ошибки (рис. 2.2). В отличие от процесса построения, отсечение ветвей происходит снизу вверх, двигаясь с листьев дерева, отмечая узлы как листья, либо заменяя их поддеревом. 22
Рис. 2.2. Пример дерева решений до и после отсечения
Хотя отсечение не является панацеей, но в большинстве практических задач дает хорошие результаты, что позволяет говорить о правомерности использования подобной методики. Правила. Иногда даже усеченные деревья могут быть все еще сложны для восприятия. В таком случае можно прибегнуть к методике извлечения правил из дерева с последующим созданием наборов правил, описывающих классы. Для извлечения правил необходимо исследовать все пути от корня до каждого листа дерева. Каждый такой путь даст правило, где условиями будут являться проверки из узлов, встретившихся на пути. 2.2. Анализ возможностей и ограничений метода деревьев решений
При помощи метода деревьев решений аналитик может быстро получить правила вида "Из A следует B" [16]. Однако существующие алгоритмы этого метода сталкиваются с невозможностью решения некоторых задач. Например, задача IF (X1 > 4) & (X2 < 5) THEN Класс 1; IF (X1 < 5) & (X2 > 4) THEN Класс 1; IF (X1 < 5) & (X2 < 5) THEN Класс 2; IF (X1 > 4) & (X2 > 4) THEN Класс 2
не решается методом деревьев, так как ни один из выбранных признаков (X1, X2) отдельно не дает возможности разделить классы. Эта проблема называется проблемой сегментация признаков. Более подробно проблемы построения деревьев решений изложены в работе [16]. 23
Области эффективного применения метода деревьев решений. При помощи алгоритма выявления деревьев решений можно решать достаточно большой спектр практических задач: • задачи описания данных: деревья решений позволяют хранить информацию о данных в компактной форме, вместо них мы можем хранить дерево решений, которое содержит точное описание объектов [29, 33]; • задачи классификации: деревья решений отлично справляются с задачами классификации, т.е. отнесения объектов к одному из заранее известных классов. Целевая переменная должна иметь дискретные значения [20, 22, 33]; • задачи регрессии: если целевая переменная имеет непрерывные значения, деревья решений позволяют установить зависимость целевой переменной от независимых (входных) переменных. Например, к этому классу относятся задачи численного прогнозирования (предсказания значений целевой переменной) [33]. 2.3. Алгоритм С 4.5
Прежде чем приступить к описанию алгоритма построения дерева решений, определим обязательные требования к структуре данных и непосредственно к самим данным [32], при выполнении которых алгоритм C4.5 будет работоспособен. 1. Описание атрибутов. Данные, необходимые для работы алгоритма, должны быть представлены в виде плоской таблицы. Вся информация об объектах (далее примеры) из предметной области должна описываться в виде конечного набора признаков (далее атрибуты). Каждый атрибут должен иметь дискретное или числовое значение. Сами атрибуты не должны меняться от примера к примеру, и количество атрибутов должно быть фиксированным для всех примеров. 2. Определенные классы. Каждый пример должен быть ассоциирован с конкретным классом, т.е. один из атрибутов должен быть выбран в качестве метки класса. 3. Дискретные классы. Классы должны быть дискретными. Каждый пример должен однозначно относиться к конкретному классу. Случаи, когда примеры принадлежат к классу с вероятностны24
ми оценками, исключаются. Количество классов должно быть значительно меньше количества классифицируемых примеров. Алгоритм построения дерева. Пусть задано множество примеров T, и каждый элемент этого множества описывается m атрибутами. Количество примеров во множестве T будем называть мощностью этого множества и будем обозначать |T |. Пусть метка класса принимает следующие значения C1, C2 …, Ck. Наша задача заключается в построении иерархической классификационной модели в виде дерева из множества примеров T. Процесс построения дерева будет происходить сверху вниз. Сначала создается корень дерева, затем потомки корня и т.д. На первом шаге мы имеем пустое дерево (только корень) и исходное множество T (ассоциированное с корнем). Требуется разбить исходное множество на подмножества. Это можно сделать, выбрав один из атрибутов в качестве проверки. Тогда в результате разбиения получаются n (по числу значений атрибута) подмножеств и, соответственно, создаются n потомков корня, каждому из которых поставлено в соответствие свое подмножество, полученное при разбиении множества T. Затем эта процедура рекурсивно применяется ко всем подмножествам (потомкам корня) и т.д. Рассмотрим подробнее критерий выбора атрибута, по которому должно пойти ветвление. Очевидно, что в нашем распоряжении m (по числу атрибутов) возможных вариантов, из которых мы должны выбрать самый подходящий. Некоторые алгоритмы исключают повторное использование атрибута при построении дерева, но в нашем случае мы таких ограничений накладывать не будем. Любой из атрибутов можно использовать неограниченное количество раз при построении дерева. Пусть мы имеем проверку X (в качестве проверки может быть выбран любой атрибут), которая принимает n значений A1, A2, …, An. Тогда разбиение T по проверке X даст нам подмножества T1, T2, …, Tn при X, равном, соответственно, A1, A2, …, An. Единственная доступная нам информация – то, каким образом классы распределены в множестве T и его подмножествах, получаемых при разбиении по X. Именно этим и воспользуемся при определении критерия. Пусть freg(Cj, S) – количество примеров из некоторого множества S, относящихся к одному и тому же классу Cj. Тогда вероят25
ность того, что случайно выбранный пример из множества S будет принадлежать к классу Cj . Согласно теории информации, количество содержащейся в сообщении информации, зависит от ее вероятности .
(2.4)
Поскольку мы используем логарифм с двоичным основанием, то выражение (2.4) дает количественную оценку в битах. Выражение (2.5) дает оценку среднего количества информации, необходимого для определения класса примера из множества T. В терминологии теории информации выражение (2) называется энтропией множества T. Ту же оценку, но только уже после разбиения множества T по X, дает выражение: .
(2.6)
Тогда критерием для выбора атрибута будет являться следующая формула: (2.7) Gain(X) = Info(T) – Infox(T). Критерий (2.7) считается для всех атрибутов. Выбирается атрибут, максимизирующий данное выражение. Этот атрибут будет являться проверкой в текущем узле дерева, а затем по этому атрибуту производится дальнейшее построение дерева. Таким образом, в узле будет проверяться значение по этому атрибуту, и дальнейшее движение по дереву будет производиться в зависимости от полученного ответа. Такие же рассуждения можно применить к полученным подмножествам T1, T2, …, Tn и продолжить рекурсивно процесс построения дерева, до тех пор, пока в узле не окажутся примеры из одного класса. 26
Важное замечание. Если в процессе работы алгоритма получен узел, ассоциированный с пустым множеством (т.е. ни один пример не попал в данный узел), то он помечается как лист, и в качестве решения листа выбирается наиболее часто встречающийся класс у непосредственного предка данного листа. Здесь следует пояснить, почему критерий (2.7) следует максимизировать. Из свойств энтропии нам известно, что максимально возможное значение энтропии достигается в том случае, когда все его сообщения равновероятны. В нашем случае, энтропия (2.6) достигает своего максимума, когда частота появления классов в примерах множества T равновероятна. Нам же необходимо выбрать такой атрибут, чтобы при разбиении по нему один из классов имел наибольшую вероятность появления. Это возможно в том случае, когда энтропия (2.6) будет иметь минимальное значение и, соответственно, критерий (2.7) достигнет своего максимума. Как быть в случае с числовыми атрибутами? Понятно, что следует выбрать некий порог, с которым должны сравниваться все значения атрибута. Пусть числовой атрибут имеет конечное число значений. Обозначим их {v1, v2, …, vn}. Предварительно отсортируем все значения. Тогда любое значение, лежащее между vi и vi+1, делит все примеры на два множества: те, которые лежат слева от этого значения {v1, v2, …, vn}, и те, что справа {vi+1, vi+2, …, vn}. В качестве порога можно выбрать среднее между значениями vi и vi+1:
. Таким образом, мы существенно упростили задачу нахождения порога, и привели к рассмотрению всего n-1 потенциальных пороговых значений TH1, TH2, …, THn-1. Формулы (2.5), (2.6) и (2.7) последовательно применяются ко всем потенциальным пороговым значениям, и среди них выбирается то, которое дает максимальное значение по критерию (2.7). Далее это значение сравнивается со значениями критерия (2.7), подсчитанными для остальных атрибутов. Если выяснится, что среди всех атрибутов данный числовой атрибут имеет максимальное значение по критерию (2.7), то в качестве проверки выбирается именно он. Следует отметить, что все числовые тесты являются бинарными, т.е. делят узел дерева на две ветви. 27
Классификация новых примеров. Итак, мы имеем дерево решений и хотим использовать его для распознавания нового объекта. Обход дерева решений начинается с корня дерева. На каждом внутреннем узле проверяется значение объекта Y по атрибуту, который соответствует проверке в данном узле, и, в зависимости от полученного ответа, находится соответствующее ветвление, и по этой дуге двигаемся к узлу, находящему на уровень ниже и т.д. Обход дерева заканчивается, как только встретится узел решения, который и дает название класса объекта Y. Далее можно легко получить дерево решений, реализовав описанный алгоритм. Правда, небольшим недостатком будут ветвистые деревья, если примеры представлены очень большим количеством атрибутов. Этот недостаток можно устранить, применив методику отсечения ветвей. Улучшенный критерий разбиения. Критерий (2.7) имеет один недостаток – он «предпочитает» атрибуты, которые имеют много значений. Рассмотрим гипотетическую задачу медицинской диагностики, где один из атрибутов идентифицирует личность пациента. Поскольку каждое значение этого атрибута уникальное, то при разбиении множества примеров по этому атрибуту получаются подмножества, содержащие только по одному примеру. Так как все эти множества «однопримерные», то и пример относится, соответственно, к одному единственному классу, тогда InfoX (T) = 0. Значит, критерий (2.7) принимает свое максимальное значение, и несомненно, что именно этот атрибут будет выбран алгоритмом. Однако, если рассмотреть проблему под другим углом – с точки зрения предсказательных способностей построенной модели, то становится очевидным вся бесполезность такой модели. Хотя на практике не так часто встречаются подобные задачи, но, тем не менее, необходимо предусмотреть и такие случаи. Эта проблема решается введением некоторой нормализации. Пусть суть информации сообщения, относящегося к некоторому примеру, указывает не на класс, к которому пример принадлежит, а на выход. Тогда, по аналогии с определением Info(T), мы имеем:
. 28
(2.8)
Выражение (2.8) оценивает потенциальную информацию, получаемую при разбиении множества T на n подмножеств. Рассмотрим следующее выражение: .
(2.9)
Пусть выражение (2.9) является критерием выбора атрибута. Очевидно, что атрибут, идентифицирующий пациента, не будет высоко оценен критерием (2.9). Пусть имеется k классов, тогда числитель выражения (2.9) максимально будет равен log2(k) и пусть n – количество примеров в обучающей выборке и одновременно количество значений атрибута, тогда знаменатель максимально равен log2(n). Если предположить, что количество примеров заведомо больше количества классов, то знаменатель растет быстрее, чем числитель, и, соответственно, выражение будет иметь небольшое значение. Таким образом, можем заменить критерий (2.7) на новый критерий (2.9), и опять же выбрать тот атрибут, который имеет максимальное значение по критерию. Критерий (2.7) использовался в алгоритме ID3, критерий (2.9) введен в модифицированном алгоритме С 4.5. Несмотря на то, что мы улучшили критерий выбора атрибута для разбиения, алгоритм может создавать узлы и листья, содержащие незначительное количество примеров. Чтобы избежать этого, следует воспользоваться еще одним эвристическим правилом: при разбиении множества T по крайней мере два подмножества должны иметь не меньше заданного минимального количества примеров k (k > 1); обычно оно равно двум. В случае невыполнения этого правила, дальнейшее разбиение этого множества прекращается, и соответствующий узел отмечается как лист. Вероятно, что при таком ограничении может возникнуть ситуация, когда примеры, ассоциированные с узлом, относятся к разным классам. В качестве решения листа выбирается класс, который наиболее часто встречается в узле, если же примеров равное количество из всех классов, то решение дает наиболее часто встречающийся класс у непосредственного предка данного листа. Возвращаясь к вопросу о выборе порога для числовых атрибутов, можно ввести следующее дополнение: если минимальное число примеров в узле k, тогда имеет смысл рассматривать только сле29
дующие значения TH1, TH2, …, THn-1, так как при разбиении по первым и последним k – 1 порогам в узел попадает меньше k примеров. Пропущенные данные. Алгоритм построения деревьев решений, рассматриваемый нами, предполагает, что для атрибута, выбираемого в качестве проверки, существуют все значения, хотя явно это нигде не утверждалось. Таким образом, для любого примера из обучающей выборки существует значение по этому атрибуту. Пока мы работаем с синтетическими данными, особых проблем не возникает, можем «сгенерировать» нужные данные. Но как только обратимся к практической стороне вопроса, то выясняется, что реальные данные далеки от идеальных, и что часто встречаются пропущенные, противоречащие и аномальные данные. Остановимся подробнее на проблеме пропущенных данных. Первое решение, которое лежит на поверхности и само напрашивается – не учитывать примеры с пропущенными значениями. Следует подчеркнуть, что крайне нежелательно отбрасывать весь пример только потому, что по одному из атрибутов пропущено значение, поскольку мы рискуем потерять много полезной информации. Тогда нам необходимо выработать процедуру работы с пропущенными данными. Пусть T – множество обучающих примеров и X – проверка по некоторому атрибуту A. Обозначим через U количество неопределенных значений атрибута A. Изменим формулы (2.5) и (2.6) таким образом, чтобы учитывать только те примеры, у которых существуют значения по атрибуту A: , .
(2.10) (2.11)
В этом случае при подсчете freq(Cj, T) учитываются только примеры с существующими значениями атрибута A. Тогда критерий (2.7) можно переписать: . 30
(2.12)
Подобным образом изменяется и критерий (2.9). Если проверка имеет n выходных значений, то критерий (2.9) считается как в случае, когда исходное множество разделено на n+1 подмножеств. Пусть теперь проверка X с выходными значениями O1, O2, …, On выбрана на основе модифицированного критерия (2.11). Нам надо решить, что делать с пропущенными данными. Если пример из множества T с известным выходом Oi ассоциирован с подмножеством Ti, вероятность того, что пример из множества Ti равна 1. Пусть тогда каждый пример из подмножества Ti имеет вес, указывающий вероятность того, что пример принадлежит Ti. Если пример имеет значение по атрибуту A, тогда вес равен 1, в противном случае пример ассоциируется со всеми множествами T1, T2, …, Tn, с соответствующими весами . Легко убедиться, что . Вкратце, этот подход можно сформулировать таким образом: предполагается, что пропущенные значения по атрибуту вероятностно распределены пропорционально частоте появления существующих значений. Классификация новых примеров. Такая же методика применяется, когда дерево используется для классификации новых примеров. Если на каком-то узле дерева при выполнении проверки выясняется, что значение соответствующего атрибута классифицируемого примера пропущено, то алгоритм исследует все возможные пути вниз по дереву и определяет, с какой вероятностью пример относится к различным классам. В этом случае, «классификация» – это скорее распределение классов. Как только распределение классов установлено, то класс, имеющий наибольшую вероятность появления, выбирается в качестве ответа дерева решений. Следует отметить, что кроме подхода, использованного в описываемом алгоритме, применяются и другие методики. В конечном итоге, успех от использования того или иного метода работы с пропущенными данными напрямую зависит как от предметной области, так и самих данных. 31
2.4. Алгоритм CART
Алгоритм предназначен для решения задач классификации и регрессии [8]. Существует также несколько модифицированных версий – алгоритмы IndCART и DB-CART. Алгоритм IndCART является частью пакета Ind и отличается от CART использованием иного способа обработки пропущенных значений, не осуществляет регрессионную часть алгоритма CART и имеет иные параметры отсечения. Алгоритм DB-CART базируется на следующей идее: вместо того чтобы использовать обучающий набор данных для определения разбиений, используем его для оценки распределения входных и выходных значений и затем используем эту оценку, чтобы определить разбиения. DB аббревиатура от distribution based. Утверждается, что эта идея дает значительное уменьшение ошибки классификации, по сравнению со стандартными методами построения дерева. Основными отличиями алгоритма CART от алгоритмов семейства ID3 являются: • бинарное представление дерева решений; • функция оценки качества разбиения; • механизм отсечения дерева; • алгоритм обработки пропущенных значений; • построение деревьев регрессии. Проанализируем их подробнее. Бинарное представление дерева решений. В алгоритме CART каждый узел дерева решений имеет двух потомков. На каждом шаге построения дерева правило, формируемое в узле, делит заданное множество примеров (обучающую выборку) на две части – часть, в которой выполняется правило (потомок – right) и часть, в которой правило не выполняется (потомок – left). Для выбора оптимального правила используется функция оценки качества разбиения1. 1 Алгоритмическое решение: Каждый узел (структура или класс) должен иметь ссылки на двух потомков Left и Right – аналогичные структуры. Также узел должен содержать идентификатор правила (подробнее о правилах см. ниже), каким либо образом описывать правую часть правила, содержать информацию о количестве или отношении примеров каждого класса обучающей выборки, «прошедшей» через узел, и иметь признак терминального узла – листа. Таковы минимальные требования к структуре (классу) узла дерева. 32
Функция оценки качества разбиения. Обучение дерева решений относится к классу обучения с учителем, то есть обучающая и тестовая выборки содержат классифицированный набор примеров. Оценочная функция, используемая алгоритмом CART, базируется на интуитивной идее уменьшения неопределённости в узле. Рассмотрим задачу с двумя классами и узлом, имеющим по 50 примеров одного класса. Узел имеет максимальную «неопределённость». Если будет найдено разбиение, которое разбивает данные на две подгруппы 40:5 примеров в одной и 10:45 в другой, то интуитивно «неопределённость» уменьшится. Она полностью исчезнет, когда будет найдено разбиение, которое создаст подгруппы 50:0 и 0:50. В алгоритме CART идея «неопределённости» формализована в индексе Gini. Если набор данных Т содержит данные n классов, тогда индекс Gini определяется как
, где pi – вероятность (относительная частота) класса i в T. Если набор Т разбивается на две части Т1 и Т2 с числом примеров в каждом N1 и N2 соответственно, тогда показатель качества разбиения будет равен . Наилучшим считается то разбиение, для которого Ginisplit (T) минимально. Обозначим через N – число примеров в узле – предке, L, R – число примеров соответственно в левом и правом потомке, li и ri – число экземпляров i-го класса в левом/правом потомке. Тогда качество разбиения оценивается по следующей формуле: .
33
Чтобы уменьшить объем вычислений формулу можно преобразовать: . Так как умножение на константу не играет роли при минимизации:
В итоге, лучшим будет то разбиение, для которого величина максимальна. Реже в алгоритме CART используются другие критерии разбиения (Twoing, Symmetric Gini и др.) [13]. Правила разбиения. Вектор предикторных переменных, подаваемый на вход дерева, может содержать как числовые (порядковые) так и категориальные переменные. В любом случае в каждом узле разбиение идет только по одной переменной. Если переменная числового типа, то в узле формируется правило вида xi <= c, где с – некоторый порог, который чаще всего выбирается как среднее арифметическое двух соседних упорядоченных значений переменной xi обучающей выборки. Если переменная категориального типа, то в узле формируется правило xi V(xi), где V(xi) – некоторое непустое подмножество множества значений переменной xi в обучающей выборке. Следовательно, для n значений числового атрибута алгоритм сравнивает n-1 разбиений, а для категориального типа (2n-1 – 1). На каждом шаге построения дерева алгоритм последовательно сравни-
34
вает все возможные разбиения для всех атрибутов и выбирает наилучший атрибут и наилучшее разбиение для него2. 2 Алгоритмическое решение: Договоримся, что источник данных, необходимых для работы алгоритма, представим как плоская таблица. Каждая строка таблицы описывает один пример обучающей или тестовой выборки. Каждый шаг построения дерева фактически состоит из совокупности трех трудоемких операций: сортировки источника, разделения источника, вычисления индексов. Сортировка источника данных проводится по столбцу. Она необходима для вычисления порога, когда рассматриваемый в текущий момент времени атрибут имеет числовой тип. На каждом шаге построения дерева число сортировок будет как минимум равно количеству атрибутов числового типа. После того, как найдено наилучшее разбиение, необходимо разделить источник данных в соответствии с правилом формируемого узла и рекурсивно вызвать процедуру построения для двух половинок источника данных. Обе эти операции связаны (если действовать «в лоб») с перемещением значительных объемов табличных данных. Можно существенно снизить временные затраты на построение дерева, если использовать индексированный источник данных (таблицу). Обращение к данным в таком источнике происходит не напрямую, а посредством логических индексов строк данных. Сортировать и разделять такой источник данных можно с минимальной потерей производительности. Третья операция, занимающая 60–80% времени выполнения программы, – вычисление индексов для всех возможных разбиений. Если у нас имеется n числовых атрибутов и m примеров в выборке, то получается таблица n*(m-1) индексов, которая занимает значительный объем памяти. Этого можно избежать, если использовать один столбец для текущего атрибута и одну строку для лучших (максимальных) индексов по всем атрибутам. Можно и вовсе использовать только несколько числовых значений, получив быстрый, однако плохо читаемый код. Значительно увеличить производительность можно, если считать, что L = N – R, li = ni – ri , а li и ri изменяются всегда и только на единицу при переходе на следующую строку для текущего атрибута. То есть подсчет числа классов, а это основная операция, будет выполняться быстро, если знать число экземпляров каждого класса всего в таблице и при переходе на новую строку таблицы изменять на единицу только число экземпляров одного класса – класса текущего примера. Все возможные разбиения для категориальных атрибутов удобно представлять по аналогии с двоичным представлением числа. Если атрибут имеет n уникальных значений, то получаеи 2n – разбиений. Первое (где все нули) и последнее (все единицы) нас не интересуют, тогда получаем 2n – 2. Так как порядок множеств здесь тоже неважен, получаем (2n – 2)/2 или (2n-1 – 1) первых (с единицы) двоичных представлений. Если {A, B, C, D, E} – все возможные значения некоторого атрибута X, то для текущего разбиения, которое имеет представление, скажем {0, 0, 1, 0, 1} получаем правило X in {C, E} для правой ветви и [ not {0, 0, 1, 0, 1} = {1, 1, 0, 1, 0} = X in {A, B, D} ] для левой ветви. Часто значения атрибута категориального типа представлены в базе как строковые значения. В таком случае быстрее и удобнее создать кэш всех значений атрибута и работать не со значениями, а с индексами в кэше. 35
Механизм отсечения дерева. Наличие механизма отсечения дерева (minimal cost-complexity tree pruning) – наиболее серьезное отличие алгоритма CART от других алгоритмов построения дерева. CART рассматривает отсечение как получение компромисса между двумя проблемами: получение дерева оптимального размера и получение точной оценки вероятности ошибочной классификации. Основная проблема отсечения – большое количество всех возможных отсеченных поддеревьев для одного дерева. Более точно, если бинарное дерево имеет |T| – листов, тогда существует ~ [1.5028369|T|] отсечённых поддеревьев. И, если дерево имеет, хотя бы 1000 листов, тогда число отсечённых поддеревьев становится просто огромным. Базовая идея метода – не рассматривать все возможные поддеревья, ограничившись только «лучшими представителями» согласно приведённой ниже оценке. Обозначим через |T| – число листов дерева, R(T) – ошибку классификации дерева, равную отношению числа неправильно классифицированных примеров к числу примеров в обучающей выборке. Определим C (T) как полную стоимость (оценку показателя затрат и сложности) дерева Т: C (T) = R(T) + *|T|, где |T| – число листов (терминальных узлов) дерева, – некоторый параметр, изменяющийся от 0 до + . Полная стоимость дерева состоит из двух компонентов – ошибки классификации дерева и штрафа за его сложность. Если ошибка классификации дерева неполная стоимость дерева будет изменна, тогда с увеличением увеличиваться. В зависимости от , менее ветвистое дерево, дающее большую ошибку классификации, может стоить даже меньше, чем более ветвистое, но дающее меньшую ошибку. Определим через Tmax – максимальное по размеру дерево, которое предстоит обрезать. Если мы зафиксируем значение , тогда существует наименьшее минимизируемое поддерево для этого , для которого выполняются следующие условия: С (T( )) = minT <= Tmax C (T) if C (T) = C (T( )) then T( ) <= T Первое условие говорит, что не существует такого поддерева дерева Tmax, которое имело бы меньшую стоимость, чем Т( ) при этом значении . Второе условие говорит, что если существует более одного поддерева, имеющих данную полную стоимость, тогда мы выбираем наименьшее дерево. 36
Можно показать, что для любого значения существует такое наименьшее минимизируемое поддерево. Но эта задача не тривиальна. Что она говорит – то, что не может быть такого, когда два дерева достигают минимума полной стоимости и они несравнимы, т.е. ни одно из них не является поддеревом другого. Не будем здесь доказывать этот результат. Хотя имеет бесконечное число значений, существует конечное число поддеревьев дерева Tmax. Можно построить последовательность уменьшающихся поддеревьев дерева Tmax - T1 > T2 > > T3 > … > { t1}, где t1 – корневой узел дерева; такую, что Tk – наименьшее минимизируемое поддерево для [ k, k+1). Это важный результат, так как он означает, что мы можем получить следующее дерево в последовательности, применив отсечение к текущему дереву. Это позволяет разработать эффективный алгоритм поиска наименьшего минимизируемого поддерева при различных значениях . Первое дерево в этой последовательности – наименьшее поддерево дерева Tmax, имеющее такую же ошибку классификации, как и Tmax, т.е. T1 = T( = 0). Пояснение: если разбиение идет до тех пор, пока в каждом узле останется только один класс, то T1 = Tmax, но так как часто применяются методы ранней остановки (prepruning), то может существовать поддерево дерева Tmax, имеющее такую же ошибку классификации3. Для получения следующего дерева в последовательности с соответствующим ему значением выполним следующие действия. Обозначим через Tt – ветвь дерева Т с корневым узлом t. Определим, при каких значениях дерево T – Tt будет лучше, чем Т. Если провести отсечку в узле t, тогда его вклад в полную стоимость дерева T – Tt станет равным C ({t}) = R(t) + , где R(t) = r(t)* p(t); r(t) – ошибка классификации узла t и p(t) – пропорция случаев, которые «прошли» через узел t. Альтернативный вариант: R(t)= m/n, 3
Алгоритм вычисления T1 из Tmax прост. Найти любую пару листов с общим предком, которые могут быть объединены, т.е. отсечены в родительский узел без увеличения ошибки классификации. R(t) = R(l) + R(r), где r и l – листы узла t. Продолжать пока таких пар больше не останется. Так мы получим дерево, имеющее такую же стоимость как Tmax при = 0, но менее ветвистое, чем Tmax. 37
где m – число примеров классифицированных некорректно, а n – общее число классифицируемых примеров для всего дерева. Вклад Tt в полную стоимость дерева Т составит C (Tt) = R(Tt) + + | Tt |, где . Дерево T – Tt будет лучше, чем Т, когда C ({t}) = C (Tt), потому что при этой величине они имеют одинаковую стоимость, но T – Tt наименьшее из двух. Когда C ({t}) = C ( Tt), получаем: , решая это уравнение для , получаем: . Далее для любого узла t в Т1, если увеличиваем , тогда для
дерево, полученное отсечением в узле t, будет лучше, чем Т1. Основная идея изменений состоит в следующем. Вычислим значение для каждого узла в дереве Т1, и затем выберем «слабые связи» (их может быть больше чем одна), т.е. те узлы, для которых величина
является наименьшей. Мы отсекаем Т1 в этих узлах, чтобы получить Т2 – следующее дерево в последовательности. Затем мы продолжим
38
этот процесс для полученного дерева дальше до тех пор пока не получим корневой узел (дерево, в котором только один узел)4. Рассмотрим метод подробнее на примере. В качестве примера вычислим последовательность поддеревьев и соответствующих значений для дерева, изображенного на рис. 2.3.
Рис. 2.3. Дерево Тmax
4 Предлагаемое алгоритмическое решение: Т1 = Т( =0) 1=0 k=1 while Тk > {root node} do begin для всех нетерминальных узлов (!листов) в t
Тk
, k + 1 = mint gk(t) Обойти сверху-вниз все узлы и обрезать те, где gk(t) = k + 1, чтобы получить Tk+1 k=k+1 end. 39
Узлы необходимо обходить сверху вниз, чтобы не отсекать те из них, которые отсекутся сами собой в результате отсечения n-го предка. Очевидно, что Т1 = Тmax, так как все листы содержат примеры одного класса и отсечение любого узла (t3 или t5) приведёт к возрастанию ошибки классификации. Затем мы вычисляем g1(t) для всех узлов t в Т1. . Здесь R(t1) – ошибка классификации. Если превратить t1 в лист, то следует сопоставить ему какой либо класс; так как число примеров обоих классов одинаково (равно 100), то класс выбираем наугад, в любом случае он неправильно классифицирует 100 примеров. Всего дерево обучалось на 200 примерах (100+100=200 для корневого узла). R(t1) = m/n. m=100, n=200. R(t1) = 1/2. – сумма ошибок всех листов поддерева. Она вычисляется как сумма по всем листам отношений количества неправильно классифицированных примеров в листе к общему числу примеров для дерева. В примере все делим на 200. Так как для поддерева с корнем в t1 (оно же дерево Т1) все листы не имеют неправильно классифицированных примеров, поэтому . – количество листов поддерева с корнем в узле t1. Их – 5. Получаем: g1(t1) = (1/2 – 0)/(5 – 1) = 1/8. g1(t2) = 3/20. g1(t3) = 1/20. g1(t5) = 1/20. Узлы t3 и t5 оба хранят минимальное значение g1, и, обрезая дерево Т1 в двух этих узлах мы получаем новое дерево Т2, (рис. 2.4). Далее мы продолжаем вычислять значение g для дерева Т2. g2(t1) = (100/200 – (0/200 + 10/200 + 10/200)) / (3 – 1) = 2/10. g2(t2) = (60/200 – (0/200 + 10/200)) / (2 – 1) = 1/4. 40
Рис. 2.4. Дерево Т2.
Минимум хранится в узле t1, поэтому обрезаем в t1 и получаем корень дерева (Т3 = { t1}). На этом процесс отсечения заканчивается. Полученная последовательность значений имеет вид: 1 = 0, 2 = 1/20, 3 = 2/10. [0, 1/20), Т2 – для В итоге Т1 является лучшим деревом для [1/20, 2/10) и Т3 = { t1} при [2/10, ). Выбор финального дерева. Итак, имеем последовательность деревьев, из которой необходимо выбрать лучшее, то, которое будем использовать в дальнейшем. Наиболее простым способом является выбор финального дерева посредством тестирования последовательности деревьев на тестовой выборке. В этом случае дерево, дающее минимальную ошибку классификации, и будет лучшим. Однако, это не единственно возможный путь, так как используемая нами процедура отсечения дерева использовала только данные, на которых строилось первоначальное дерево. Даже не сами данные, а количество примеров каждого класса, которое "прошло" через узел. Естественно, качество тестирования во многом зависит от объема тестовой выборки и «равномерности» данных, которые попали и в обучающую, и в тестовую выборки. Часто можно наблюдать, что последовательность деревьев дает ошибки близкие друг к другу. Этот случай изображен на рис. 2.5. Представленная длинная плоская последовательность очень чувствительна к данным, которые будут выбраны в качестве тестовой выборки. Чтобы уменьшить эту нестабильность CART использует 41
1-SE правило, т.е. выбирает минимальное по размеру дерево с Rts в пределах интервала [min Rts, min min Rts + SE] (где Rts – ошибка классификации дерева; SE – стандартная ошибка, являющаяся оценкой реальной ошибки ,
где ntest – число примеров в тестовой выборке). Данная ситуация проиллюстрирована на рис. 2.5.
Рис. 2.5. Зависимость ошибки от размера дерева
Перекрестная проверка. Перекрестная проверка (V-fold crossvalidation) – самая оригинальная и сложная часть алгоритма CART. Этот путь выбора финального дерева используется тогда, когда набор данных для обучения мал или каждая запись в нем по своему «уникальна» так, что мы не можем выделить выборку для обучения и выборку для тестирования. В таком случае строим дерево на всех данных и последовательно вычисляем 1, 2, …, k и Т1 > Т2 > … > Тn. Обозначим через Тk – наименьшее минимизируемое поддерево для [ k, k+1). Теперь мы хотим выбрать дерево из последовательности, уже просмотрев все имеющиеся данные. Нюанс заключается в том, что 42
мы собираемся вычислить ошибку дерева Тk из последовательности косвенным путем. Шаг 1. Установим
β 1 = 0, β 2 = α 2α 3, β 3 = α 3α 4,....., βN − 1 = αN − 1αN , βN = ∞ . Считается, что k будет типичным значением для [ k, k+1) и, следовательно, как значение соответствует Тk. Шаг 2. Разделим весь набор данных на V групп одинакового размера G1, G2, …, Gv. Обычно [13] рекомендуется брать V = 10. Затем для каждой группы Gi вычислим: • последовательность деревьев с помощью описанного выше механизма отсечения на всех данных, исключая Gi., и определим значения T(i)( 1), T(i)( 2), …, T(i)( N) для этой последовательности; • ошибку дерева T(i)< k) на Gi. Здесь T(i)( k) означает наименьшее минимизированное поддерево из последовательности, построенное на всех данных, исключая Gi для = k. Шаг 3. Для каждого k просуммируем ошибку T(i)( k) по всем Gi (i = 1, …, V). Пусть h будет с наименьшей общей ошибкой. Так как h соответствует дереву Тh, мы выбираем Тh из последовательности, построенной на всех данных в качестве финального дерева. Показатель ошибки, вычисленный с помощью перекрестной проверки можно использовать как оценку ошибки дерева. Альтернативным путем выбора финального дерева из последовательности является использование правила 1-SE на последнем шаге. Алгоритм обработки пропущенных значений. Большинство алгоритмов Data Mining предполагает отсутствие пропущенных значений. В практическом анализе это предположение часто является неверным. Вот только некоторые из причин, которые могут привести к пропущенным данным: • респондент не желает отвечать на некоторые из поставленных вопросов; • ошибки при вводе данных; • объединение не совсем эквивалентных наборов данных. Наиболее общее решение – отбросить данные, которые содержат один или несколько пустых атрибутов. Однако это решение имеет свои недостатки. 43
Смещение данных. Если отброшенные данные лежат несколько «в стороне» от оставленных, тогда анализ может дать предубеждённые результаты. Потеря мощности. Может возникнуть ситуация, когда придется отбросить много данных. В таком случае точность прогноза сильно уменьшится. Если мы хотим строить и использовать дерево на неполных данных, то необходимо получить ответы на следующие вопросы: • как определить качество разбиения; • в какую ветвь необходимо послать наблюдение, если пропущена переменная, на которую приходится наилучшее разбиение (построение дерева и тренировка)? Заметим, что наблюдение с пропущенной меткой класса бесполезно для построения дерева и будет отброшено. Чтобы определить качество разбиения, алгоритм CART просто игнорирует пропущенные значения. Это «дает ответ» на первый вопрос, но необходимо ещё определить, по какому пути посылать наблюдение с пропущенной переменной, содержащей наилучшее разбиение. С этой целью CART вычисляет так называемое "суррогатное" разбиение. Оно создает наиболее близкие к лучшему подмножества примеров в текущем узле. Чтобы определить значение альтернативного разбиения как суррогатного, создадим кросстаблицу (табл. 2.1). Таблица 2.1 Кросс-таблица p(l*, l") p(r*, l")
p(l*, r") p(r*, r")
В этой таблице p(l*, l") обозначает пропорцию случаев, которые будут посланы в левую ветвь при лучшем s* и альтернативном разбиении s" и аналогично для p(r*, r"), так p(l*, l") + p(r*, r") – пропорция случаев, которые посланы в одну и ту же ветвь для обоих разбиений. Это мера сходства разбиений, или иначе, это говорит, насколько хорошо мы предсказываем путь, по которому послан случай наилучшим разбиением, смотря на альтернативное разбиение. Если p(l*, l") + p(r*, r") < 0.5, тогда можем получить лучший 44
суррогат, поменяв левую и правую ветви для альтернативного разбиения. Кроме того, необходимо заметить, что пропорции в табл. 2.1 вычислены, когда обе переменные (суррогатная и альтернативная) наблюдаемы.
Рис. 2.6. Лучшее и суррогатное разбиения
Альтернативные разбиения с p(l*, l") + p(r*, r") > max(p(l*), p(r*)) отсортированы в нисходящем порядке сходства. Теперь, если пропущена переменная лучшего разбиения, тогда используем первую из суррогатных в списке, если пропущена и она, тогда следующую и т.д. Если пропущены все суррогатные переменные, используем max(p(l*), p(r*)). На рис. 2.6 изображен пример лучшего и альтернативного разбиения. Каково значение альтернативного разбиения по супружескому статусу как суррогатного? Видно, что примеры 6 и 10 оба разбиения послали влево. Следовательно, p(l*, l") = 2/7. Оба разбиения послали примеры 1 и 4 направо – p(r*, r") = 2/7. Его значение как суррогатного есть p(l*, l") + p(r*, r") = 2/7 + 2/7 = 4/7. Так как max(p(l*), p(r*)) = 4/7, то разбиение по супружескому статусу не является хорошим суррогатным разбиением. Регрессия. Построение дерева регрессии во многом схоже с деревом классификации. Сначала мы строим дерево максимального размера, затем обрезаем дерево до оптимального размера. Основное достоинство деревьев по сравнению с другими методами регрессии – возможность работать с многомерными задачами (рис. 2.7) и задачами, в которых присутствует зависимость выходной переменной от переменной или переменных категориального типа [20]. 45
Основная идея – разбиение всего пространства на прямоугольники [25], необязательного одинакового размера, в которых выходная переменная считается постоянной. Заметим, что существует сильная зависимость между объемом обучающей выборки и ошибкой ответа дерева.
Рис. 2.7. Пример двумерной задачи
Процесс построения дерева происходит последовательно. На первом шаге мы получаем регрессионную оценку просто как константу по всему пространству примеров. Константу считаем просто как среднее арифметическое выходной переменной в обучающей выборке. Итак, если мы обозначим все значения выходной переменной как Y1, Y2, …, Yn , тогда регрессионная оценка получается в виде: , где R – пространство обучающих примеров, n – число примеров, IR(x) – индикаторная функция пространства – фактически, набор правил, описывающих попадание переменной x в пространство. Мы рассматриваем пространство R как прямоугольник. На втором 46
шаге делим пространство на две части. Выбирается некоторая переменная xi и, если переменная числового типа, тогда определяем . Если xi – категориального типа с возможными значениями A1, A2, …, Aq, тогда выбирается некоторое подмножество I { A1, …, An} и далее определяем . Регрессионная оценка принимает вид: , где I1 = {i, xi R1} и | I1| – число элементов в I1. Как выбрать лучшее разбиение? В качестве оценки здесь служит сумма квадратов разностей: . Выбирается разбиение с минимальной суммой квадратов разностей. Продолжаем разбиение до тех пор, пока в каждом подпространстве не останется малое число примеров или сумма квадратов разностей не станет меньше некоторого порога. Отсечение, выбор финального дерева. Эти операции происходят аналогично операции построения дерева классификации. Единственное отличие – определение ошибки ответа дерева:
или, иначе говоря, среднеквадратичной ошибки ответа. Стоимость дерева при этом равна: . Другие операции происходят аналогично ранее описанным при построении дерева классификации.
47
3. Алгоритмы нахождения ассоциативных правил 3.1. Понятие ассоциативного правила
Определение. Пусть I = {i1, i2, i3, …, in} – множество (набор) элементов. Пусть D – множество транзакций, где каждая транзакция T – набор элементов из I, T I. Каждая транзакция представляет собой бинарный вектор, где t[k] = 1, если ik элемент присутствует в транзакции, иначе t[k] = 0. Мы говорим, что транзакция T содержит X – некоторый набор элементов из I, если X T. Ассоциативным правилом называется импликация X Y, где X I, Y I и X Y = = . Правило X Y имеет поддержку s (support), если s% транзакций из D содержат X Y, supp(X Y) = supp (X Y). Достоверность правила показывает какова вероятность того, что из X следует Y. Правило X Y справедливо с достоверностью c (confidence), если c% транзакций из D, содержащих X, также содержат Y, conf(X Y) = supp(X Y)/supp(X). Проанализируем это на конкретном примере: «75% транзакций, содержащих хромосому типа 1, также содержат хромосому типа 2. 3% от общего числа всех транзакций содержат оба типа хромосом». 75% – это достоверность (confidence) правила, 3% это поддержка (support), иными словами «Хромосома типа 1» «Хромосома типа 2» с вероятностью 75%. Другими словами, целью анализа является установление следующих зависимостей: если в транзакции встретился некоторый набор элементов X, то на основании этого можно сделать вывод о том, что другой набор элементов Y также же должен появиться в этой транзакции. Установление таких зависимостей дает нам возможность находить очень простые и интуитивно понятные правила. Алгоритмы поиска ассоциативных правил предназначены для нахождения всех правил X Y, причем поддержка и достоверность этих правил должны быть выше некоторых наперед определенных порогов [21, 31], называемых соответственно минимальной поддержкой (minsupport) и минимальной достоверностью (minconfidence). Задача нахождения ассоциативных правил разбивается на две подзадачи: 48
Нахождение всех наборов элементов, которые удовлетворяют порогу minsupport. Такие наборы элементов называются часто встречающимися. Генерация правил из полученных в п. 1 наборов элементов с достоверностью, удовлетворяющей порогу minconfidence. Одним из первых алгоритмов, эффективно решающих подобный класс задач, является алгоритм APriori. Кроме этого алгоритма в последнее время был разработан ряд других алгоритмов: DHP, Partition, DIC и др. Значения параметров «минимальная поддержка» и «минимальная достоверность» выбираются таким образом, чтобы ограничить количество найденных правил. Если поддержка имеет большое значение, то алгоритмы будут находить правила, хорошо известные аналитикам или настолько очевидные, что нет никакого смысла проводить такой анализ. С другой стороны, низкое значение поддержки ведет к генерации огромного количества правил, что, конечно, требует существенных вычислительных ресурсов. Тем не менее, большинство интересных правил находится именно при низком значении порога поддержки. Хотя слишком низкое значение поддержки ведет к генерации статистически необоснованных правил. Поиск ассоциативных правил совсем не тривиальная задача, как может показаться на первый взгляд. Одна из проблем – алгоритмическая сложность при нахождении часто встречающих наборов элементов, т.к. с ростом числа элементов в I (| I |) экспоненциально растет число потенциальных наборов элементов. Обобщенное ассоциативное правило. При поиске ассоциативных правил, мы предполагали, что все анализируемые элементы однородны. Однако не составит большого труда дополнить транзакцию информацией о том, в какую группу входит элемент и построить иерархию элементов. Приведем пример такой группировки (таксономии) в виде иерархической модели. Пусть нам дана база транзакций D и известно, в какие группы (таксоны) входят элементы. Тогда можно извлекать из данных правила, связывающие одни группы с другими группами, отдельные элементы групп с целыми группами и т.д. Определение. Обобщенным ассоциативным правилом [16] называется импликация X Y, где X I, Y I и X Y = и где ни один из элементов, входящих в набор Y, не является предком ни 49
одного элемента, входящего в X. Поддержка и достоверность подсчитываются так же, как и в случае ассоциативных правил (см. определение выше). Введение дополнительной информации о группировке элементов в виде иерархии даст следующие преимущества: • поможет установить ассоциативные правила не только между отдельными элементами, но и между различными уровнями иерархии (группами); • отдельные элементы могут иметь недостаточную поддержку, но в целом группа может удовлетворять порогу minsupport. Для нахождения таких правил можно использовать любой из вышеназванных алгоритмов. При этом каждую транзакцию нужно дополнить всеми предками каждого элемента, входящего в транзакцию. Однако, применение «в лоб» этих алгоритмов неизбежно приведет к определенным проблемам: • элементы на верхних уровнях иерархии стремятся к значительно большим значениям поддержки по сравнению с элементами на нижних уровнях; • с добавлением в транзакции групп увеличилось количество атрибутов и, соответственно, размерность входного пространства. Это усложняет задачу, а также ведет к генерации большего количества правил; • появляются избыточные правила, противоречащие определению обобщенного ассоциативного правила, например, «Хромосома типа 1» «Хромосомы». Очевидно, что практическая ценность такого «открытия» нулевая при 100% достоверности. Следовательно, нужны специальные операторы, удаляющие подобные избыточные правила. Для нахождения обобщенных ассоциативных правил желательно использование специализированного алгоритма (один из которых представлен ниже), который устраняет вышеописанные проблемы и к тому же работает быстрее, чем стандартный алгоритм APriori. Группировать элементы можно не только по вхождению в определенную группу, но и по другим характеристикам, например по цене (дешево, дорого), бренду и т.д. Численные ассоциативные правила. При поиске ассоциативных правил, задача была существенно упрощена. По сути все сво50
дилось к тому, присутствует в транзакции элемент или нет. Т.е. если рассматривать случай рыночной корзины, то мы рассматривали два состояния: куплен товар или нет, проигнорировав, например, информацию о том, сколько было куплено, кто купил, характеристики покупателя и т.д. Можно сказать, что рассматривали «булевские» ассоциативные правила. Если взять любую базу данных, каждая транзакция состоит из различных типов данных: числовых, категориальных и т.д. Для обработки таких записей и извлечения численных ассоциативных правил в работе [12] был предложен специальный алгоритм Приведем пример численного ассоциативного правила. [Возраст: 30-35] и [Семейное положение: женат] доход: 1000-1500 ден. единиц].
[Месячный
Помимо описанных выше ассоциативных правил существуют, т.н. косвенные ассоциативные правила, ассоциативные правила с отрицанием, временные ассоциативные правила для событий, связанных во времени, и другие. 3.2. Анализ возможностей и ограничений метода поиска ассоциативных правил
При помощи использования алгоритмов поиска ассоциативных правил аналитик может получить правила вида «Из A следует B» [29], с различными значениями поддержки и достоверности. Однако в большинстве случаев количество правил необходимо ограничивать заранее установленными минимальными и максимальными значениями поддержки и достоверности. Если значение поддержки правила слишком велико, то в результате работы алгоритма будут найдены правила очевидные и хорошо известные. Слишком низкое значение поддержки приведет к нахождению очень большого количества правил, которые, возможно, будут в большей части необоснованными, но не известными и не очевидными для аналитика. Таким образом, необходимо определить такой интервал, «золотую середину», который, с одной стороны, обеспечит нахождение неочевидных правил, а с другой их обоснованность. 51
Если уровень достоверности слишком мал, то ценность правила вызывает серьезные сомнения. Например, правило с достоверностью в 3% только условно можно назвать правилом. Области эффективного применения метода поиска ассоциативных правил. Алгоритмы выявления ассоциативных правил нашли свое применение в основном в анализе объектов типа «покупательская корзина» [30]: • создание моделей, предсказывающих, какие товары покупатели могут выбрать в зависимости от того, что уже имеется в их корзинах; • розничная торговля: определение товаров, которые стоит продвигать совместно; выбор местоположения товара в магазине; анализ потребительской корзины; прогнозирование спроса; • перекрестные продажи: если есть информация о том, что клиенты приобрели продукты A, Б и В, то какие из них вероятнее всего купят продукт Г; • маркетинг: поиск рыночных сегментов, тенденций покупательского поведения; • сегментация клиентов: выявление общих характеристик клиентов компании, выявление групп покупателей; • оформление каталогов, анализ сбытовых кампаний фирмы, определение последовательностей покупок клиентов (какая покупка последует за покупкой товара А); • анализ Web-логов. 3.3. Алгоритм Apriori
Современные базы данных могут иметь очень большие размеры, достигающие многих гига- и даже терабайтов, и главное – тенденцию к дальнейшему их увеличению. Поэтому, для нахождения ассоциативных правил требуются эффективные масштабируемые алгоритмы [21, 31], позволяющие решать задачу выделения правил за приемлемое время. Одним из таких алгоритмов является алгоритм Apriori. Для того чтобы было можно применить алгоритм, необходимо сначала провести предобработку исходных данных (табл. 3.1) в два этапа: во-первых, привести все данные к бинарному виду; и во-вторых, изменить структуру данных, так чтобы количество 52
столбцов в таблице было равно количеству элементов (табл. 3.2), присутствующих во множестве транзакций D. Каждая запись теперь соответствует транзакции, где в соответствующем столбце стоит 1, если элемент присутствует в транзакции, и 0, если не присутствует. Заметим, что исходный вид таблицы может быть отличным от приведенного в табл. 3.2. Главное, чтобы данные были преобразованы к нормализованному виду, иначе алгоритм будет неприменим. Таблица 3.1 Обычный вид базы данных транзакций Номер транзакции 1001 1001 1001 1002 1002 1003 1003 1003 …
Наименование элемента А D E А F B A C …
Количество 2 3 1 2 1 2 2 2 … Таблица 3.2
Нормализованный вид TID 1001 1002 1003
A 1 1 1
B 0 0 1
C 0 0 1
D 1 0 0
E 1 0 0
F 0 1 0
G 0 0 0
H 0 0 0
… … … …
Как видно из таблицы, все элементы упорядочены в алфавитном порядке (если это числа, они должны быть упорядочены в числовом порядке). Это сделано неслучайно. Итак, данные преобразованы, теперь можно приступить к описанию самого алгоритма. В алгоритме Apriori на первом шаге необходимо найти часто встречающиеся наборы элементов, а затем, на втором, извлечь из них правила. Количество элементов в наборе будем называть размером набора, а набор, состоящий из k элементов, – k-элементным набором. 53
Свойство анти-монотонности. Выявление часто встречающихся наборов элементов – операция, требующая значительных вычислительных ресурсов и, соответственно, времени. Примитивный подход к решению данной задачи – простой перебор всех возможных наборов элементов. Это потребует O(|I|2) операций, где |I| – количество перебираемых элементов. Apriori использует одно из свойств поддержки – поддержка любого набора элементов не может превышать минимальной поддержки любого из его подмножеств. Например, поддержка 3-элементного набора будет всегда меньше или равна поддержке 2-элементных наборов. Дело в том, что любая транзакция, содержащая 3-элементный набор, также должна содержать все 2-элементные наборы, причем обратное не верно. Это свойство носит название анти-монотонности и служит для снижения размерности пространства поиска. Не имей мы в наличии такого свойства, нахождение многоэлементных наборов было бы практически невыполнимой задачей в связи с экспоненциальным ростом объема вычислений. Свойству анти-монотонности можно дать и другую формулировку: с ростом размера набора элементов поддержка уменьшается, либо остается такой же. Из всего вышесказанного следует, что любой k-элементный набор будет часто встречающимся тогда и только тогда, когда все его (k-1)-элементные подмножества будут часто встречающимися. Все возможные наборы элементов из I можно представить в виде решетки, начинающейся с пустого множества, затем на 1-м уровне одноэлементные наборы, на 2-м – 2-элементные и т.д. На kм уровне представлены k-элементные наборы, связанные со всеми своими (k-1)-элементными подмножествами. Рассмотрим рис. 3.1, иллюстрирующий набор элементов I – {A, B, C, D}. Предположим, что набор из элементов {A, B} имеет поддержку ниже заданного порога и, соответственно, не является часто встречающимся. Тогда, согласно свойству анти-монотонности, все его супермножества также не являются часто встречающимися и отбрасываются. Вся эта ветвь, начиная с {A, B}, выделена тоном. Использование этой эвристики позволяет существенно сократить пространство поиска.
54
Описание алгоритма. Алгоритм является итерационным. Сначала действия выполняются для одноэлементных наборов, а затем для 2-х, 3-х и т.д. элементных. На первом шаге первой итерации алгоритма подсчитываются одноэлементные часто встречающиеся наборы. Для этого необходимо пройтись по всему набору данных и подсчитать для них поддержку, т.е. сколько раз набор встречается в базе данных. Первый шаг следующих итераций алгоритма также состоит из двух этапов генерации потенциально часто встречающихся наборов элементов (называемых кандидатами) и подсчета поддержки этих кандидатов.
Рис. 3.1. Набор элементов I – {A, B, C, D}
Описанный шаг 1 алгоритма можно записать в виде некоторого псевдокода: F1 = {часто встречающиеся одноэлементные наборы} для (k=2; Fk-1 <> k++ - «увеличивая k последовательно на 1») { Ck = Apriorigen(Fk-1) // генерация кандидатов для всех транзакций t T { 55
Ct = subset(Ct , t) // удаление избыточных правил для всех кандидатов c Ct c.count } Fk = { c Ck | c.count >= minsupport} // отбор кандидатов } Результат U Fk Шаг 1. Генерация кандидатов. При поиске многоэлементных наборов нет необходимости обращаться к базе данных, как было в случае одноэлементных наборов. Для того чтобы получить kэлементные наборы, воспользуемся (k-1)-элементными наборами, которые были определены на предыдущей итерпации алгоритма и являются часто встречающимися. Помним, что наш исходный набор хранится в упорядоченном виде. Генерация кандидатов также состоит из двух фаз – формирование новых и удаление избыточных кандидатов. Формирование. Каждый кандидат Ck будет формироваться путем расширения часто встречающегося набора размера (k-1) добавлением элемента из другого (k-1)- элементного набора. Приведем алгоритм этой функции Apriorigen в виде небольшого SQL-подобного запроса. insert into Ck select p.item1, p.item2, …, p.itemk-1, q.itemk-1 From Fk-1 p, Fk-1 q where p.item1= q.item1, p.item2 = q.item2, … , p.itemk-2 = q.itemk2, p.itemk-1 < q.itemk-1 Удаление. На основании свойства анти-монотонности, следует удалить все наборы c Ck если хотя бы одно из его (k-1) подмножеств не является часто встречающимся. Шаг 1. Подсчет поддержки. После генерации кандидатов следующим этапом шага алгоритма является подсчет поддержки для каждого кандидата. Очевидно, что количество кандидатов может быть очень большим и нужен эффективный способ подсчета. Самый тривиальный способ – сравнить каждую транзакцию с каждым кандидатом. Но это не лучшее решение. Гораздо быстрее и эффективнее использовать подход, основанный на хранении кандидатов в 56
хэш-дереве. Внутренние узлы дерева содержат хэш-таблицы с указателями на потомков, а листья – на кандидатов. Это дерево нам пригодится для быстрого подсчета поддержки кандидатов. Хэш-дерево строится каждый раз, когда формируются кандидаты. Первоначально дерево состоит только из корня, который является листом, и не содержит никаких кандидатов-наборов. Каждый раз, когда формируется новый кандидат, он заносится в корень дерева и так до тех пор, пока количество кандидатов в корне-листе не превысит некоего порога. Как только количество кандидатов становится больше порога, корень преобразуется в хэш-таблицу, т.е. становится внутренним узлом, и для него создаются потомкилистья. И все примеры распределяются по узлам-потомкам согласно хэш-значениям элементов, входящих в набор, и т.д. Каждый новый кандидат хэшируется на внутренних узлах, пока он не достигнет первого узла-листа, где он и будет храниться, пока количество наборов опять же не превысит порога. Хэш-дерево с кандидатами-наборами построено, теперь, используя хэш-дерево, легко подсчитать поддержку для каждого кандидата. Для этого нужно «пропустить» каждую транзакцию через дерево и увеличить счетчики для тех кандидатов, чьи элементы также содержатся и в транзакции, т.е. Ck Ti = Ck. На корневом уровне хэш-функция применяется к каждому элементу из транзакции. Далее, на втором уровне, хэш-функция применяется ко вторым элементам и т.д. На k-уровне хэшируется k-элемент. И так до тех пор, пока не достигнем уровня листа. Если кандидат, хранящийся в листе, является подмножеством рассматриваемой транзакции, тогда увеличиваем счетчик поддержки этого кандидата на единицу. После того, как каждая транзакция из исходного набора данных «пропущена» через дерево, можно проверить удовлетворяют ли значения поддержки кандидатов минимальному порогу. Кандидаты, для которых это условие выполняется, переносятся в разряд часто встречающихся. Кроме того, следует запомнить и поддержку набора, она нам пригодится при извлечении правил. Эти же действия применяются для нахождения (k+1)-элементных наборов и т.д. После того как найдены все часто встречающиеся наборы элементов, можно приступить непосредственно к извлечению правил. Шаг 2. Извлечение правил – менее трудоемкая задача. Во-первых, для подсчета достоверности правила достаточно знать поддержку 57
самого набора и множества, лежащего в условии правила. Например, имеется часто встречающийся набор {A, B, C} и требуется подсчитать достоверность для правила AB C. Поддержка самого набора нам известна, но и его множество {A, B}, лежащее в условии правила, также является часто встречающимся в силу свойства антимонотонности, и, значит, его поддержка нам известна. Тогда мы легко сможем подсчитать достоверность. Это избавляет нас от нежелательного просмотра базы транзакций, который потребовался бы в том случае, если бы эта поддержка была неизвестна. Чтобы извлечь правило из часто встречающегося набора F, следует найти все его непустые подмножества. И для каждого подмножества s мы сможем сформулировать правило s (F – s), если достоверность правила conf(s (F – s)) = supp(F)/supp(s) не меньше порога minconf. Заметим, что числитель остается постоянным. Тогда достоверность имеет минимальное значение, если знаменатель имеет максимальное значение, а это происходит в том случае, когда в условии правила имеется набор, состоящий из одного элемента. Все супермножества данного множества имеют меньшую или равную поддержку и, соответственно, большее значение достоверности. Это свойство может быть использовано при извлечении правил. Если мы начнем извлекать правила, рассматривая сначала только один элемент в условии правила, и это правило имеет необходимую поддержку, тогда все правила, где в условии стоят супермножества этого элемента, также имеют значение достоверности выше заданного порога. Например, если правило A BCDE удовлетворяет минимальному порогу достоверности minconf, тогда AB CDE также удовлетворяет. Для того, чтобы извлечь все правила, используется рекурсивная процедура. Важное замечание – любое правило, составленное из часто встречающегося набора, должно содержать все элементы набора. Например, если набор состоит из элементов {A, B, C}, то правило A B не должно рассматриваться. 3.4. Выявление обобщенных ассоциативных правил
Определение. Иерархией (таксономией) элементов называется лес направленных ациклических деревьев, листьями которых являются элементы транзакций, а внутренними узлами – группы элементов. 58
Рассмотрим пример иерархии товаров и товарных групп приведенный на рис. 3.2 [26]. Имея подобную иерархию, можно получить, например, такие правила: «Если покупатель купил Сок, то он, скорее всего, захочет купить Кефир»; «Если покупатель купил Молочные продукты, то он, скорее всего, захочет купить Минеральную воду». Таким образом, в получаемых правилах, как в условии, так и в следствии могут присутствовать элементы, находящиеся на разных уровнях таксономии.
Рис. 3.2. Пример иерархии товаров и товарных групп
Введение информации о принадлежности элементов транзакций к той или иной группе может дать следующие преимущества: • будут выявлены ассоциативные правила не только между отдельными элементами, но и между различными уровнями иерархии; • в некоторых случаях отдельные элементы могут иметь очень маленькую поддержку, однако, значение поддержки всей группы, в которую входит этот элемент, может быть больше порога минимальной поддержки. Это приведет к тому, что ранее не выявленное потенциально интересное правило, построенное на элементах ниж59
него уровня иерархии, может быть получено, но его элементами будут либо элементы транзакции, либо предки этих элементов. Введение информации о группировке элементов может использоваться для отсечения «неинтересных» правил. Описание задачи. Пусть I={i1, i2, …, in} –множество элементов – лес направленных деревьев. Дуги в I – это зависимости между элементами. Пусть элементы, принадлежащие I, расположены в некой иерархии. Если имеется дуга от a к b, то говорят, что a – предок b, или b – потомок a (т.е. a – есть некоторое обобщение b). Пусть имеется множество транзакций D, где каждая транзакция T – это множество элементов (событий), произошедших одновременно. Тогда имеет место следующее утверждение: T I. Определение. Расширенной транзакцией называется транзакция, расширенная предками всех элементов, входящих в эту транзакцию. Определение. Обобщенным ассоциативным правилом называется импликация X Y, где X I, Y I и X Y = , и где ни один из элементов, входящих в набор Y, не является предком ни одного элемента, входящего в X. Правило X Y имеет поддержку s (support), если s% расширенных транзакций содержит X Y, supp(X Y) = supp(X Y). Достоверность правила показывает, какова вероятность того, что из X следует Y. Правило X Y справедливо с достоверностью c, если c% расширенных транзакций, содержащих X, также содержат Y, conf(X Y) = supp(X Y)/supp(X). Будем называть правило X Y обобщенным, потому что элементы, входящие в него могут находиться на любом уровне таксономии. Также будем называть x предком x и x потомком x. Задача. Пусть D – это множество транзакций, а I – множество элементов, находящихся в иерархической зависимости. Необходимо найти закономерности, которые являются обобщенными ассоциативными правилами вида X Y, причем supp(X Y) >= minsupp и conf(X Y) >= minconf. Такая постановка задачи имеет одну неприятность. Дело в том, что при поиске обобщенных ассоциативных правил будут заведомо найдены «лишние», не представляющие интереса для предметной области, правила. Для их устранения вводится такой параметр, как «уровень интереса правила». 60
Определение «интересных» правил. Порядка 50 – 70 % обобщенных ассоциативных правил, которые могут быть найдены, являются потенциально неинтересными. Для их выявления введем параметр – «уровень интереса правила». Пусть Z – это предок Z, где Z и Z – множества элементов, входящих в иерархию (Z ,Z I). Z является предком Z, только в том случае, если Z можно получить из Z путем подмены одного или нескольких элементов их предками. Если рассматривать иерархию на рис. 3.2, то примером могут быть эти два множества: Z = {Сок, Кефир, Бумага}, Z = {Напитки, Молочные продукты, Бумага}. Будем называть правила X Y, X YиX Y предками правила X Y. Y является ближайшим предком Определение. Правило X правила X Y, если не существует такого правила X" Y", что X" Y" – это предок X YиX Y – это предок X" Y". Рассмотрим правило X Y. Пусть Z = X Y. Заметим, что supp(X Y) = supp(Z). Назовем EZ[Pr(Z)] ожидаемым значением поддержки Pr(Z) относительно Z. И пусть Z ={z1, …, zj, zj+1, …, zn}, Z ={ z1, …, zj}, 1 <= j <= n. Тогда можно определить:
. Аналогично EX Y [Pr(Y|X)] определим как ожидаемое значение достоверности правила X Y относительно X Y. Пусть Y={y1, …, yj, yj+1…, yn}, Y ={ y1, …, yj}, 1<= j <= n. Тогда можно определить . Определение. Правило X Y называется R-интересным относительно правила-предка X Y, если поддержка самого правила X Y в R раз больше ожидаемой поддержки правила X Y отноY или если достоверность самого сительно правила-предка X правила X Y в R раз больше ожидаемой достоверности правила X Y относительно правила-предка. Определение. Правило называется интересным, если у него нет предков или оно является R интересным относительно всех своих ближайших предков. 61
Определение. Правило называется частично интересным, если у него нет предков или оно является R-интересным относительно любого своего ближайшего предка. Пример. Пусть в результате работы алгоритма мы получили правила, перечисленные в табл. 3.3. Поддержка отдельных элементов входящих в правила приведена в табл. 3.4. Иерархия элементов изображена на рис. 3.2. Уровень интереса R = 1.3. Рассмотрим правило 3 и определим, является ли это правило интересным / частично интересным. Для этого нам необходимо проверить выполнимость неравенства Pr(Сок
Кефир) > EСок
Кефир[Pr(Сок
Кефир)]*R. Таблица 3.3
Обобщенные ассоциативные правила N правила 1 2 3
Текст правила Сок Молочные продукты Безалкогольные напитки Кефир Сок Кефир
Поддержка, % 10 15 9 Таблица 3.4
Поддержка элементов Элемент Напитки Безалкогольные напитки Сок Молочные продукты Кефир
Поддержка, % 7 5 3 6 4
Согласно определениям, ищем ближайших предков к правилу 3. Их два – правило 2 и правило 1. Подсчитаем ожидаемую поддержку для правила 2.
Неравенство Pr(Сок Кефир) = 9 > EБезалкогольные напитки Кефир(Сок Кефир)*R = 11.7 не выполняется, следовательно, правило 3 не является интересным. 62
Подсчитаем ожидаемую поддержку для правила 1.
Неравенство Pr(Сок
Кефир) = 9 > EСок
Молочные продукты(Сок
Кефир)*R = 8.7
выполняется, следовательно, правило 3 является частично интересным. Теперь с учетом полученных результатов можно сформулировать задачу иначе. Пусть D – это множество транзакций, а I – множество элементов, находящихся в иерархической зависимости. Необходимо найти закономерности, которые являются обобщенными ассоциативными правилами вида X Y. При этом поддержка каждого правила должна быть больше некоторого заданного порогового значения минимальной поддержки и достоверность должна быть больше некоторого заданного порогового значения минимальной достоверности; и кроме этого каждое правило должно быть интересным или частично интересным. 3.5. Алгоритм вычисления обобщенных ассоциативных правил
На первый взгляд может показаться, что для вычисления обобщенных ассоциативных правил можно использовать любой алгоритм выявления ассоциативных правил, дополнив лишь каждую транзакцию предками каждого элемента, входящего в транзакцию [31]. Однако такой метод «в лоб» очень неэффективен и его использование приводит к следующим проблемам: 1) размер каждой транзакции значительно увеличивается, и как следствие, увеличивается количество исследуемых правил и время вычисления; 2) появляются избыточные правила, и в условии, и в следствии которых находятся сам элемент и его предок. Примером такого правила, может быть: «Если покупатель купил Кефир, то он, скорее всего, захочет купить Молочные продукты». Очевидно, что практическая ценность такого правила равна нулю при достоверности равной 100 %. 63
Для решения проблемы вычисления обобщенных ассоциативных правил необходимо использовать специальные алгоритмы, учитывающие специфику процесса. При этом процесс вычисления обобщенных ассоциативных правил целесообразно разбить на три этапа. 1. Поиск часто встречающихся множеств элементов, поддержка которых больше заданного порога поддержки (минимальная поддержка). 2. Вычисление правил на основе часто встречающихся множеств элементов. Основная идея вычисления правил заключается в следующем. Если ABCD – это часто встречающееся множество элементов, то на основе его можно построить правила X Y, выполняющие условие X Y = ABCD (например, AB CD или A BCD). Поддержка правила при этом равна поддержке часто встречающегося множества. Достоверность правила вычисляется по формуле conf(X Y) = supp(X Y) / supp(X). Правило добавляется к результирующему списку правил, если достоверность его больше порога minconf. 3. Удаление из результирующего списка «неинтересных» правил. Базовый алгоритм поиска часто встречающихся множеств. 1. На первом шаге алгоритма подсчитываются одноэлементные часто встречающиеся наборы. Эти элементы могут находиться на любом уровне таксономии. Для подсчета необходимо «пройтись» по всему набору данных и подсчитать для них поддержку, т.е. сколько раз элемент встречается в базе данных. 2. Следующие шаги состоят из двух этапов (по аналогии с алгоритмом Apriori): • генерация потенциально часто встречающихся наборов элементов (их называют кандидатами), • подсчет поддержки для кандидатов. Этот базовый алгоритм можно схематично записать в виде псевдокода: L1 = { Часто встречающиеся множества элементов и групп элементов }; Для ( k=2; Lk-1 <> ; k++ ) { Ck = { Генерация кандидатов мощностью k на основе Lk-1 }; для всех транзакций t D { Расширить транзакцию t предками всех элементов, входящих в транзакцию; 64
Удалить дубликаты из транзакции t; для всех кандидатов с Ck если с t то c.count++; } Lk = { с
Ck | c.count >= minsupp }; // Отбор кандидатов } Результат = Uk Lk;
Опишем подробнее функцию генерации кандидатов. Для того чтобы получить k-элементные наборы, воспользуемся (k-1)элементными наборами, которые были определены на предыдущем шаге и являются часто встречающимися. Алгоритм генерации кандидатов состоит из двух шагов. 1. Объединение. Каждый кандидат Ck будет формироваться путем расширения часто встречающегося набора размера (k-1), добавлением элемента из другого (k-1)- элементного набора. Приведем алгоритм этой функции в виде SQL-подобного запроса: INSERT INTO Ck SELECT a.item1, a.item2, …, a.itemk-1, b.itemk-1 FROM Fk-1 a, Fk-1 b WHERE a.item1 = b.item1, a.item2 = b.item2, … , a.itemk-2 = b.itemk-2, a.itemk-1 < b.itemk-1
2. Удаление избыточных правил. На основании свойства антимонотонности, необходимо удалить все наборы Ck, если хотя бы одно из его (k-1) подмножеств не является часто встречающимся. Для эффективного подсчета поддержки кандидатов можно использовать хэш-дерево. Хеш-дерево строится каждый раз, когда формируются кандидаты. Первоначально дерево состоит только из корня, который является также листом, и не содержит никаких кандидатов-наборов. Каждый раз, когда формируется новый кандидат, он заносится в корень дерева и так до тех пор, пока количество кандидатов в корне-листе не превысит некоего порогового значения. Как только количество кандидатов становится больше 65
порога, корень преобразуется в хеш-таблицу, т.е. становится внутренним узлом, и для него создаются потомки-листья. Все примеры распределяются по узлам-потомкам согласно хеш-значениям элементов, входящих в набор, и т.д. Каждый новый кандидат хешируется на внутренних узлах, пока он не достигнет первого узла-листа, где он и будет храниться, пока количество наборов опять же не превысит порога. 3.6. Улучшенный алгоритм поиска часто встречающихся множеств
Базовый алгоритм можно усовершенствовать, увеличив скорость его работы. Так, целесообразно единожды вычислить множества предков для каждого элемента иерархии как для элемента нижнего уровня таксономии (лист дерева), так и для элемента внутреннего уровня. Далее необходимо последовательно удалять кандидатов, содержащих сам элемент и его предков. Для реализации этой процедуры потребуются две следующих леммы: Лемма 1. Поддержка множества X, содержащего и элемент x и его предка x , вычисляется по формуле supp(X)=supp(X-x). Принимая во внимание эту лемму, будем удалять кандидатов, содержащих и сам элемент и его предков, из списка кандидатов до начала процесса подсчета поддержки. Лемма 2. Если Lk – список часто встречающихся множеств, не содержащий множеств, включающих и сам элемент и его предков в одном множестве, то Ck+1 (список кандидатов, получаемых из Lk) также не будет содержать множеств, включающих и сам элемент и его предков. Учитывая утверждение этой леммы, будем удалять кандидатов, включающих и элемент и его предков, из списка кандидатов только на первой итерации внешнего цикла. Далее для рационализации действий алгоритма необходимо иметь ввиду, что: • нет необходимости в добавлении всех предков всех элементов, входящих в транзакцию. Если какой-то элемент, у которого есть предок, не находится в списке кандидатов, то в списке элементов с предками он помечается как удаленный. Следовательно, из транзакции удаляются элементы, помеченные как удаленные, или 66
производится замена этих элементов на их предков. К транзакции добавляются только не удаленные предки; • нет необходимости также «пропускать» транзакцию через хэш-дерево, если ее мощность меньше чем мощность элементов, расположенных в хэш-дереве; • целесообразно помечать транзакции как удаленные и не использовать их при подсчете поддержки на следующих итерациях, если на текущей итерации в эту транзакцию не вошел ни один кандидат. Учитывая приведенные доводы, схема полученного алгоритма будет такой: // Оптимизация 1-й этап Вычислить I* - множества предков элементов для каждого элемента; L1 = {Часто встречающиеся множества элементов и групп элементов}; для ( k = 2; Lk-1 <> ; k++ ) { Ck = {Генерация кандидатов мощностью k на основе Lk-1}; // Оптимизация 2-ой этап если k = 2,то удалить тех кандидатов из Ck, которые содержат элемент и его предок; // Оптимизация 3-ий этап Пометить как удаленные множества предков элемента, который не содержится в списке кандидатов; для всех транзакций t D { // Оптимизация 3 этап для каждого элемента х t добавить всех предков х из I* к t; Удалить дубликаты из транзакции t; // Оптимизация 4,5 этапы если (t не помечена как удаленная) и ( |t| >= k), то { для всех кандидатов с Ck если с t, то c.count++; // Оптимизация 5-ый этап если в транзакцию t не вошел ни один кандидат то пометить эту транзакцию как удаленную; } } // Отбор кандидатов Lk = { с >= Ck | c.count >= minsupp }; } Результат = UkLk; 67
3.7. Прогноз развития
Как было показано в разд. 1, среди всех проанализированных подходов существует только два метода поиска логических закономерностей в виде правил «если-то». Приведем перспективные направления поиска таких логических правил [16 – 18, 29]. Эволюционные алгоритмы. Некоторые исследователи видят путь развития аналитических методов в разработке эволюционных алгоритмов. Среди них наиболее популярными являются генетические алгоритмы [28], пытающиеся моделировать механизмы наследственности, изменчивости и отбора живой природы. Первый шаг при построении генетических алгоритмов – создание исходного набора комбинаций элементарных логических высказываний, которые именуют хромосомами. Все множество таких комбинаций называют популяцией хромосом. Далее для реализации концепции отбора вводится способ сопоставления различных хромосом. Популяция обрабатывается с помощью процедур репродукции, изменчивости (мутаций), генетической композиции. Наиболее важными среди этих процедур считаются случайные мутации в индивидуальных хромосомах, переходы («кроссинговер») и рекомбинация генетического материала, содержащегося в индивидуальных родительских хромосомах (аналогично гетеросексуальной репродукции), и миграции генов. В ходе работы процедур на каждой стадии эволюции получаются популяции с все более совершенными индивидуумами. Генетические алгоритмы привлекательны тем, что их удобно распараллеливать. Например, можно разбить поколение на несколько групп, и работать с каждой из них независимо, обеспечивая время от времени межгрупповой обмен несколькими хромосомами. Существуют также и другие методы распараллеливания генетических алгоритмов. Вместе с тем, эти алгоритмы на сегодняшний день не лишены серьезных недостатков. В частности, процесс создания исходного набора хромосом, критерии отбора хромосом и используемые процедуры являются эвристическими и далеко не гарантируют нахождения «лучшего» решения. Как и в реальной жизни, эволюцию может «заклинить» на какой-либо непродуктивной ветви. И, наоборот, можно привести примеры, как два неперспективных родителя, кото68
рые будут исключены из эволюции генетическим алгоритмом, оказываются способными через несколько итераций произвести высокоэффективного потомка. Это становится особенно заметно при решении высокоразмерных задач со сложными внутренними связями. Указанные недостатки не позволяют говорить, что сегодня генетические алгоритмы составляют серьезную конкуренцию деревьям решений и алгоритмам ограниченного перебора при решении задач поиска логических закономерностей в данных. Они «капризны» в настройке и трудоемки при решении задач поиска логических закономерностей в данных. Геометрический подход. Геометрический подход переводит задачу поиска логических закономерностей в данных на язык геометрических соотношений между эмпирическими фактами, выступающими целостными информационными единицами и отображаемыми точками в пространстве описания (рис. 3.3). У этого метода есть некоторые особенности. Первая из них состоит в том, что для поиска логических закономерностей в данных на основе геометрических представлений необходимо сначала перейти от первичных признаков xi (i = 1, 2, ..., p) к бинарным переменным gk (gk равно либо 0, либо 1), кодирующим элементарные события Т. Результатом перехода к бинарным переменным является пространство событий G, в котором любой объект gk изображается точкой, расположенной в какой-либо вершине q-мерного единичного гиперкуба. С другой стороны, этот же объект представляет собой конъюнкцию элементарных событий. Он заключает в себе логическое выражение А, являющееся ядром логического правила IF (A) THEN (B). За счет такой двойственности представления объекта дальнейшая комбинаторная процедура поиска логических закономерностей получает геометрическое толкование. Исходные комбинаторные ситуации выглядят как точки в бинарном пространстве, и задача поиска логических закономерностей может быть сведена к проецированию точек исходного пространства событий в подпространства событий меньшей размерности, где логические закономерности выглядят как точки этих подпространств, в которые попадает определенное количество объектов одинакового класса.
69
Рис. 3.3. Иллюстрация геометрического подхода
Этот метод, разработанный Дюком В.М. [16] в 2005 г., интересен принципиально новым подходом к поиску логических закономерностей в данных.
4. Программные продукты, реализующие технологию Data Mining Значительный интерес компаний различной направленности к получению скрытых знаний привел к буму на рынке программных продуктов, поддерживающих эту технологию. Программные продукты появились в большом количестве, но, к сожалению, качество их не всегда было на высоте. Настоящий раздел посвящен анализу наиболее распространенных программных продуктов извлечения знаний таких известных компаний, как SAS Enterprise Miner, STATISTICA Data Miner, Oracle Data Mining, KXEN Analytic Framework, Microsoft SQL Server Analysis Services. Также приведены программные продукты компаний SPSS и Cognos (ныне купленной IBM) с поддержкой методов Data Mining [19, 29]. 70
SAS Enterprise Miner. Пакет SAS Enterprise Miner предоставляет набор инструментов и алгоритмов прогностического и описательного моделирования, включающий в себя: • деревья решений; • нейронные сети; • методы рассуждений на основе аналогичных случаев; • линейную и логистическую регрессии; • кластеризацию (иерархической и неиерархические методы); • ассоциации; • временные ряды. STATISTICA Data Miner. Ниже описаны основные аналитические компоненты программного комплекса STATISTICA Data Miner. General Classifier – классификация. Включает в себя полный пакет процедур классификации: обобщенные линейные модели, деревья классификации, регрессионные деревья, кластерный анализ и т.д. General Modeler/Multivariate Explorer – обобщенные линейные, нелинейные и регрессионные модели. Данный элемент содержит линейные, нелинейные, обобщенные регрессионные модели и элементы анализа деревьев классификации. General Forecaster – прогнозирование. Включает в себя модели АРПСС, сезонные модели АРПСС, экспоненциальное сглаживание, спектральный анализ Фурье, сезонная декомпозиция, прогнозирование при помощи нейронных сетей и т.д. General Neural Networks Explorer – нейросетевой анализ. В данной части содержится наиболее полный пакет процедур нейросетевого анализа. Association Rules – правила ассоциации. Модуль является реализацией так называемого априорного алгоритма обнаружения правил ассоциации. Например, результат работы этого алгоритма мог бы быть следующим: клиент после покупки продукта "А", в 95 случаях из 100 в течение следующих двух недель после этого заказывает продукт "B" или "С". Generalized EM & k-Means Cluster Analysis –обобщенный метод максимума среднего и кластеризация методом К средних. Данный модуль – это расширение методов кластерного анализа. Он предназначен для обработки больших наборов данных и позволяет кла71
стеризовывать как непрерывные, так и категориальные переменные, обеспечивает все необходимые функциональные возможности для распознавания образов. General Classification and Regression Trees (GTrees) – обобщенные классификационные и регрессионные деревья (GTrees). Модуль является полной реализацией методов, разработанных Breiman, Friedman, Olshen и Stone (1984). Кроме этого, модуль содержит разного рода доработки и дополнения, такие как оптимизации алгоритмов для больших объемов данных и т.д. Модуль является набором методов обобщенной классификации и регрессионных деревьев. Boosted Trees – расширяемые простые деревья. Последние исследования аналитических алгоритмов показывают, что для некоторых задач построения «сложных» оценок, прогнозов и классификаций использование последовательно увеличиваемых простых деревьев дает более точные результаты, чем нейронные сети или сложные цельные деревья. Данный модуль реализует алгоритм построения простых увеличиваемых (расширяемых) деревьев [24]. Oracle Data Mining. В Oracle Data Mining реализованы следующие алгоритмы: • классификационные модели (Naive Bayes, Adaptive Bayes Network); • классификации и регрессионные модели (Support Vector Machine); • поиск существенных атрибутов (Minimal Descriptor Length); • кластеризация (Enhanced K-means, O-cluster); • поиск ассоциаций (Apriory Algorithm); • выделение признаков (Non-Negative Matrix Factorization). KXEN Analytic Framework. KXEN Analytic Framework представляет собой набор модулей для проведения описательного и предсказательного анализа. Компонент Робастной Регрессии (KXEN Robust Regression – K2R) использует подходящий регрессионный алгоритм. Компонент Интеллектуальной Сегментации (KXEN Smart Segmenter – K2S) позволяет выявить естественные группы (кластеры) в наборе данных. 72
Машина Опорных Векторов KXEN (Support Vector Machine – KSVM) позволяет производить бинарную классификацию на основе алгоритмов, аналогичных SVM. Компонент Анализа Временных Рядов (KXEN Time Series – KTS) позволяет прогнозировать значимые шаблоны и тренды во временных рядах [24]. Microsoft SQL Server Analysis Services. SQL Server 2005 Analysis Services включает в себя следующие девять алгоритмов [5]: • Дерево решений (Microsoft Decision Trees) • Кластеризация (Microsoft Clustering) • "Наивный" Байес (Microsoft Naive Bayes) • K-ближайших соседей (Microsoft Sequence Clustering) • Временные ряды (Microsoft Time Series) • Ассоциативные правила (Microsoft Association) • Нейронная сеть (Microsoft Neural Network) • Линейная регрессия (Microsoft Linear Regression) • Логистическая регрессия (Microsoft Logistic Regression) Программные продукты SPSS. Компания SPSS представляет несколько продуктов с возможностями Data Mining, описанных ниже [27]. SPSS Classification Trees позволяет непосредственно в SPSS для Windows строить деревья классификаций и решений, идентифицировать группы, находить взаимосвязи в данных и предсказывать будущие события. В SPSS Regression Models заложены такие методы анализа данных, как логистическая регрессия (мультиномиальная и бинарная), нелинейная регрессия. SPSS Categories позволяет проводить оптимальное шкалирование, включающее анализ соответствий и процедуру CATPCA (анализ главных компонент методом наименьших квадратов с чередованием). Для поиска неявных зависимостей в данных в SPSS Categories есть новая процедура многомерного шкалирования PROXSCAL. Продукт Amos предоставляет возможности методов наивной байесовской классификации. SPSS Trends позволяет прогнозировать временные ряды моделями экспоненциального сглаживания, а также методами оценивания авторегрессионных моделей. 73
В SPSS Base используются следующие подходы: • двухэтапный кластерный анализ; • кластеризация k-средними; • иерархический кластерный анализ; • факторный анализ; • анализа главных компонентов. Программные продукты Cognos (IBM). Компания Cognos представляет два продукта [29], в которых реализованы функции Data Mining: Cognos 4Thought, в основу которого положена технология нейронных сетей. Использование нейронных сетей позволяет строить достаточно точные сложные нелинейные модели на основе неполной статистической выборки данных. Cognos Scenario, которое автоматизирует обнаружение и ранжирование наиболее важных факторов, влияющих на бизнес, и выявление скрытых связей между этими факторами. Результаты работы Scenario (ключевые показатели и факторы) могут быть переданы в 4Thought для выполнения прогнозирования. Результат анализа программных продуктов Data Mining. Анализ методов Data Mining, используемых в наиболее распространенных продуктах извлечения знаний можно обобщить в табл. 4.1. Как видно из таблицы наиболее популярными методами Data Mining являются: • анализ временных рядов; • деревья решений; • иерархическая кластеризация; • линейная регрессия; • логистическая регрессия; • метод опорных векторов; • методы рассуждений на основе аналогичных случаев; • наивный байесовский алгоритм; • неиерархическая кластеризация; • нейронные сети; • поиск ассоциативных правил. 74
Таблица 4.1 Методы Data Mining в программных продуктах извлечения знаний SAS Enterprise Miner Адаптивная байесовская сеть Анализ временных рядов Граничные методы Деревья решений Иерархическая кластеризация Линейная регрессия Логистическая регрессия Методы рассуждений на основе аналогичных случаев Наивный байесовский алгоритм Неиерархическая кластеризация Нейронные сети Поиск ассоциативных правил
MS STATIS- Oracle KXEN SQL SerПП ВстреTICA Data Analytic ПП ver Cog- чаеData Min- FrameSPSS Analysis nos мость Miner ing work Services +
1
+ +
+ +
+
+
4
+
3
+
+
+
+
+
+
+
+
+
+
+
+
+
6
+
+
+
+
+
+
6
+
+
+
+
+
+
+
4 4
+
+ +
+
+
+
+
+
75
+
3
+ +
+
3
5 +
4 4
5. Управление ИТ-услугами В этом разделе проводится анализ процессов управления ИТуслугами (ITSM – IT Service Management) в части выявления задач поиска скрытых зависимостей (знаний), определяющих их качественное функционирование при обработке больших объемов данных. 5.1. Процессы управления ИТ-услугами
В соответствии с Библиотекой лучшего мирового опыта управления ИТ (ITIL) выделяется пять основных групп процессов управления ИТ-услугами: Service Strategy (стратегия предоставления услуг), Service Design (создание услуг), Service Transition (передача услуг в эксплуатацию), Service Operation (операционное использование услуг), Continual Service Improvement (непрерывное улучшение предоставления услуг) [3, 4, 6 – 8]. В группу «Service Strategy» входят следующие процессы: • создание стратегии; • управление финансами; • управление портфелем услуг; • управление соответствием внешним требованием. В группу “Service Design” входят следующие процессы: • управление каталогом услуг; • управление уровнем услуг; • управление мощностью; • управление доступностью; • управление непрерывностью; • управление безопасностью; • управление взаимоотношением с партнерами. В группу «Service Transition» входят следующие процессы: • поддержка и планирование передачи услуги в эксплуатацию; • управление изменениями; • управление активами и конфигурациями; • управление релизами и развертыванием; • тестирование и валидация услуг; • управление знаниями; • оценка. 76
В группу «Service Operation» входят следующие процессы: • управление событиями; • управление инцидентами; • управление запросами; • управление проблемами; • управление доступом. В группу «Continual Service Improvement» входят следующие процессы: • «семи шаговый процесс улучшения»; • «измерение услуг»; • отчетность об услугам. В данном пособии рассмотрены лишь наиболее распространенные процессы, а именно: управление инцидентами, управление проблемами, управление изменениями и управление активами и конфигурациями. 5.2. Процесс управления инцидентами
Задача процесса управления инцидентами является реактивной – уменьшение или исключение отрицательного воздействия (потенциальных) нарушений – инцидентов в предоставлении ИТуслуг, таким образом обеспечивая наиболее быстрое восстановление работы пользователей. Для выполнения этой задачи производится регистрация, классификация и назначение инцидентов соответствующим группам специалистов, мониторинг хода работ по разрешению инцидентов, решение инцидентов и их закрытие. Так как эти процессы требуют тесного взаимодействия с пользователями, фокусной точкой Процесса Управления Инцидентами обычно является функция центра контактов пользователей с «внутренними» коллективами технических служб. Управление Инцидентами является важнейшей основой для работы других процессов управления ИТ-услугами, предоставляя ценную оперативную информацию об ошибках в работе ИТ-инфраструктуры. Целью Процесса Управления Инцидентами является скорейшее восстановление нормального Уровня Услуг, определенного в Соглашении об Уровне Услуг, с минимально возможными потерями для деятельности организации и отдельных пользователей. Таким 77
образом, для успешного функционирования данного процесса необходимо уменьшать действие факторов, влияющих на нарушение крайних сроков устранения инцидента. Поэтому в этом процессе часто встает задача выявления скрытых факторов, влияющих на нарушение крайних сроков устранения инцидента, т.е. задача нахождения скрытых ассоциативных правил, связанных с нарушением крайних сроков времени устранения инцидента. 5.3. Процесс управления проблемами
Для выяснения корневых причин возникновения как существующих, так и потенциальных ошибок-инцидентов предоставления услуг, в рамках Процесса Управления Проблемами производится изучение инфраструктуры и имеющихся регистрационных данных, включая базу данных инцидентов. Такие исследования необходимы по причине сложного и распределенного характера инфраструктуры, когда связи между инцидентами не всегда бывают очевидными. Например, причиной инцидента могут стать сразу несколько ошибок, и в то же время несколько инцидентов могут быть связаны с одной и той же ошибкой. Вначале надо определить причину возникновения проблемы. После того, как корневая причина определена, проблема переходит в разряд известных ошибок и для устранения этой причины можно направить Запрос на Изменение. Но даже после этого известные ошибки будут отслеживаться, и контролироваться в рамках Процесса Управления Проблемами. Поэтому необходимо вести регистрацию всех идентифицированных известных ошибок, их симптомов и имеющихся решений. Целью Процесса Управления Проблемами является установление корневой причины возникновения проблемы и, как следствие, предотвращение инцидентов. Управление Проблемами включает в себя проактивные (упреждающие) и реактивные виды деятельности. Задачей реактивных составляющих Процесса Управления Проблемами является выяснение корневой причины прошлых инцидентов и подготовка предложения по ее ликвидации. Проактивное Управление Проблемами помогает предотвратить инциденты путем определения слабых мест в инфраструктуре и подготовки предложений по ее усовершенствованию 78
Таким образом, в данном процессе встает задача анализа скрытых зависимостей между инцидентами для нахождения проблемы, с которыми эти инциденты связаны (для реактивного управления проблемами). Таким образом, встают задачи кластеризации инцидентов для нахождения групп, потенциально связанных с одной проблемой; классификации инцидентов с целью связывания их с уже обнаруженными проблемами. Также здесь встает задача анализа ИТ-инфраструктуры в целом (для реактивного и проактивного управления проблемами), для нахождения моделей и элементов конфигурационных единиц, подверженных сбоям; обнаружения скрытых закономерностей между возникновением инцидента и другими событиями; обнаружения злоумышленников. Таким образом, встают задача классификации типов, моделей, элементов конфигурационных единиц с целью выявления ненадежных компонентов; обнаружения ассоциативных правил и последовательностей, связанных с возникновением инцидента; определения шаблонов в поведении пользователей, информации и нагрузки с целью обнаружения выбросов; обнаружения шаблонов действий, поведения информации, нагрузки «злоумышленник – обычный пользователь». 5.4. Процесс управления изменениями
Быстрое развитие ИТ-технологий и рынка ИТ-услуг привели к тому, что сегодня изменения инфраструктуры стали обычным делом. Однако опыт показывает, что инциденты, влияющие на бизнес-приложения, часто бывают вызваны изменениями. Причины таких инцидентов могут быть различными: халатность сотрудников, недостаток ресурсов, недостаточная подготовка, слабый анализ воздействия изменения, несовершенство испытаний или «болезни роста». Если инциденты, связанные с изменениями, не будут контролироваться, из-под контроля может выйти все предоставление ИТ-услуг и сам бизнес. Число инцидентов может увеличиваться, каждый из них будет требовать принятия срочных мер, что в свою очередь может привести к возникновению новых инцидентов. Ежедневное планирование часто не в состоянии учитывать увеличивающуюся рабочую нагрузку. Это может повлиять на повседневную работу и на сопровождение ИТ-услуг. 79
Целью Процесса Управления Изменениями является руководство проведением изменений и ограничение числа инцидентов, вызванных изменениями. Таким образом, в данном процессе встает задача прогнозирования поведения ИТ-инфраструктуры после проведения изменения. Эту задачу можно перефразировать так: нахождение в проектируемой ИТ-инфраструктуре шаблонов, которые приводили ранее к инцидентам или соответствуют известной проблеме. 5.5. Процесс управления активами и конфигурациями
Процесс Управления Конфигурациями помогает получать достоверную и актуальную информацию об ИТ-инфраструктуре. Важным в этой информации является то, что в нее входят данные не только о конкретных единицах конфигурации, но и о том, как они связаны друг с другом. Взаимоотношения и взаимосвязи между конфигурационными единицами составляют основу для анализа степени воздействия инцидентов, проблем, изменений и т. д. на ИТ-инфраструктуру. Процесс управления конфигурациями проверяет, правильно ли регистрируются изменения в ИТинфраструктуре, включая взаимоотношения между Конфигурационными Единицами, и ведет мониторинг статуса ИТ-компонентов чтобы гарантировать наличие точной информации о версиях существующих конфигурационных единиц. Цель процесса Управления Конфигурациями — поддержка логической модели ИТ-инф-раструктуры и ИТ-услуг и предоставления информации о них другим бизнес-процессам. Это достигается посредством идентификации, мониторинга, контроля и предоставления информации о конфигурационных единицах и их версиях. Таким образом, этот процесс (если в этом есть необходимость), обязан предоставить расширенную информацию о конфигурационном элементе, в том числе и скрытые знания, т.е. здесь встают, например, такие задачи: задача прогнозирования времени до следующего сбоя данной конфигурационной единицы; задача классификации конфигурационных единиц (принадлежит ли этот элемент к какой-то определенной, неочевидной группе) и т.д. Выводы по результатам анализа процессов управления ИТуслугами. Анализ распространенных процессов управления ИТ 80
услугами выявил следующие задачи поиска скрытых зависимостей (знаний) в больших объемах данных. 1. Нахождение скрытых ассоциативных правил, связанных с нарушением крайних сроков времени устранения инцидента. 2. Кластеризация инцидентов для нахождения групп, потенциально связанных с одной проблемой. 3. Классификация инцидентов с целью связывания их с уже обнаруженными проблемами. 4. Классификация типов, моделей, элементов конфигурационных единиц с целью выявления ненадежных компонентов. 5. Обнаружение ассоциативных правил и последовательностей, связанных с возникновением инцидента. 6. Определение шаблонов в поведении пользователей, информации и нагрузки с целью обнаружения выбросов. 7. Обнаружение шаблонов действий, поведения информации, нагрузки «злоумышленник – обычный пользователь». 8. Нахождение в проектируемой ИТ-инфраструктуре шаблонов, которые приводили ранее к инцидентам или соответствуют известной проблеме. 9. Прогнозирование времени до следующего сбоя данной конфигурационной единицы. 10. Классификация конфигурационных единиц (принадлежит ли этот элемент к какой-то определенной, неочевидной группе).
6. Практическое применение методов Data Mining в задачах ITSM 6.1. Анализ причин нарушения сроков выполнения заявок
Постановка задачи. Имеется массив данных о заявках пользователей (16 000 заявок) системы автоматизации службы технической поддержки и регламентов управления ИТ. Данные находятся в СУБД MS SQL Server 2005. Необходимо выявить скрытые зависимости, влияющие на нарушение сроков выполнения заявок, в виде правил «если-то» с использованием различных методов Data Mining и проанализировать полученные результаты. Действия по анализу данных разбиваются на этапы. 81
1. Выбор факторов, влияющих на нарушение сроков выполнения заявок. После консультации с экспертами в предметной области было выявлено, что на нарушение срока выполнения заявки могут влиять следующие факторы: • рабочая группа, которая выполняет работы по данной заявке; • назначенный сотрудник, который выполняет работы по данной заявке; • категория заявки; • степень влияния на предприятие проблемы, с которой связана заявка; • заявитель заявки. 2. Выбор программного продукта для анализа данных. Так как данные находятся в СУБД MS SQL Server 2005 и программный продукт MS SQL Server Analysis Services поддерживает оба метода нахождения скрытых знаний в виде правил «если-то», то был выбран именно этот программный продукт для глубокого анализа данных. 3. Подготовка данных. Для работы алгоритма нахождения деревьев решений и алгоритма поиска ассоциативных правил, встроенных в MS SQL Server Analysis Services, необходимо воспользоваться линейным представлением сущности. Таким образом, для выполнения представления были созданы следующие представление и функции на языке T-SQL в СУБД: SELECT SC.SER_ID AS ID, dbo.fn_v0_get_name_code_by_id(SC.SER_CAT_OID, 1049) AS CATEGORY, dbo.fn_v0_get_name_cod_code_by_id(SC.SER_IMP_OID, 1049) AS IMPACT, ASSIGNED_PERSON.PER_NAME AS ASSIGNED_PERSON_NAME, WOGS.WOG_NAME AS WORKGROUP, REQUESTOR.PER_OID AS REQUESTOR_OID, REQUESTOR.PER_NAME AS REQUESTOR_NAME, ASSIGNED_PERSON.PER_OID FROM (SELECT PER_OID, PER_NAME FROM dbo.ITSM_PERSONS AS pers) AS REQUESTOR RIGHT OUTER JOIN dbo.ITSM_SERVICECALLS AS SC LEFT OUTER JOIN (SELECT PER_OID, PER_NAME FROM dbo.ITSM_PERSONS AS pers) AS ASSIGNED_FROM ON SC.SER_ASS_PER_FROM_OID = ASSIGNED_FROM.PER_OID LEFT OUTER JOIN dbo.ITSM_WORKGROUPS AS WOGS ON SC.SER_ASS_WOG_OID = WOGS.WOG_OID LEFT OUTER JOIN (SELECT PER_OID, PER_NAME FROM dbo.ITSM_PERSONS AS pers) AS ASSIGNED_PERSON ON SC.SER_ASS_PER_TO_OID = ASSIGNED_PERSON.PER_OID ON 82
REQUESTOR.PER_OID = SC.SER_CALLER_PER FUNCTION [dbo].[fn_v0_get_name_cod_code_by_id](@id_code varchar(1000),@lang int) RETURNS varchar(1000) AS begin declare @ret varchar(1000) select @ret=cdl_name from dbo.itsm_codes_locale where cdl_lng_oid = @lang and cdl_cod_oid = @id_code; return @ret END FUNCTION [dbo].[fn_v0_get_name_code_by_id](@id_code varchar(1000),@lang int) RETURNS varchar(1000) AS begin declare @ret varchar(1000) select @ret= dbo.REP_CODES_TEXT.RCT_NAME FROM dbo.REP_CODES INNER JOIN dbo.REP_CODES_TEXT ON dbo.REP_CODES.RCD_OID = dbo.REP_CODES_TEXT.RCT_RCD_OID WHERE (dbo.REP_CODES_TEXT.RCT_LNG_OID = @lang) AND (dbo.REP_CODES_TEXT.RCT_RCD_OID = @id_code) return @ret END
4. Анализ данных. После подготовки данных был создан проект в среде MS Visual Studio 2005, с помощью которого выполнен анализ данных в представлении методами построения деревьев решений и поиска ассоциативных правил. Результаты анализа данных методом деревьев решений. В результате анализа данных методом деревьев решений было получено дерево решений, состоящее из 12 уровней (рис. 6.1). Кроме этого, в результате анализа данных методом деревьев решений было получено 51 скрытое правило. Больше половины правил содержат в левой части более четырех логических условий. Такие правила уже трудно воспринимаются человеком. Примером может служить следующее правило, выданное алгоритмом. «IMPACT = "Низкое" and WORKGROUP not = "ГИ09.1 Help Desk" and WORKGROUP not = "ГИ03.8 RSS - МКУ" and ASSIGNED PERSON NAME not = Missing and WORKGROUP not = "ГИ03.12 RSS - ШЕРЕМЕТЬЕВО" and 83
Рис. 6.1. Дерево решений анализа влияний факторов на нарушение сроков выполнения заявок
WORKGROUP not = "ГИ02.1 Internet, Active Directory + серверы" and ASSIGNED PERSON NAME not = "Мекин Сергей Михайлович" and WORKGROUP not = "ГИ08.1 Техобслуживание Летного Комплекса" and WORKGROUP not = "ГИ01.5 ИБП" and REQUESTOR NAME not = "Нефедова Татьяна Юрьевна" and WORKGROUP not = "ГИ03.13 RSS - ЦМР" => EXPIRED = 1»,
которое сложно интерпретировать. Результаты анализа данных методом поиска ассоциативных правил. В результате анализа данных методом поиска ассоциативных правил при минимально возможных значениях параметров поддержки и достоверности было получено 1347 правил. При этом ни одно из правил не содержало более трех логических условий в левой части. После установки разумных значений параметров поддержки и достоверности осталось 40 правил, которые содержали только два логических условия в левой части, и поэтому легко поддавались восприятию человеком. Сравнение правил полученных разными методами. Правила полученные в данном исследовании двумя разными методами сильно различаются: • количество условий в левой части правил, полученных методом поиска ассоциативных правил не более трех, а условий, полученных методом деревьев решений, достигает одиннадцати; • атомарные условия, входящие в правила, в результирующих наборах разных методов, пересекаются только на 35 %. 6.2. Анализ причин нарушения сроков выполнения нарядов
Постановка задачи. Имеется массив данных о нарядах (26 000 нарядов) системы автоматизации службы технической поддержки и регламентов управления ИТ. Данные находятся в СУБД MS SQL Server 2005. Необходимо выявить скрытые зависимости, влияющие на нарушение сроков выполнения заявок, в виде правил «если-то» с использованием методов Data Mining и проанализировать полученные результаты. Действия по анализу данных разбиваются на этапы. 1. Выбор факторов, влияющих на нарушение сроков выполнения наряда. После консультации с экспертами в предметной области 85
было выявлено, что на нарушение срока выполнения наряда могут влиять следующие факторы: • рабочая группа, которая выполняет работы по данному наряду; • назначенный сотрудник, который выполняет работы по данному наряду; • категория наряда; • степень влияния на предприятие проблемы, с которой связан наряд; • контактное лицо наряда. 2. Выбор программного продукта для анализа данных. Аналогично предыдущему примеру. 3. Подготовка данных. В виду выбора того же средства анализа, что и в предыдущем примере было создано еще одно представление в СУБД: SELECT WO.WOR_ID AS ID, dbo.fn_v0_get_name_code_by_id (WO.WOR_CAT _OID, 1049) AS CATEGORY, dbo.fn_v0_get_name_cod_code_by_id(WO.WOR_IMP_OID, 1049) AS IMPACT, REQUESTOR.PER_NAME AS REQUESTOR_NAME, PERSON_TO.PER_NAME AS TO_PERSON, WO_CF.WCF_BOOLEAN8 AS WORKORDER_EXPIRE, WG.WOG_NAME AS ASSIGNED_WORKGROUP, REQUESTOR.PER_OID AS REQUESTOR_OID FROM (SELECT PER_OID, PER_NAME FROM dbo.ITSM_PERSONS AS pers) AS REQUESTOR RIGHT OUTER JOIN (SELECT PER_OID, PER_NAME FROM dbo.ITSM_PERSONS AS pers) AS PERSON_TO RIGHT OUTER JOIN (SELECT WOG_OID, WOG_NAME FROM dbo.ITSM_WORKGROUPS) AS WG RIGHT OUTER JOIN (SELECT WCF_COD2_OID, WCF_COD1_OID, WCF_WORKORDERDATE6, WCF_COD5_OID, WCF_WORKORDERDATE8, WCF_WORNUMBER6, WCF_WORKORDERTEXT23, WCF_WORSHORTTEXT10, WCF_WOR_OID, WCF_WORNUMBER1, WCF_WORNUMBER2, WCF_WORNUMBER3, WCF_WORKORDERTEXT2, WCF_WORKORDERTEXT3, WCF_WORKORDERTEXT4, WCF_WORKORDERTEXT5, WCF_WORSHORTTEXT1, WCF_PER1_OID, WCF_CIT1_OID, WCF_BOOLEAN3, WCF_BOOLEAN4, WCF_BOOLEAN6, WCF_BOOLEAN7, WCF_BOOLEAN8, WCF_BOOLEAN10, WCF_BOOLEAN13 FROM dbo.ITSM_WOR_CUSTOM_FIELDS) AS WO_CF RIGHT OUTER JOIN dbo.ITSM_WORKORDERS AS WO ON WO_CF.WCF_WOR_OID = WO.WOR_OID ON WG.WOG_OID = WO.ASS_WORKGROUP ON PERSON_TO.PER_OID = WO.ASS_PER_TO_OID ON REQUESTOR.PER_OID = WO.WOR_REQUESTOR_PER_OID
4. Анализ данных. После подготовки данных был создан проект в среде MS Visual Studio 2005, с помощью которого был проведен анализ данных в представлении методами построения деревьев решений и поиска ассоциативных правил. 86
Рис. 6.2. Дерево решений анализа влияний факторов на нарушение сроков выполнения заявок
Результаты анализа данных методом деревьев решений. В результате анализа данных методом деревьев решений было получено дерево решений, состоящее из 24 уровней (рис. 6.2). Методом деревьев решений было получено 123 скрытых правила. Больше половины из них в левой части содержат свыше семи логических условий, что трудно воспринимается человеком. Например, алгоритм выдал правило: «IMPACT = "Низкое" and ASSIGNED WORKGROUP not = "ГИ06.01 Техобслуживание програмного обеспечения" and ASSIGNED WORKGROUP not = "ГИ03.8 RSS - МКУ" and TO PERSON not = "Колымагин-RSS" and TO PERSON not = "Мекин Сергей Михайлович" and TO PERSON not = "Петриков Николай Сергеевич" and ASSIGNED WORKGROUP not = "ГИ06.02 Техобслуживание периферии" and ASSIGNED WORKGROUP not = "ГИ16.02 Выдача расходных материалов" and TO PERSON not = "МонтерШ1-2" and ASSIGNED WORKGROUP not = "ГИ08.1 Техобслуживание Летного Комплекса" and ASSIGNED WORKGROUP not = "ГИ05.1 Группа сопровождения производств. систем" and ASSIGNED WORKGROUP not = "ФАиП" and ASSIGNED WORKGROUP not = "RSS - Сервисный Центр" and TO PERSON not = "1 ТИС" and TO PERSON not = "Павельев-RSS, С Л" and ASSIGNED WORKGROUP not = "Отдел РИСК" and TO PERSON not = "Портал Лэнд" and ASSIGNED WORKGROUP not = "ГИ01.11 Обслуж. офисов рег.Москва 2 (сеть, телеф.)" and TO PERSON not = "Тихенький Георгий Владимирович" and TO PERSON not = "Петрушин Игорь Николаевич" and REQUESTOR NAME not = "Хаустов Михаил Вячеславович" and CATEGORY = "01. Управление инцидентами" and REQUESTOR NAME not = "Редянова Лариса Михайловна" => EXPIRED = 1»,
которое практически не поддается восприятию человеком. Результаты анализа данных методом поиска ассоциативных правил. В результате анализа данных методом поиска ассоциативных правил при минимально возможных значениях параметров поддержки и достоверности было получено 1115 правил (при этом ни одно из правил в левой части не содержало более трех логических условий). После установки разумных значений параметров поддержки и достоверности было получено 45 правил, которые содержали в левой части только два логических условия и легко интерпретировались специалистами. Сравнение правил полученных разными методами. Правила полученные в данном исследовании двумя разными методами сильно различаются: • количество условий в левой части правил, полученных методом поиска ассоциативных правил, не более трех, а количество ус88
ловий в левой части правил, полученных методом деревьев решений, достигает двадцати трех; • условия, входящие в правила, в результирующих наборах правил обоих методов, пересекаются только на 27 %. Причины несовпадения результатов. При использовании для анализа данных двух разных методов (деревьев решений и поиска ассоциативных правил), приведенных выше, выявлены следующие отличия в результирующих наборах найденных правил: • различие числа условий в левой части правил; • существенные различия в перечне атомарных условий, используемых в правилах, и как следствие различие самих правил. Значительно большее количество условий в левой части правил алгоритма построения деревьев решений по сравнению с алгоритмом нахождения ассоциативных правил объясняется учетом этим алгоритмом условий типа «A ≠ Значение», в то время как алгоритм поиска ассоциаций не учитывает правила такого вида. Различия в условных частях правил объясняется тем, что процесс построения дерева решений основан на максимизации прироста информации, в то время как алгоритм поиска ассоциативных правил основан на выделении частых наборов, т.е. таких наборов, в которых высока частота появления одной части (правая часть правила) относительно наборов, в которых есть другая часть (левая часть правила). Алгоритм поиска ассоциативных правил предназначен для выявления в данных зависимостей типа A -> B, где A и B представляют собой наборы пар «атрибут = значение». Правило должно быть: • значимым, т.е. наборы A и B должны достаточно часто совместно встречаться в исходных данных; • точным, т.е. должна быть высока доля записей, содержащих набор B, который, в свою очередь, содержит набор A. Алгоритм дерева решений предназначен для решения задач регрессии и классификации, т.е. для выявления зависимости целевого параметра от значения других параметров. В процессе построения модели алгоритм итеративно вычисляет степень влияния каждого входного атрибута модели на значения выходного атрибута и использует атрибут, влияющий на выходной атрибут в наибольшей 89
степени для разбиения узла дерева решений. Узел верхнего уровня описывает распределение значений выходного атрибута по всей совокупности данных. Каждый последующий узел описывается распределением выходного атрибута при соблюдении условий на входные атрибуты, соответствующие этому узлу. Модель продолжает расти до тех пор, пока разбиение узла на последующие узлы значительно увеличивает вероятность того, что выходной атрибут будет принимать какое-то определенное значение по сравнению со всеми другими значениями, т.е. разбиение увеличивает качество прогноза. Алгоритм также прекращает разбиение, когда число записей в базе данных, описываемых условиями узла, становится меньше определенного уровня. Алгоритм осуществляет поиск атрибутов и их значений, разбиение по которым позволяет с большей вероятностью правильно предсказать значение выходного атрибута. 6.3. Анализ инцидентов системы автоматизации процессов управления ИТ-услугами
Постановка задачи. Имеется массив данных об инцидентах системы автоматизации процессов управления ИТ-услугами службы технической поддержки и регламентов управления ИТ (58 000 записей). Данные находятся в СУБД MS SQL Server 2005. Имеется массив данных о конфигурационных единицах ИТинфраструктуры системы централизованного управления разветвленной ИТ-инфраструктурой (13 000 записей). Данные находятся в СУБД MS SQL Server 2000. Необходимо выявить скрытые факторы, влияющие на нарушение крайних сроков устранения инцидентов за три последних месяца с использованием методов Data Mining и проанализировать полученные результаты. Действия по анализу данных разбиваются на этапы. 1. Выбор факторов, влияющих на нарушение крайних сроков. Факторы, учитывающиеся в конечном анализе данных, при поиске скрытых ассоциативных правил, связанных с нарушением крайних сроков, хранимые системой HP Service Desk, представлены на рис. 6.3. 90
Рис. 6.3. Факторы, учитывающиеся при анализе данных
2. Выбор программного продукта для анализа данных. Аналогично предыдущим примерам. В виду того, что данные находятся в СУБД MS SQL Server 2005, и программный продукт MS SQL Server Analysis Services поддерживает метод поиска ассоциативных правил, он и был выбран для анализа данных. 3. Подготовка данных. Для работы алгоритма поиска ассоциативных правил, входящих в MS SQL Server Analysis Services, необходимо использовать линейное представление сущности. Таким образом, для представления инцидентов в данном виде были созданы представления и функции на языке T-SQL в СУБД MS SQL Server 2005. 4. Анализ данных. После подготовки данных был создан проект в среде MS Visual Studio 2005, с помощью которого был проведен анализ данных в представлении методами поиска ассоциативных правил и построения деревьев решений. В конечном анализе данных использовались параметры алгоритма, представленные на рис. 6.4.
Рис. 6.4. Параметры алгоритма поиска ассоциативных правил
Результаты анализа данных методом поиска ассоциативных правил. В результате анализа данных методом поиска ассоциативных правил после установки разумных значений параметров поддержки и достоверности было получено 368 правил, из которых было выделено 83 неочевидных правила (типичные примеры представлены в табл. 6.1).
92
Таблица 6.1 Примеры неочевидных правил нарушения крайнего срока устранения инцидента Pнарушения
Правило
крайнего срока
0,703 0,658 0,56 0,5 0,489 0,442 0,437 0,43 0,427 0,421 0,419
ЧАС КОНЦА РАБОТЫ НАД ИНЦИДЕНТОМ >= 17, ДЕНЬ НЕДЕЛИ КОНЦА РАБОТЫ НАД ИНЦИДЕНТОМ = 2 - 3 ЧАС КОНЦА РАБОТЫ НАД ИНЦИДЕНТОМ >= 17, ЧИСЛО КОНЦА РАБОТЫ НАД ИНЦИДЕНТОМ = 7 – 14 ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ, СЕРВИС = 01.02. Автоматизированное рабочее место (ПК + монитор) КЕМ ЗАРЕГИСТРИРОВАНО = ДИТ Петрова Анна Викторовна, МЕСТОПОЛОЖЕНИЕ ЗАЯВИТЕЛЯ = АВК-ШЕРЕМЕТЬЕВО2 РГ = ГИ06.02 Техобслуживание периферии, ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ ЧАС РЕГИСТРАЦИИ >= 17, СЕРВИС = 06.02 Стойки регистрации в А/П МАШ, РГ = ГИ09.1 Дежурная смена Help Desk ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ, ЧАС РЕГИСТРАЦИИ = 10 - 13 ДЕНЬ НЕДЕЛИ РЕГИСТРАЦИИ >= 3, ЧАС РЕГИСТРАЦИИ = 10 13 ДЕНЬ НЕДЕЛИ НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ >= 6, ЧАС НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ = 12 - 17 ДЕНЬ НЕДЕЛИ НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ >= 6, ДОМЕН = MSK, ОТДЕЛ НАЗНАЧЕННОГО СОТРУДНИКА = ДИТ
0,407
МЕСТОПОЛОЖЕНИЕ ЗАЯВИТЕЛЯ = АНГАР-1-(АДМ-КОРПУС) ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ, ИМЯ ОС = Microsoft Windows XP, ДОМЕН = MSK ЧАС РЕГИСТРАЦИИ = 13 - 17, ДЕНЬ НЕДЕЛИ НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ = 3-7 ЧАС РЕГИСТРАЦИИ >= 17, СЕРВИС = 06.02 Стойки регистрации в А/П МАШ, МЕСТОПОЛОЖЕНИЕ ЗАЯВИТЕЛЯ = АВКШЕРЕМЕТЬЕВО2, РГ = ГИ09.1 Дежурная смена Help Desk ЧАС НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ = 9 – 12, СЕРВИС = 06.02 Стойки регистрации в А/П МАШ, РГ = ГИ09.1 Дежурная смена Help Desk ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ, ДЕНЬ НЕДЕЛИ НАЧАЛА РАБОТЫ НАД ИНЦИДЕНТОМ = 4 - 6
0,401
ОТДЕЛ ЗАЯВИТЕЛЯ = АТЦ, IP2ND = 172.16., ВЕРСИЯ ОС = 5
0,417 0,416 0,415 0,41
Выводы по результатам практического применения. Результаты алгоритма деревьев решений намного меньше поддаются восприятию человеком из-за большего числа условий в левой части правил. Выбор алгоритма обнаружения правил в данных может существенно повлиять на результат анализа. Возможное отличие в результатах связано с особенностью реализации каждого из описанных 93
алгоритмов и не является ошибкой одного из них. В этой связи имеет смысл рекомендовать их совместное применение и использование дополнительных экспертных знаний для выбора более адекватного подхода для каждой конкретной модели. В конкретных двух случаях анализа, описанных выше, выбор метода зависит от дополнительных условий на поставленную задачу: • если выявлением скрытых знаний необходимо решить задачу классификации (например, какие совокупности значений параметров заявки или наряда гарантируют, что у них не будут нарушены сроки выполнения) заявок или нарядов, то целесообразно применять метод деревьев решений; • если выявлением скрытых знаний необходимо найти наиболее часто встречающиеся шаблоны (например, какие совокупности значений параметров наиболее часто ведут к нарушению сроков выполнения заявок или нарядов), то целесообразно применять метод поиска ассоциативных правил.
Контрольные вопросы 1. В чем отличие технологии Data Mining от других технологий анализа больших объемов данных? 2. Назовите наиболее распространенные методы анализа структурированных данных с использованием технологии Data Mining. Какие типы скрытых зависимостей они выявляют? 3. Почему при создании человеко-машинных информационных систем большое внимание уделяется зависимостям, полученным в виде правил «если, то»? 4. Кратко опишите суть метода построения дерева решений. Какие ограничения имеются у этого метода? 5. В чем суть и различие алгоритмов С 4.5 и CART при построения дерева решений? Одинаковые ли деревья будут построены? 6. Кратко опишите суть метода поиска ассоциативных правил. Какие ограничения имеются у этого метода? 7. В чем суть алгоритма Apriori, каковы его основные шаги? Каков смысл свойства анти-монотонности? 8. Что такое обобщенное ассоциативное правило? В чем отличие алгоритма вычисления обобщенных ассоциативных правил от алгоритма Apriori? 94
9. Какие улучшения требуются алгоритму поиска обобщенных ассоциативных правил для обеспечения приемлемых технических характеристик? 10. Какие прогрессивные методы Data Mining предполагается развивать в ближайшее время для получения скрытых зависимостей? 11. Какие программные продукты, реализующие технологию Data Mining, вам известны? Чем вызвано такое их разнообразие? 12. Какие программные продукты позволяют получать скрытые зависимости в виде правил «если, то»? 13. Приведите примеры инцидентов и проблем, возникающих при управлении ИТ службами организаций или компаний. 14. Почему после выяснения и устранения проблемы необходимо еще некоторое время отслеживать ранее возникавшие инциденты? 15. Как объяснить разное число правил, найденных для одного массива данных методами построения деревьев и поиска ассоциативных зависимостей? 16. Почему вид правил, найденных различными методами при обработке одного и того же набора данных, различается и «условными» и «следственными» частями? 17. Определите главные отличия результатов, получаемых методами построения деревьев и поиска ассоциативных зависимостей? Список литературы (жирным шрифтом выделена рекомендованная литература) 1. Brand E., Gerritsen R. Naive-Bayes and Nearest Neighbor // DBMS Magazine. – 1998. – №7. 2. Brin S. et al. Dynamic Itemset Counting and Implication Rules for Market Basket Data. // Proc. ACM SIGMOD Int. l Conf. Management of Data, ACM Press, 1997. 3. Cannon D., Wheeldon D. Service Operation. The Stationary Office, 2007. 4. ИТ Сервис менеджмент. Введение (пер. с англ.). Изд-во Van Haren Publishing, 2003. – 225 с. 5. Fayyad, Piatetsky-Shapiro, Smyth, Uthurusamy. Advances in Knowledge Discovery and Data Mining. – AAAI/MIT Press, 1996; 6. Iqbal M., Nieves M. Service Strategy. – The Stationary Office, 2007. 7. Lloyd V., Rudd C. Service Design. – The Stationary Office, 2007. 8. Lacy S., Macfarlane I. Service Transition. – The Stationary Office, 2007. 9. Parsaye K. A Characterization of Data Mining Technologies and Processes Database. // Programming and Design. – 1996. – № 4. 10. Paul S., MacLennan J., Tang Z., Oveson S. Data Mining Tutorial. – Microsoft Press, 2005. 95
11. Piatetsky-Shapiro. Machine, Learning and Data Mining. – Course Notes, 2004. 12. Srikant R., Agrawal R. Mining quantitative association rules in large relational tables //In Proceedings of the ACM SIGMOD Conference on Management of Data. Montreal, Canada, June 1996. 13. Андреев И. Деревья решений – CART математический аппарат. / "Exponenta Pro. Математика в приложениях". - 2004, - №3. 14. Буров К., Обнаружение знаний в хранилищах данных. / Открытые системы. – 1999. – №5. 15. Гончаров М. Модифицированный древовидный алгоритм Байеса для решения задач классификации. – Business Data Analytics, 2007. 16. Дюк В., Асеев М.. Поиск if-then правил в данных: проблемы и перспективы, Тр. СПИИРАН // РАН, С.-Петерб. ин-т информатики и автоматизации, 2005. 17. Дюк В. Методология поиска логических закономерностей в предметной области с нечеткой системологией. – Дис. д-ра техн. наук, 2005. 18. Дюк В. Осколки знаний // Экспресс-Электроника. – 2002. – № 6. 19. Дюк В., Самойленко А., Data Mining. Учебный курс. – СПб.: Питер, 2001. – 368 с. 20. Елманова Н. Введение в DataMining. // КомпьютерПресс. – 2003. – №8. 21. Ларин С. Выявление обобщенных ассоциативных правил – описание алгоритма // Exponenta Pro. Математика в приложениях. – 2003. – №3. 22. Ларин С. Использование деревьев решений для оценки кредитоспособности физических лиц // Банковское дело. – 2004. – №3. 23. Ларин С. Применение ассоциативных правил для стимулирования продаж // Exponenta Pro. Математика в приложениях. – 2005. – №6. 24. Леонов В. Краткий обзор методов кластерного анализа // Компьютерра. – 2004. – №9. 25. Паклин Н. Логистическая регрессия и ROC-анализ – математический аппарат. – BaseGroup Labs, 2006. 26. Официальный сайт Intersoft Lab (www.intersoft.ru). 27. Официальный сайт SPSS в РФ (http://www.spss.ru). 28. Струнков Т. Что такое генетические алгоритмы // PC Week RE. – 1999. – №19. 29. Чубукова И. Data Mining. – Бином, 2006. – 384 c. 30. Шахиди А. Введение в анализ ассоциативных правил. – BaseGroup Labs, 2004. 31. Шахиди А. Выявление обобщенных ассоциативных правил – описание алгоритма // Exponenta Pro. Математика в приложениях. – 2003. – №3. 32. Шахиди А. Деревья решений – C4.5 математический аппарат. – BaseGroup Labs, 2007. 33. Шахиди А., Деревья решений – основные принципы работы. – BaseGroup Labs, 2006. 34. Электронный учебник по статистике StatSoft. – М.: StatSoft, 2003, (http://www.statsoft.ru/home/textbook/default.htm.). 35. Безруких М.М., Фарбер Д.А. Психофизиология. Словарь. Психологический лексикон. Энциклопедический словарь в шести томах / Ред.-сост. Л.А. Карпенко. Под общ. ред. А.В. Петровского. – М.: ПЕР СЭ, 2006. 96