Министерство образования и науки Российской ФедерацииМОСКОВСКИЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ(государственный университет)ФАКУЛЬТЕТ РАДИОТЕХНИКИ И КИБЕРНЕТИКИКАФЕДРА ИНФОКОММУНИКАЦИОННЫХ СИСТЕМ И СЕТЕЙМОДЕЛИ И МЕТОДЫ ОЦЕНКИ КОЛИЧЕСТВЕННЫХ ХАРАКТЕРИСТИК КОМПЛЕКСА РАБОТ В РАМКАХ ПРОЕКТОВВыпускная квалификационная работастудента 517 группы Васильева Алексея ВладимировичаНаучный руководительАнтоненко М.Н., к.ф.-м.н.г. Долгопрудный2009Содержание Введение 41 Постановка задачи 52 Обзор 73 Методика решения задачи 104 Пример 1. Решение задачи регрессии 225 Пример 2. Решение задачи Attribute Importance и задачи регрессии 246 Заключение и выводы 297 Список использованных источников и литературы 30 Введение Повсеместное использование компьютеров привело к пониманию важности задач, связанных с анализом накопленной информации с целью извлечения новых знаний. Возникла потребность в создании хранилищ данных и систем поддержки принятия решений, основанных, в том числе, на методах теории искусственного интеллекта. Одно из применений таких систем – это оценка количественных характеристик проектов. Как определяет PMBOK[1], проект – это временное предприятие, предназначенное для создания уникальных продуктов, услуг или результатов. Соответственно, по завершении проекта (как успешных, так и нет), остаются данные, которые несут в себе количественные характеристики проекта, его суммарные характеристики, и много другой полезной информации. Вообще говоря, управление предприятием, различные сферы бизнеса, в том числе электронного, немыслимы без процессов накопления, анализа, выявления определенных закономерностей и зависимостей, прогнозирования тенденций и рисков. Существует множество методов оценки проектов, таких как The IFPUG Function Point Counting Method, Functional Size Measurement Methods, COCOMO и другие, и каждый из них хорошо применим в определенных случаях, и не применим в других. Данная работа является исследованием, относящимся к области применения средств и методов интеллектуального анализа данных для оценки количественных характеристик работ в рамках проектов; рассмотрены основные механизмы, используемые в данной области. Хочется заметить, что применение изложенных методов нисколько не ограничивается описанной здесь областью: технологии оперативного и интеллектуального анализа данных являются сравнительно новой областью науки, но уже успели себя зарекомендовать как надежные и состоятельные способы как в медицине, так и в торговле, и в телекоммуникациях, и в банковском деле, и т.д. Но из-за огромного количества информации очень малая ее часть будет когда-либо увидена человеческим глазом. Единственный способ понять и найти что-то полезное в этом океане информации – широкое применение методов Data Mining. Data Mining (также называемая Knowledge Discovery In Data – обнаружение знаний в данных) изучает процесс нахождения новых, действительных и потенциально полезных знаний в базах данных. Data Mining лежит на пересечении нескольких областей знаний, главные из которых – это системы баз данных, статистика и искусственный интеллект.^ 1Постановка задачи Цель работы состоит в том, чтобы показать состоятельность и применимость методов интеллектуального анализа данных (Data Mining) к задачам оценки количественных характеристик работ в рамках проектов. Заметим, что полученные данные (или знания), должны отвечать следующим концептуальным положениям:^ Знания должны быть новые, ранее неизвестные. Затраченные усилия на открытие знаний, которые уже известны пользователю, не окупаются. Поэтому ценность представляют именно новые, ранее неизвестные знания.^ Знания должны быть нетривиальны. Результаты анализа должны отражать неочевидные, неожиданные закономерности в данных, составляющие так называемые скрытые знания. Результаты, которые могли бы быть получены более простыми способами (например, визуальным просмотром), не оправдывают привлечение мощных методов Data Mining.^ Знания должны быть практически полезны. Найденные знания должны быть применимы, в том числе и на новых данных, с достаточно высокой степенью достоверности. Полезность заключается в том, чтобы эти знания могли принести определенную выгоду при их применении.^ Знания должны быть доступны для понимания человеку. Найденные закономерности должны быть логически объяснимы, в противном случае существует вероятность, что они являются случайными. Кроме того, обнаруженные знания должны быть представлены в понятном для человека виде. Методы Data Mining помогают решить многие задачи, с которыми сталкивается аналитик, причем основными являются: классификация, регрессия, поиск ассоциативных правил и кластеризация. Ниже приведено краткое описание основных задач анализа данных.^ Задача классификации сводится к определению класса объекта по его характеристикам. Необходимо заметить, что в этой задаче множество классов, к которым может быть отнесен объект, заранее известно.^ Задача регрессии, подобно задаче классификации, позволяет определить по известным характеристикам объекта значение некоторого его параметра. В отличие от задачи классификации значением параметра является не конечное множество классов, а множество действительных чисел. При поиске ассоциативных правил целью является нахождение частых зависимостей (или ассоциаций) между объектами или событиями. Найденные зависимости представляются в виде правил и могут быть использованы как для лучшего понимания природы анализируемых данных, так и для предсказания появления событий.^ Задача кластеризации заключается в поиске независимых групп (кластеров) и их характеристик во всем множестве анализируемых данных. Решение этой задачи помогает лучше понять данные. Кроме того, группировка однородных объектов позволяет сократить их число, а, следовательно, и облегчить анализ.В данной работе в числе прочего рассматривается задача регрессии – определение выходных характеристик проекта, на основе некоторых входных его параметров (атрибутов). Тут говорится именно о некоторых атрибутах, а не о всех, которые есть в наличии. Задача выбора из множества возможных атрибутов наиболее значимых – это отдельная подзадача определения важности каждого из них (Attribute Importance). Заметим, что это весьма необычный способ оценки характеристик проекта, не применявшийся ранее в данной области. Именно это и обуславливает новизну работы. Поэтому качественно определить задачу можно следующим образом: из множества предоставленных данных выделить наиболее важные – те, которые оказывают наибольшее влияние на конечный результат;на основе наиболее значимых данных показать состоятельность решения задачи регрессии (предсказания численного результата на основе выбранных параметров). 2Обзор Фундаментальное понятие проекта описано в PMBOK[1], где оно определяется следующим образом: проект – это временное предприятие, предназначенное для создания уникальных продуктов, услуг или результатов. Также там описываются характеристики проекта: Временность проекта. Термин "временное" означает, что у любого проекта есть четкое начало и четкое завершение. Завершение наступает, когда достигнуты цели проекта; или осознано, что цели проекта не будут или не могут быть достигнуты; или исчезла необходимость в проекте, и он прекращается. Уникальные продукты, услуги или результаты. В результате проекта получаются уникальные результаты поставки, представляющие собой продукты, услуги или результаты. Последовательная разработка. Последовательная разработка означает развитие по этапам и протекание по шагам.Один из процессов управления проектом – это управление стоимостью. Управление стоимостью проекта объединяет процессы, выполняемые в ходе планирования, разработки бюджета и контролирования затрат, и обеспечивающие завершение проекта в рамках утвержденного бюджета. Оно включает в себя: Стоимостная оценка – определение примерной стоимости ресурсов, необходимых для выполнения операций проекта. Разработка бюджета расходов – суммирование оценок стоимости отдельных операций или пакетов работ и формирование базового плана по стоимости. Управление стоимостью – воздействие на факторы, вызывающие отклонения по стоимости, и управление изменениями бюджета проекта.Для оценки стоимости и других характеристик проектов сузествует множество методов. Например, в книге «The IT Measurement Compendium»[2], имеется несколько методов и различных их вариаций. Наиболее яркие из них – The IFPUG Function Point Counting Method, Functional Size Measurement Methods, COCOMO, Estimation of Data Warehouses, и другие. И для каждого из них отправным шагом является определение ИСР. ИСР – иерархическая структура работ (WBS – work breakdown structure). Мы тоже будем придерживаться данного подхода, и каждый элемент ИСР и будет являться необходимым для нас атрибутом. PMBOK[1] определяет два метода для создания ИСР: 1. ^ Шаблоны иерархической структуры работ. Несмотря на уникальность каждого проекта, ИСР предыдущего проекта часто может служить шаблоном для нового проекта, поскольку некоторые проекты в той или иной степени будут схожи с предшествующими. 2. Декомпозиция. Это разделение результатов поставки проекта на более мелкие и более управляемые элементы; декомпозиция выполняется до тех пор, пока работа и результаты поставки не определяются на уровне пакетов работ. Уровень пакетов работ является низшим и представляет собой точку, в которой стоимость и график работ могут быть оценены с достаточной степенью достоверности. Чрезмерная декомпозиция может привести к непродуктивной управленческой трудоемкости, неэффективному использованию ресурсов и снижению эффективности при выполнении работы. После того, как сформирован ИСР, необходимо сделать оценку ресурсов, необходимых для ее реализации и принять решения о дальнейшем развитии проекта. Тут аналитик может руководствоваться своими «полуинтуитивными» оценками, для проверки какой-либо возникшей гипотезы он может воспользоваться средствами OLAP1, а может привлечь мощные инструменты Data Mining. Вот что по данному поводу написано в книге «Технологии Анализа Данных»[3]: «OLAP-системы, предоставляют аналитику средства проверки гипотез при анализе данных. При этом основной задачей аналитика является генерация гипотез. Он решает ее, основываясь на своих знаниях и опыте. Однако знания есть не только у человека, но и в накопленных данных, которые подвергаются анализу. Такие знания часто называют «скрытыми», т. к. они содержатся в гигабайтах и терабайтах информации, которые человек не в состоянии исследовать самостоятельно. В связи с этим существует высокая вероятность пропустить гипотезы, которые могут принести значительную выгоду. Очевидно, что для обнаружения скрытых знаний необходимо применять специальные методы автоматического анализа, при помощи которых приходится практически добывать знания из "завалов" информации. За этим направлением прочно закрепился термин добыча данных или Data Mining. Data Mining - исследование и обнаружение "машиной" (алгоритмами, средствами искусственного интеллекта) в сырых данных скрытых знаний, которые ранее не были известны, нетривиальны, практически полезны, доступны для интерпретации человеком.»^ 3Методика решения задачи В данном разделе представлены понятия и теоретические обоснования используемых методов и алгоритмов: Data, Cases, and Attributes (Данные, записи(или кейсы) и атрибуты),Treat Missing Values (Обработка пропущенных значений),Remove outliers (Удаление выбросов),Normalize (Нормализация),Attribute Importance (Задача определения ключевых атрибутов),Алгоритм Minimum Descriptor Length,Методология метода Attribute Importance (Explain Methodology),Задача классификации (Classification),Задача регрессии (Regression),Алгоритм Support Vector Machine (SVM),Методология решения задачи регрессии (Predict Methodology),Тестирование регрессионной модели.^ 3.1Data, Cases, and Attributes (Данные, записи и атрибуты) Данные, используемые механизмом Data Mining, содержатся в таблицах или представлениях Баз Данных. Данные, используемые в data mining, обычно называются набором данных. Данные имеют физическую организацию и логическую интерпретацию. Имена колонок ссылаются на физическую организацию; имена атрибутов ссылаются на логическую интерпретацию данных. Строки в таблицах данных называются записи, или примеры, или кейсы. Колонки в таблицах называются атрибутами или полями, значение атрибута для каждой записи хранится в ячейке. Всего различают два типа атрибутов: по категориям (categorical) и числовые (numerical). Атрибуты по категориям суть или небольшое число, или дискретный набор (класс). Если существует только два возможных значения, например, yes и no, или male и female, такие атрибуты называются бинарными. Если существует более чем два возможных значения, например, high, medium, poor, то говорят, что атрибут мультиклассовый. Числовые атрибуты суть числа, которые принимают большое число значений, например, ежегодный доход. Для числовых атрибутов, различия между значениями обычно упорядочены. Теоретически, ежегодный доход может быть от нуля до бесконечности, но на практике он принимает конечное число значений. Мы всегда можем перевести числовые атрибуты в атрибуты по категориям. Например, ежегодный доход может быть поделен на три категории: low, medium, high. Наоборот, мы может преобразовать атрибуты по значениям в числовые значения. Алгоритмам классификации и регрессии требуется целевой атрибут (target attribute). Модель может предсказать только один целевой атрибут. Для всех классификационных алгоритмов он может быть или числовой, или по категориям. Для задачи регрессии целевой атрибут может быть только числом. Определенные алгоритмы поддерживают неструктурированные текстовые атрибуты. Хотя неструктурированные данные включают изображения, аудио, видео и пр., data mining поддерживает только текстовые данные. Таблица с исходными данными может содержать одну или больше текстовых колонок. ^ 3.2Treat Missing Values (Обработка пропущенных значений) Таблицы данных часто содержат пропущенные значения. Определенные алгоритмы полагают, что значения NULL означают пропущенное значение, другие полагают, что значения NULL означают просто редкие данные. Поэтому необходимо обработать пропущенные значения, не требуя от пользователя каких-либо специальных способов. Притом, иногда требуется игнорировать пропущенные значения, притом используя другие не пустые данные в записи. Но если алгоритм полагает, что значения NULL означают редкие данные, то мы должны обработать любые значения, которые похожи на пропущенные данные. Данные являются редкими, если только небольшая функция (не больше, чем 20%, часто 3% или меньше) атрибутов ненулевая или ненулевая для некоторых данных случаев. Редкие данные получаются, например, в проблеме потребительской корзины. В продовольственном магазине может быть более 10 000 продуктов, а примерный размер корзины (набора отдельных вещей, которые покупатель купил в типичной транзакции) порядка 50 продуктов. В этом примере транзакция (или запись) имеет примерно 50 ненулевых значений. Это означает, что доля ненулевых атрибутов в таблице (или плотность) составляет примерно 0.5%. Эта Плотность типична для проблемы потребительской корзины. Таким образом, различные алгоритмы могут по-разному «понимать» что означают редкие данные. Для Support Vector Machine, k-Means, association, and Non-Negative Matrix Factorization, NULL значения означают редкие данные, для всех других значения NULL означают пропущенные значения.^ 3.3Remove outliers (удаление выбросов) Выбросы (резко выделяющиеся значения экспериментальных величин) – это значения, которые выходят за нормальные пределы в наборе данных, обычно несколько средних квадратичных отклонений от среднего значения. Присутствие выбросов может оказать существенные влияние на точность многих алгоритмов. Naive Bayes, Adaptive Bayes Network, Support Vector Machine, Attribute Importance, любые алгоритмы кластеризации, и Non-Negative Matrix Factorization алгоритмы чувствительны к выбросам. ^ 3.4Normalize (нормализация) Нормализация преобразует индивидуальные числовые атрибуты таким образом, что занчения атрибутов лежат в одном и том же диапазоне. Значения преобразуются в диапазон от 0.0 до 1.0 или в диапазон от – 1.0 до 1.0. Нормализация обеспечивает что атрибуты не получат искусственной надбавки вызванной отличием в диапазонах, в которых они лежат. Некоторые алгоритмы, такие как k-Means, Support Vector Machine, и Non-Negative Matrix Factorization «выигрывают» от нормализации. ^ 3.5Attribute Importance (Задача определения ключевых атрибутов) Attribute Importance (AI) предоставляет собой решение для увеличения скорости и, возможно, точности для модели классификации, построенной на таблице с большим числом атрибутов. Время, требуемое для построения модели классификации, возрастает с количеством атрибутов. AI идентифицирует поднабор атрибутов, наиболее релевантные для предсказания целевого атрибута. Соответственно, модель может быть построена только на выбранных атрибутах. Использование же слишком малого числа атрибутов ухудшает точность предсказания. Наоборот, использование слишком большого числа атрибутов (особенно, которые вносят «шум»(noise)), может оказать влияние на модель – сильно снизить производительность или точность. Предсказание использует наименьшее число атрибутов, которые могут сохранить время вычисления и могут построить наилучшую модель. ^ 3.6Алгоритм Minimum Descriptor Length Data Mining использует Minimum Descriptor Length алгоритм для решения этой задачи. Minimum Description Length (MDL) – это информационная теоретическая модель выборочного принципа. MDL полагает, что простейшее, наиболее компактное представление данных – это вероятностное истолкование данных. Этот принцип используется для построения модели Attribute Importance. MDL рассматривает каждый атрибут как простейшую предсказательную модель для целевого класса. Эти простейшие предсказатели модели сравниваются и упорядочиваются в соответствии с MDL метрикой (сжатие в битах). С MDL, модель выбора преобразуется в коммуникационную модель. А именно отправителя, получателя и передаваемые данные. Для классификационных моделей, передаваемые данные являются моделью и последовательностью целевого класса значений в обучающих данных. AI использует состоящий из двух частей код для передачи данных. Первая часть (преамбула) передает модель. Параметры этой модели – целевые вероятности, ассоциированные с каждым предсказанным значением. Для цели с значениями и предсказателя с значениями, строк на значение, существует , комбинаций из записей, имеющих одновременно возможных условных вероятностей. Размер преамбулы в битах может быть представлен как . Вычисления подобно этому проделываются для каждой простейшей предсказательной модели. Следующая часть кода преобразует целевые значения, используя модель. Известно, что наиболее компактное кодирование последовательности это кодирование наиболее часто встречающихся символов. Таким образом, модель, имеющая наибольшую вероятность для последовательности, имеет наименьшую стоимость для целевого класса значений. В битах, это сумма , где – предсказанная вероятность для строки , сопоставленная модели. ^ 3.7Методология метода Attribute Importance Таким образом, для задачи определения ключевых атрибутов мы имеем следующий порядок выполнения действий с исходными данными. После того, как модель построена, и произведен ее анализ, мы можем делать выводы о том, насколько сильно влияет каждый атрибут на целевой атрибут, а также делать выводы о необходимости использования тех или иных атрибутов для построения предсказательной модели. ^ 3.8Задача классификации (Classification) Классификация коллекции заключается в делении примеров, составляющих коллекцию, на категории или классы. В контексте data mining, классификация это модель, использующая «исторические» данные. Цель задачи классификации – наиболее точно предсказать класс для каждой записи в новых данных, то есть, данных нет в исторических данных. Классификационная задача начинается с построения данных (также известных как обучающие данные) для каждого целевого значения, которое известно. Различные алгоритмы классификации используют различные техники для поиска взаимоотношений между значениями предсказывающих атрибутов и целевым атрибутом. Эти взаимоотношения обобщаются в модели, и теперь модель может быть применена к новым кейсам, у которых не известно значение целевого атрибута. Классификационная модель также может быть применена к данным, у которых значение целевого атрибута известно для сравнения известного целевого атрибута. Такие данные также известны как тестовые данные или оценочные данные. Техника сравнения называется тестированием модели, которая показывает точность предсказания модели. Классификация используется для сегментации заказчиков, бизнес – моделирования, анализа кредитов, и в других приложениях. ^ 3.9Задача регрессии (Regression) Регрессионная модель похожа на задачу классификации. Различие между задачами регрессии и классификации в том, что регрессия имеет дело с числовыми атрибутами, в то время как классификация имеет дело с дискретным набором атрибутов. Другими словами, целевой атрибут может принимать непрерывное число значений. Для построения модели как классификации, так и регрессии, используется алгоритм Support Vector Machine (SVM).^ 3.10Алгоритм Support Vector Machine (SVM) Алгоритмы классификации и регрессии под общим названием SVM во многих случаях успешно заменили нейронные сети и в данное время применяются очень широко. Идея метода основывается на предположении о том, что наилучшим способом разделения точек в - мерном пространстве является плоскость (заданная функцией ), равноудаленная от точек, принадлежащих разным классам. Для двумерного пространства эту идею можно представить в виде, изображенном на рисунке. Как можно заметить, для решения этой задачи достаточно провести плоскость, равноудаленную от ближайших друг к другу точек, относящихся к разному классу. На рисунке такими точками являются точки eиd. Данный метод интерпретирует объекты (и соответствующие им в пространстве точки) как векторы размера . Другими словами, независимые переменные, характеризующие объекты, являются координатами векторов. Ближайшие друг к другу векторы, относящиеся к разным классам, называются векторами поддержки (support vectors). Формально данную задачу можно описать как поиск функции, отвечающей следующим условиям: для некоторого конечного значения ошибки Если линейна, то ее можно записать в виде: где — скалярное произведение векторов и ;— константа, заменяющая коэффициент . Введем понятие плоскости функции таким образом, что большему значению плоскости соответствует меньшее значение евклидовой нормы вектора : Тогда задачу нахождения функции можно сформулировать следующим образом — минимизировать значение при условии: Решением данной задачи является функция вида: где , и , — положительные константы, удовлетворяющие следующим условиям: Константа задает соотношение между плоскостью функции и допустимым значением нарушения границы . Несмотря на то, что рассмотрен случай с линейной функцией , метод SVM может быть использован и для построения нелинейных моделей[4]. Для этого скалярное произведение двух векторов необходимо заменить на скалярное произведение преобразованных векторов:.Функцияназываетсяядром. Тогда выражение для решения задачи можно переписать в виде:. Отличие от линейного варианта SVM здесь в том, что теперь находится не непосредственно, а с использованием преобразования . Необходимо также заметить, что при создании нелинейных моделей с использованием метода SVM не выполняется прямое, а затем обратное преобразование объектов из нелинейного в линейное пространство. Преобразование заложено в самой формуле расчета, что значительно снижает вычислительные затраты. Вид преобразования, а точнее функция , может быть различного типа и выбирается в зависимости от структуры данных. В таблице приведены основные виды функций классификации, применяемых в SVM-методе. Ядро Название Линейная Полиномиал степени Базовая радиальная функция Гаусса Сигмоидальная К достоинствам метода SVM можно отнести следующие факторы: теоретическая и практическая обоснованность метода; общий подход ко многим задачам. Используя разные функции , можно получить решения для разных задач; устойчивые решения, нет проблем с локальными минимумами; не подвержен проблеме overfitting2; работает в любом количестве измерений. Недостатками метода являются: невысокая производительность по сравнению с более простыми методами; отсутствие общих рекомендаций по подбору параметров и выбору ядра; побочные эффекты нелинейных преобразований; сложности с интерпретацией результата.^ 3.11Методология решения задачи регрессии (Predict Methodology) Собрав вместе все сказанное выше для задачи регрессии, мы получим следующую схему:^ 3.12Тестирование регрессионной модели После того, как модель построена и произведено предсказание всех данных (сейчас мы имеем дело только с обучающей выборкой, и поэтому знаем действительные значения), необходимо снять метрики, насколько точно предсказанные значения соотносятся с имеющимися действительными значениями. Для этого снимается и строится несколько метрик. ^ 3.12.1Residual Plot (невязки в графическом виде). Для визуального анализа полученных результатов делается построение невязок в процентном масштабе: по оси абсцисс откладывается действительное значение, а по оси откладывается в процентном масштабе отклонение предсказываемого значения от действительного. Ниже на картинке показан пример такого построения:^ 3.12.2Регрессионная статистика (Regression Statistic) Корень из среднеквадратичной ошибки (Root Mean Squared Error) и Средняя абсолютная ошибка (Mean Absolute Error) обычно используются для описания качества регрессионной модели. Различные статистики могут также зависить от регрессионной модели и используемых алгоритмов. ^ Root Mean Squared Error (RMSE) описывается формулой: SQL представление для подсчета RMSE: SQRT(AVG((predicted_value - actual_value) * (predicted_value - actual_value)))^ Mean Absolute Error (MAE) описывается формулой: SQL представление для подсчета MAE: AVG(ABS(predicted_value - actual_value)) Ниже показан пример подсчета такой статистики для одной из задач:^ Predictive confidence (достоверность предсказания). Достоверность предсказания описывает доверительные интервалы предсказанного значения, в которые попадает действительное значение. Так, если модель предсказала значение $100,000 с достоверностью 95%, это означает, что значение лежит в промежутке между $95,000 и $105,000. Ниже показан пример predictive confidence: Таким образом, с помощью этих инструментов мы можем делать выводы о качестве модели.^ 4 Пример 1. Решение задачи регрессии На практике часто встречается ситуация, когда на проекте внедряется сразу несколько модулей, имеющих различную стоимость, или LOE. При этом суммарная стоимость может как возрастать, так и убывать в зависимости от типов модулей и их количества. В данной задаче рассматривается случай внедрения четырех модулей со стоимостями loe1, loe2, loe3, loe4. Без ограничения общности можем предположить, что loe1 ≥ loe2 ≥ loe3 ≥ loe4; во всяком случае, мы всегда может их упорядочить по возрастанию.^ Выберем для суммарной стоимости модельную функцию f, описываемую формулой:.Мы хотим посмотреть, как точно будет предсказываться поведение такой функции с помощью выбранного нами инструмента.Для решения задачи сгенерируем порядка ста случайных чисел для loeX, вычислим функцию f, и вставим это все в таблицу базы данных. В приложении имеется соответствующая таблица. После проведения расчетов указанным способом получим таблицу с результатами предсказаний (показаны начало и конец таблицы). F PREDICTION df/f, % ID LOE1 LOE2 LOE3 LOE4 198 191.25 3.409 97 26 50 25 84 153 148.124 3.187 3 57 48 22 24 90 92.785 3.095 55 2 43 15 30 112 114.784 2.486 78 51 25 9 22 … … … … … … … … 264 263.898 0.039 89 47 4 137 65 209 209.075 0.036 37 103 10 29 56 277 276.942 0.021 50 104 55 66 42 Видно, что самое неточное предсказание не превышает 3,5%. Все те же результаты на графике Residual Plot:Ошибки величиной в несколько процентов в этом примере вызваны частично округлением (функция f округлялась до ближайшего целого). Теперь метрики Root Mean Squared Error и Mean Absolute Error:И метрики Predictive confidence:Видно, что способ предсказал достаточно точные результаты, ошибки которых вызваны, вероятно, погрешностью округления. ^ 5Пример 2. Решение задачи Attribute Importance и задачи регрессии Еще интересно рассмотреть задачу, приближенную к реальным условиям. Допустим, что у нас есть множество клиентов, которым мы задаем вопросы относительно их инфраструктуры. Далее ответы мы считаем нашими входными характеристиками (или атрибутами). В нашем WBS будут осмысленные числа, реально касающиеся заказчика, и один очевидно малозначимый атрибут (количество чашек чая, выпиваемого в день специалистам, работающими на проекте). ^ Вот описание этих атрибутов:Начиная со скольких источников данных необходимо осуществить миграцию (Migration from only the following data sources needs to be quoted) { num_of_data_sources (max 18) }Приблизительное число сущностей, приходящихся на один источник данных (List briefly distinct entities which are stored in one data source) { num_entity_per_ds (max 100) }Среднее число атрибутов и FK на одну сущность (Assessed by a number of attributes and foreigh keys per entity) { num_attr_and_fk_per_ent (max 25) }Среднее качество данных (Expect quality of the data) – High, Medium, Poor. { quality_of_input_data : H, M, P }Среднее количество ордеров, приходящих в день (Average number of orders per day) { num_of_orders_per_day (max 2 000) }Количество одновременно использующих систему пользователей (Number of concurrent users which actually use the system) { num_of_concurrent_users (max 3 000) } Сколько сетевых тревог случается в сети за день (How many network alarms happen in network per day) { network_alarms_per_day (max 1 000) } Сколько чашек чая выпивается за день { cup_of_tea_per_day (max 150) } Положим следующую модельную функцию зависимости количества работ от этих атрибутов:Теперь решим обе эти задачи. Для этого сгенерируем порядка ста тестовых данных (различных наборов атрибутов), вычислим функцию f, и вставим это все в таблицу базы данных. В приложении имеется соответствующая таблица с данными. ^ 5.1Attribute Importance Задача выбора наиболее значимых атрибутов является важной на этапе выбора ключевых с целью улучшения результатов и увеличения производительности. Для таблицы, содержащей сгенерированные данные, построим с помощью алгоритма Minimum Description Length графически значимость атрибутов. Видно, что атрибут cup_of_tea_per_day (количество чашек чая в день) вносит наименьший вклад в результирующую функцию. Поэтому, скорее всего, аналитику стоит принять решение «выкинуть» этот атрибут из расчетов значений итоговой функции f. Соответственно, после этого статистика для важности атрибутов примет следующий вид:Теперь, когда мы определились, по каким атрибутам мы будем оценивать функцию, можно строить регрессионную модель.^ 5.2Задача регрессии. Решив задачу регрессии, получим результаты. Тут они не приводятся, в виду большого числа атрибутов. Приведем соответствующие невязки:Видно, что тут погрешности на порядок выше. Это обусловлено «сильной» нелинейностью функции f. Приведем соответствующие погрешности для данного примера:И достоверность предсказания. Видно, что метод показал достаточно точные результаты на не линейных функциях!^ 6Заключение и выводы По результатам выполнения работы, средства Data Mining показали перспективность и состоятельность применения к задачам оценки количественных характеристик работ. Результаты, полученные на тестовых модельных данных, показали достаточную точность, чтобы считать средства Data mining пригодными для анализа проектов на основе накопленных данных, полученных с выполненных проектов. Автор считает целесообразным продолжить исследования по данной тематике, в частности, с использованием реальных данных по проектам, в рамках магистерской работы. Также дальнейшие исследования должны включать вопросы:области применимости предложенного метода, выявлению ограничений данного подхода к оценке реальных проектов, анализу влияния «шума», всегда присутствующего в данных, характеризующих реальные проекты, чувствительности к изменению значений параметров (жесткость системы). ^ 7Список использованных источников и литературы Руководство PMBOK®, 2004 Project Management Institute, Four Campus Boulevard, Newtown Square, PA 19073-3299 USA / США.Manfred Bundschuh, Carol Dekkers, The IT Measurement Compendium.Барсегян А.А., Куприянов М.С., Степаненко В.В., Холод И.И. Технологии анализа данных: Data Mining, Visual Mining, Text Mining, OLAP – СПб.: БХВ-Петербург, 2008. http://www.oracle.com/technology/documentation/datamining.html Ньюэл Майкл В. Управление проектами для профессионалов. Руководство по подготовке к сдаче сертификационного экзамена – М.: КУДИЦ-ПРЕСС, 2008.Хардман Р., МакЛафлин М. Oracle PL/SQL для профессионалов – М.: Лори, 2007. Таблица данных к примеру 1: F PREDICTION df/f, % ID LOE1 LOE2 LOE3 LOE4 198 191.25 3.409 97 26 50 25 84 153 148.124 3.187 3 57 48 22 24 90 92.785 3.095 55 2 43 15 30 112 114.784 2.486 78 51 25 9 22 163 165.785 1.709 63 3 86 51 13 166 163.215 1.678 52 23 44 39 60 262 257.833 1.591 91 93 56 48 52 178 180.785 1.565 79 36 16 47 76 184 186.785 1.514 29 18 14 97 31 184 186.784 1.513 96 30 54 7 89 186 188.785 1.497 19 85 50 43 8 190 192.785 1.466 76 103 63 5 4 197 199.785 1.414 38 48 67 31 51 198 200.785 1.407 59 108 13 4 56 200 202.786 1.393 39 6 52 3 115 201 203.786 1.386 68 6 26 57 102 201 198.215 1.386 13 20 21 88 63 207 209.785 1.345 62 7 17 114 47 230 232.785 1.211 48 111 22 85 8 229 226.26 1.196 67 57 31 22 104 237 239.784 1.175 27 92 37 82 26 238 240.784 1.17 9 91 42 31 71 241 238.215 1.155 71 27 28 13 136 245 247.785 1.137