Интеллектуальный анализ данных
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Целью интеллектуального анализа данных (англ. Datamining, другие варианты перевода - "добыча данных", "раскопка данных") является обнаружение неявных закономерностей в наборах данных. Как научное направление он стал активно развиваться в 90-х годах XXвека, что было вызвано широким распространением технологий автоматизированной обработки информации и накоплением в компьютерных системах больших объемов данных. И хотя существующие технологии позволяли, например, быстро найти в базе данных нужную информацию, этого во многих случаях было уже недостаточно. Возникла потребность поиска взаимосвязей между отдельными событиями среди больших объемов данных, для чего понадобились методы математической статистики, теории баз данных, теории искусственного интеллекта и ряда других областей.
Классическим считается определение,данное одним из основателей направления Григорием Пятецким-Шапиро: DataMining - исследование и обнаружение "машиной" (алгоритмами, средствами искусственного интеллекта) в сырых данных скрытых знаний, которые ранее не были известны, нетривиальны, практически полезны, доступны для интерпретации.
Учитывая разнообразие форм представления данных, используемых алгоритмов и сфер применения, интеллектуальный анализ данных может проводиться с помощью программных продуктов следующих классов:
• специализированных "коробочных" программных продуктов для интеллектуального анализа;
• математических пакетов;
• электронных таблиц(и различного рода надстроек над ними);
• средств интегрированных в системы управления базами данных (СУБД);
• других программных продуктов.
В рамках данного курса нас в первую очередь будут интересовать средства, интегрированные с СУБД. В качестве примера можно привести СУБД MicrosoftSQLServer и входящие в ее состав службы AnalysisServices, обеспечивающие пользователей средствами аналитической обработки данных в режиме on-line (OLAP)и интеллектуального анализа данных, которые впервые появились в MSSQLServer 2000.
Не только Microsoft, но и другие ведущие разработчики СУБД имеют в своем арсенале средства интеллектуального анализа данных.
Задачи интеллектуального анализа данных
В ходе проведения интеллектуального анализа данных проводится исследование множества объектов (или вариантов). В большинстве случаев его можно представить в виде таблицы, каждая строка которой соответствует одному из вариантов, а в столбцах содержатся значения параметров, его характеризующих. Зависимая переменная - параметр, значение которого рассматриваем как зависящее от других параметров (независимых переменных). Собственно эту зависимость и необходимо определить, используя методы интеллектуального анализа данных.
Рассмотрим основные задачи интеллектуального анализа данных.
Задача классификации заключается в том, что для каждого варианта определяется категория или класс, которому он принадлежит. В качестве примера можно привести оценку кредитоспособности потенциального заемщика: назначаемые классы здесь могут быть "кредитоспособен" и "некредитоспособен". Необходимо отметить, что для решения задачи необходимо, чтобы множество классов было известно заранее и было бы конечным и счетным.
Задача регрессии во многом схожа с задачей классификации, но в ходе ее решения производится поиск шаблонов для определения числового значения. Иными словами, предсказываемый параметр здесь, как правило, число из непрерывного диапазона.
Отдельно выделяется задача прогнозирования новых значений на основании имеющихся значений числовой последовательности (или нескольких последовательностей, между значениями в которых наблюдается корреляция). При этом могут учитываться имеющиеся тенденции (тренды), сезонность, другие факторы. Классическим примером является прогнозирование цен акций на бирже.
Тут требуется сделать небольшое отступление. По способу решения задачи интеллектуального анализа можно разделить на два класса: обучение с учителем (от англ. supervisedlearning) и обучение без учителя (от англ. unsupervisedlearning). В первом случае требуется обучающий набор данных, на котором создается и обучается модель интеллектуального анализа данных. Готовая модель тестируется и впоследствии используется для предсказания значений в новых наборах данных. Иногда в этом же случае говорят об управляемых алгоритмах интеллектуального анализа. Задачи классификации и регрессии относятся как раз к этому типу.
Во втором случае целью является выявление закономерностей имеющихся в существующем наборе данных. При этом обучающая выборка не требуется. В качестве примера можно привести задачу анализа потребительской корзины, когда в ходе исследования выявляются товары, чаще всего покупаемые вместе. К этому же классу относится задача кластеризации.
Также можно говорить о классификации задач интеллектуального анализа данных по назначению, в соответствии с которой,они делятся на описательные (descriptive) и предсказательные (predictive). Цель решения описательных задач - лучше понять исследуемые данные, выявить имеющиеся в них закономерности, даже если в других наборах данных они встречаться не будут. Для предсказательных задач характерно то, что в ходе их решения на основании набора данных с известными результатами строится модель для предсказания новых значений.
Но вернемся к перечислению задач интеллектуального анализа данных.
Задача кластеризации - заключается в делении множества объектов на группы (кластеры) схожих по параметрам. При этом, в отличие от классификации, число кластеров и их характеристики могут быть заранее неизвестны и определяться в ходе построения кластеров исходя из степени близости объединяемых объектов по совокупности параметров.
Другое название этой задачи - сегментация. Например, интернет-магазин может быть заинтересован в проведении подобного анализа базы своих клиентов, для того, чтобы потом сформировать специальные предложения для выделенных групп, учитывая их особенности.
Кластеризация относится к задачам обучения без учителя (или "неуправляемым" задачам).
Задача определения взаимосвязей, также называемая задачей поиска ассоциативных правил, заключается в определении часто встречающихся наборов объектов среди множества подобных наборов. Классическим примером является анализ потребительской корзины, который позволяет определить наборы товаров, чаще всего встречающиеся в одном заказе (или в одном чеке). Эта информация может потом использоваться при размещении товаров в торговом зале или при формировании специальных предложений для группы связанных товаров.
Данная задача также относится к классу "обучение без учителя".
Анализ последовательностей или сиквенциальный анализ одними авторами рассматривается как вариант предыдущей задачи, другими - выделяется отдельно. Целью, в данном случае, является обнаружение закономерностей в последовательностях событий. Подобная информация позволяет, например, предупредить сбой в работе информационной системы, получив сигнал о наступлении события, часто предшествующего сбою подобного типа. Другой пример применения - анализ последовательности переходов по страницам пользователей web-сайтов.
Анализ отклонений позволяет отыскать среди множества событий те, которые существенно отличаются от нормы. Отклонение может сигнализировать о каком-то необычном событии (неожиданный результат эксперимента, мошенническая операция по банковской карте …) или, например, об ошибке ввода данных оператором.
В таблице приведены примеры задач интеллектуального анализа данных из различных областей. Более подробно некоторые из них будут рассмотрены в последующих разделах курса. Кроме того, можно рекомендовать обратиться к дополнительным источникам.
Таблица 1.1. Примеры применения интеллектуального анализа данных
Информационные технологии
Торговля
Финансовая сфера
Классификация
Оценка кредитоспособности
Регрессия
Оценка допустимого кредитного лимита
Прогнозирование
Прогнозирование продаж
Прогнозирование цен акции
Кластеризации
Сегментация клиентов
Сегментация клиентов
Определения взаимосвязей
Анализ потребительской корзины
Анализ последовательностей
Анализ переходов по страницам web-сайта
Анализ отклонений
Обнаружение вторжений в информационные системы
Выявление мошенничества с банковскими картами
Рассмотрим реализацию средств интеллектуального анализа данных в СУБД MicrosoftSQL Server. Как было отмечено в предыдущей лекции, решаются эти задачи службами AnalysisServices. На рисунке 2.1схематично представлены компоненты СУБД MSSQLServer 2008 и выделена подсистема интеллектуального анализа данных [5].
Рис. 2.1. Службы и компоненты СУБД Microsoft SQLServer 2008
Службы AnalysisServices предоставляют следующие функции и средства для создания решений по интеллектуальному анализу данных:
1. набор стандартных алгоритмов интеллектуального анализа данных;
2. конструктор интеллектуального анализа данных, предназначенный для создания и просмотра моделей интеллектуального анализа данных, управления ими и построения прогнозов;
3. язык расширений интеллектуального анализа данных(DataMiningeXtensionstoSQL,DMX).
Для работы с предоставляемыми средствами интеллектуального анализа используется среда BusinessIntelligenceDevelopmentStudio, сокращенно BIDevStudio (рис. 2.2, 2.3).
Рис. 2.2. Запуск SQL Server Business Intelligence Development Studio
Рис. 2.3. Создание нового проекта в Business Intelligence Development Studio
Также SQLServer 2008 и 2008 R2 поддерживают создание, управление и использование моделей интеллектуального анализа данных из MicrosoftExcel с помощью Надстроек интеллектуального анализа данных SQLServer 2008 для Office 2007. Надстройки свободно доступны для скачивания на сайте Microsoft по адресу (ссылка приводится для локализованной версии, возможно, выпущены более свежие версии): http://www.microsoft.com/downloads/ru-ru/details.aspx?FamilyID=a42c6fa1-2ee8-43b5-a0e2-cd30d0323ca3&displayLang=ru
Выполнению интеллектуального анализа данных с помощью надстроек посвящена первая часть лабораторных работ данного курса.
Введем ряд понятий Структура интеллектуального анализа данных может быть представлена как совокупность исходных данных и описания способов их обработки. Структура содержит модели, которые используются для анализа ее данных. В частности, одна структура может поддерживать несколько моделей. В структуре интеллектуального анализа данных можно выделить обучающий и проверочный набор данных, задав процентное отношение или объем данных.
Модель интеллектуального анализа данных представляет собой сочетание самих данных, алгоритма интеллектуального анализа данных и коллекции значений параметров и фильтров, управляющих использованием и обработкой данных. Модель интеллектуального анализа данных определяется на языке расширений интеллектуального анализа данных или с помощью мастера интеллектуального анализа данных в среде BI DevStudio.
Алгоритм интеллектуального анализа данных представляет собой механизм, создающий модель интеллектуального анализа данных. Чтобы создать модель, алгоритм сначала анализирует набор данных, осуществляя поиск определенных закономерностей и трендов. Алгоритм использует результаты этого анализа для определения параметров модели интеллектуального анализа данных. Затем эти параметры применяются ко всему набору данных, чтобы выявить пригодные к использованию закономерности и получить подробную статистику.
Ниже перечислены алгоритмы интеллектуального анализа данных, реализованные в Microsoft SQL Server 2008 R2 (указание на Майкрософт говорит о том, что это ее реализации алгоритмов, а приводимые английские названия понадобятся нам в дальнейшем):
1. упрощенный алгоритм Байеса (Майкрософт) - MicrosoftNaiveBayes;
2. алгоритм дерева принятия решений (Майкрософт) - MicrosoftDecisionTrees;
3. алгоритм временных рядов (Майкрософт) - MicrosoftTimeSeries;
4. алгоритм кластеризации (Майкрософт) - MicrosoftClustering;
5. алгоритм кластеризации последовательностей (Майкрософт) - MicrosoftSequenceClustering;
6. алгоритм взаимосвязей Майкрософт - MicrosoftAssociationRules;
7. алгоритм нейронной сети (Майкрософт) - MicrosoftNeuralNetwork;
8. алгоритм линейной регрессии (Майкрософт) - MicrosoftLinearRegression;
9. алгоритм логистической регрессии (Майкрософт) - MicrosoftLogisticRegression.
Подробно с перечисленными алгоритмами мы познакомимся в следующих разделах, сейчас же приведем некоторые примеры использования интеллектуального анализа данных и соответствующие им алгоритмы.
Таблица 2.1. Примеры использования алгоритмов интеллектуального анализа
Задача и пример
Подходящие алгоритмы
Прогнозирование дискретного атрибута.
Например, купит ли получатель целевой рассылки определенный продукт.
Алгоритм дерева принятия решений.
Упрощенный алгоритм Байеса.
Алгоритм кластеризации.
Алгоритм нейронной сети.
Прогнозирование непрерывного атрибута.
Например, прогноз продаж на следующий год.
Алгоритм дерева принятия решений.
Алгоритм временных рядов.
Прогнозирование последовательности.
Например, анализ маршрута перемещения по веб-узлу компании.
Алгоритм кластеризации последовательностей
Нахождение групп общих элементов в транзакциях.
Например, использование анализа покупательского поведения для предложения дополнительных продуктов заказчику.
Алгоритм взаимосвязей
Алгоритм дерева принятия решений
Нахождение групп схожих элементов.
Например, разбиение демографических данных на группы для лучшего понимания связей между атрибутами.
Алгоритм кластеризации.
Алгоритм кластеризации последовательностей.
Два слова надо сказать и о различиях в версиях СУБД Microsoft SQLServer 2008 и 2008 R2,в которых доступны средства интеллектуального анализа данных. Это версии Standard, Enterprise, а также версия для разработчиков Developer, функционально аналогичная Enterprise, но отличающаяся от нее лицензионными условиями использования. В таблице 2.2 приведены результаты сравнения возможностей (в соответствии со статьей MSDN "Возможности, поддерживаемые различными выпусками SQL Server 2008", http://msdn.microsoft.com/ru-ru/library/cc645993(v=SQL.100).aspx). По ходу изложения материала, тема различия версий СУБД еще будет неоднократно затрагиватьсяи некоторые непонятные пока возможности будут подробно рассмотрены.
Таблица 2.2. Различия версий СУБД Microsoft SQLServer 2008 в области интеллектуального анализа данных
Возможность
Enterprise/ Developer
Standard
Стандартные алгоритмы
Да
Да
Средства интеллектуального анализа данных: мастера, редакторы, построители запросов
Да
Да
Перекрестная проверка
Да
Модели на фильтрованных подмножествах структур интеллектуального анализа данных
Да
Временные ряды: пользовательское объединение моделей ARTXP и ARIMA
Да
Временные ряды: прогноз новых данных
Да
Неограниченные параллельные запросы интеллектуального анализа данных
Да
Дополнительная настройка алгоритмов
Да
API-интерфейс для подключаемых модулей алгоритмов
Да
Параллельная обработка модели
Да
Временные ряды: прогноз перекрестных рядов
Да
Неограниченные атрибуты для правил взаимосвязи
Да
Прогнозирование последовательности
Да
Множественные цели прогнозирования для упрощенного алгоритма Байеса, нейронной сети и логистической регрессии
Да
В заключение рассмотрим схему взаимодействия аналитических служб SQLServer с внешними приложениями.
Рис. 2.4. Схема взаимодействия аналитических служб SQLServer с внешними приложениями
На рисунке 2.4 видно, что внешние приложения, используя разнообразные средства (ADO.Net и др.) и протокол XMLA(XMLforAnalysis) "поверх" протоколаTCP или HTTP(характерно для web-решений) могут взаимодействовать с аналитическими службами. При этом, в зависимости от типа запроса, задействуется или подсистема OLAP,или подсистема интеллектуального анализа данных. Обрабатываться запросы интеллектуального анализа могут с помощью как стандартных алгоритмов Майкрософт, так и алгоритмов разработки третьих фирм. Результат посредством XMLA передается обратно приложению.
Рассмотрим теперь этапы проведения интеллектуального анализа данных. Специалисты Майкрософт предлагают следующий вариант декомпозиции данной задачи [7]:
1. постановка задачи;
2. подготовка данных;
3. изучение данных;
4. построение моделей;
5. исследование и проверка моделей;
6. развертывание и обновление моделей.
На рисунке 3.1 схематично представлены перечисленные этапы и указаны средства MS SQLServer,с помощью которых они выполняются.Указанные этапы не обязательно будут пройдены один за другим. Например, на одном из промежуточных этапов может выясниться, что в текущей постановке для решения задачи не хватает данных и понадобится снова вернуться к первому этапу.
Рис. 3.1. Этапы интеллектуального анализа данных
На этапе постановки задачи нужно определить, что является целью анализа. В частности, требуется ответить на ряд вопросов, главный из которых - что именно необходимо определить в результате анализа. Также в этом списке:
• Нужно ли будет делать прогнозы на основании модели интеллектуального анализа данных или просто найти содержательные закономерности и взаимосвязи?
• Если требуется прогноз, какой атрибут набора данных необходимо спрогнозировать?
• Как связаны столбцы? Если существует несколько таблиц, как они связаны?
• Каким образом распределяются данные? Являются ли данные сезонными? Дают ли данные точное представление о предметной области?
Как правило, в процессе постановки задачи аналитик работает совместно со специалистами в предметной области.
Этап подготовки данных включает определение источников данных для анализа, объединение данных и их очистку. Используемые данные могут находиться в различных базах и на разных серверах. Более того, какие-то данные могут быть представлены в виде текстовых файлов, электронных таблиц, находиться в других форматах. В процессе объединения и преобразования данных часто используются возможности служб SQLServerIntegrationServices (рис.1). Это позволяет существенно автоматизировать процесс подготовки.
Собранные таким образом данные, как правило, нуждаются в дополнительной обработке, называемой очисткой. В процессе очистки при необходимости может производиться удаление "выбросов" (нехарактерных и ошибочных значений), обработка отсутствующих значений параметров, численное преобразование (например, нормализация) и т.д.
Следующим этапом является изучение данных, которое позволит понять, насколько адекватно подготовленный набор представляет исследуемую предметную область. Здесь может проводиться поиск минимальных и максимальных значений параметров, анализ распределений значений и других статистических характеристик, сравнение полученных результатов с представлениями о предметной области.
Четвертый этап - построение моделей. Как уже разбиралось в предыдущей лекции, сначала создается структура данных, а потом для структуры создается одна или несколько моделей. Модель включает указание на алгоритм интеллектуального анализа данных и его параметры, а также анализируемые данные. При определении модели могут использоваться различные фильтры.Таким образом, не все имеющиеся в описании структуры данные будут использоваться каждой созданной для нее моделью. На рисунке 3.2 показан пример, в котором для одной структуры создается несколько моделей, использующие различные наборы столбцов и фильтров.
Рис. 3.2. Несколько моделей, созданных в рамках одной структуры
Модель может проходить обучение, заключающееся в применении выбранного алгоритма к обучающему набору данных. После этого в ней сохраняются выявленные закономерности.
Новую модель можно определить с помощью мастера интеллектуального анализа данных в среде BI DevStudio или с помощью языка DMX. Нередко для решения задачи создается несколько моделей, основанных на разных алгоритмах, чтобы была возможность сравнить результаты и выбрать наилучшую.
Пятый этап - проверка модели. Здесь целью является оценка качества работы созданной модели перед началом ее использования в "производственной среде". Если создавалось несколько моделей, то на этом этапе делается выбор в пользу той, что даст наилучший результат.
При решении предсказательных задач интеллектуального анализа качество выдаваемого моделью прогноза можно оценить на проверочном наборе данных, для которого известно значение прогнозируемого параметра. В MSSQLServer 2008 службы AnalysisServices предоставляют средства, упрощающие разделение данных на обучающий и проверочный наборы. Такое секционирование можно выполнить автоматически во время построения модели интеллектуального анализа данных. Точность прогнозов, создаваемых моделями, можно проверить при помощи таких средств, как диаграмма точности прогнозов и матрица классификации.
Другой подход, называемый перекрестной проверкой, заключается в том, что создаются подмножества данных и сравниваются результаты работы модели на каждом подмножестве. Такой подход может использоваться как при решении предсказательных, так и описательных задач. Средства автоматизации перекрестной проверки доступны при использовании MSSQLServer 2008 версии Enterprise или Developer.
Наиболее эффективные модели развертываются в производственной среде. При этом, возможны сценарии интеграции средств интеллектуального анализа данных и пользовательских приложений. И конечный пользователь, в ответ на сформированный запрос, будет получать результаты анализа в виде отчета. При формировании отчетов о результатах проведенного анализа могут использоваться возможности службы SQLServer ReportingServices.
Со временем характеристики предметной области могут меняться, что потребует и изменения шаблонов интеллектуального анализа данных. Может потребоваться переобучение существующих моделей или создание новых. В ряде случаев SQLServer позволяет автоматизировать процесс обновления моделей за счет использования служб IntegrationServices.
В предыдущих разделах курса мы познакомились с некоторыми важными понятиями интеллектуального анализа данных. Теперь
пришло время собрать их воедино и рассмотреть, каких описание может быть произведено на используемом для запросов к службе AnalysisServices языке интеллектуального анализа данных - DMX.
Наименьшей логической единицей работы с данными при интеллектуальном анализе является атрибут, который содержит некоторую "элементарную" информацию об анализируемом примере. Например, возраст клиента. Для алгоритмов DM существует два основных типа атрибутов:
• категориальные (дискретные), принимающие значения из некоторого фиксированного конечного набора значений;
• непрерывные числовые атрибуты.
Дополнительные типы атрибутов основаны на базовых. К ним, в частности, относятся упорядоченный (или циклический) тип. Такой атрибут является категориальным, но для него задан определенный порядок значений (например, размеры одежды). Дискретизированные атрибуты это специальный вариант категориального типа, полученный из непрерывного путем разбиения на диапазоны.Например, упрощенный алгоритм Байеса не может обрабатывать непрерывные атрибуты, поэтому потребуется дискретизация. В ряде случаев говорят о типе содержимого, что можно рассматривать как синоним термина "тип атрибута".
С каждым категориальным атрибутом связан набор его значений (или состояний). Например, атрибут "Город проживания" может принимать значения: "Санкт-Петербург", "Москва" и т.д. На этапах подготовки и изучения данных важно провести анализ множества состояний атрибутов и, при необходимости, внести коррективы. Например, если в одних случаях город записан как "Санкт-Петербург", а в других "С-Петербург", нужно привести все к единому формату(иначе алгоритм интеллектуального анализа будет рассматривать это как разные состояния). Кроме того, возможно для анализа не нужна столь подобная детализация по городам, а интерес представляет, является ли человек жителем крупного города или нет.
В случае аналитических служб Microsoft SQLServer, атрибуты также могут иметь состояния "Missing" и "Existing". Первый указывает на то, что в строке данных атрибут отсутствует (или состояние не определено), второй - что атрибут присутствует.
Вариант определяется как отдельный пример, предоставляемый алгоритму интеллектуального анализа данных [1]. Он состоит из набора атрибутов с соответствующими значениями и во многих случаях описывает объект или событие. Нередко вариант можно представить строкой в таблице, столбцы которой - атрибуты. Пусть, например, решается задача классификации потенциального банковского заемщика при принятии решения о выдаче кредита. В этот случае вариант содержит известные данные об этом клиенте (размер заработка, профессия, место работы …) и вполне представим в виде строки таблицы.
В то же время, MS SQLServer и DMX позволяют использовать вложенные таблицы, что позволяет описывать более сложные по структуре варианты. Это можно проиллюстрировать на следующем примере [8]. Пусть требуется провести анализ товаров, купленных каждым из клиентов. При этом имеется возможность связать данные о покупках с информацией о покупателе. Исходные данные берутся из двух реляционных таблиц, связанных внешним ключом (рис. 17.1): таблицаCustomers(Заказчики) с полями CustomerKey(КлючЗаказчика), FistName(Имя), LastName(Фамилия), CommuteDistance(Расстояние до работы) и таблица Products (Товары) с полями CustomerKey(внешний ключ, ссылающийся наCustomers) и ModelName (Название Модели). Как видно на рисунке, сформированный вариант может содержать много товаров купленных одним клиентом и отличается по виду строки реляционной таблицы.
Рис. 17.1. Формирование варианта при использовании вложенных таблиц
Ключ варианта используется для идентификации варианта. Зачастую в этом качестве может использоваться исходный ключ таблицы, из которой берутся данные для анализа. На рис. 17.1 ключом может выступать столбец CustomerKey.
Вложенный ключ позволяет идентифицировать объект, описываемый во вложенной таблице. В нашем примере это будет название товара (если бы там были еще какие-то атрибуты - цена, цвет и т.д. - они относились бы именно к этому товару).
Атрибут может рассматриваться алгоритмом интеллектуального анализа в качестве входа, выхода или входа и выхода одновременно. Язык DMX позволяет это указать в процессе описания модели. На стадии обучения алгоритму предоставляются как входные, так и выходные данные. На стадии прогнозирования - алгоритм получает входные данные и возвращает выходные.
Теперь рассмотрим вопрос получения исходных данных для интеллектуального анализа. Анализировать можно данные из реляционных таблиц и других источников, если они специальным образом описаны в качестве представления источника данных в службах AnalysisServices. Сначала определяется источник данных (DataSource), а потом его представление (DataSourceView). Представление источника данных позволяет сочетать различные источники данных и работать с вложенными таблицами.Один из способов определить источник данных - использование соответствующего мастера в среде BI DevStudio.
Службы AnalysisServices считывают данные из источника в специальный кэш. Помещенные в кэш данные можно сохранить и использовать при создании других моделей интеллектуального анализа или удалить, чтобы освободить место в хранилище.
Данные могут браться не только из реляционных баз данных, но и из аналитических кубов (cube).
Следующий шаг - создание структуры. Это понятие уже встречалось ранее, но рассмотрим его еще раз более подробно с примерами описания на языке DMX.
Структура интеллектуального анализа данных может быть представлена как совокупность исходных данных и описания способов их обработки. Структура содержит модели, которые используются для анализа ее данных.
При создании модели или структуры интеллектуального анализа данных в Microsoft SQL Server AnalysisServices, необходимо определить типы данных для каждого столбца в структуре. Тип данных сообщает модулю интеллектуального анализа, являются ли данные в источнике числовыми или текстовыми, и как их обрабатывать. Например, если в столбце содержатся числовые данные, то можно указать, что числа следует считать целыми, либо использовать десятичные разряды. Типы данных перечислены в таблице 17.1: текстовый (Text), вещественный числовой (Long), "длинный" вещественный числовой (Double), логический (Boolean) и дата (Date). Они стандартны ив особых комментариях не нуждаются. Единственное, хотелось бы обратить внимание на то, что типов данных здесь меньше, чем в SQL, и в процессе подготовки данных из реляционных таблиц к анализу, часто производится преобразование к наиболее подходящему типу.
Каждый тип данных поддерживает один или несколько типов содержимого. Задавая тип содержимого, можно настраивать метод, которым данные в столбце обрабатываются или вычисляются в модели интеллектуального анализа данных. Втаблице 17.1 указано, какие типы содержимого могут соответствовать различным типам данных.
Таблица 17.1. Типы данных и поддерживаемые типы содержимого
Тип данных
Поддерживаемые типы содержимого
Text
Cyclical, Discrete, Discretized, Key Sequence, Ordered, Sequence
Long
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered, Sequence, Time
Classified
Boolean
Cyclical, Discrete, Ordered
Double
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered, Sequence, Time
Classified
Date
Continuous, Cyclical, Discrete, Discretized, Key, Key Sequence, Key Time, Ordered
Ниже приведены характеристики типов содержимого и указаны основные особенности их использования.
Тип содержимого Discrete указывает на то, что атрибут категориальный (дискретный). Одна из особенностей данного типа - принимается, что к этим значениям не применимо упорядочение. Кроме того, даже если значения, используемые для заполнения дискретного столбца, являются числовыми, не предусмотрена возможность вычисления дробных значений.
Тип Continuous - непрерывные числовые значения. Иначе говоря, в столбце содержатся значения, которые представляют числовые данные в масштабе, допускающем применение промежуточных значений. В качестве непрерывного значения может рассматриваться, например, объем продаж за указанный период или значение среднесуточной температуры воздуха. Если известно распределение значений непрерывного показателя, то потенциально можно увеличить точность анализа, указав его при определении структуры интеллектуального анализа данных. Данный параметр будет применим ко всем моделям, основанным на структуре.
Алгоритмы интеллектуального анализа данных Microsoft могут работать со следующими типами распределений:
• normal - нормальное на основе значений столбца, содержащего непрерывные данные, может быть построена гистограмма с нормальным Гауссовским распределением;
• lognormal - логнормальное - на основе значений столбца, содержащего непрерывные данные, может быть построена гистограмма с нормально распределенной функцией логарифма значений;
• uniform - равномерное распределение значений столбца (все значения являются равновероятными).
Тип Discretized - указывает на то, что это дискретизированное значение. Дискретизация - это процесс распределения значений непрерывного набора данных по сегментам так, чтобы получилось ограниченное число допустимых значений. Дискретизировать можно только числовые данные.Следовательно, дискретизированный тип содержимого показывает, что столбец содержит значения, представляющие группы или сегменты значений, полученных из непрерывного столбца. Сегменты воспринимаются как упорядоченные дискретные значения.
Дискретизацию данных можно провести вручную, чтобы получить необходимые сегменты, либо можно использовать методы дискретизации, предоставляемые службами SQL Server AnalysisServices. В некоторых алгоритмах дискретизация выполняется автоматически.
Для типа содержимого Discretized можно явно указать параметры дискретизации - способ разбиения на сегменты и их число. Способы разбиения могутбыть следующими:
• AUTOMATIC (по умолчанию) - службы AnalysisServices определяют, какой метод дискретизации использовать;
• EQUAL_AREAS - алгоритм делит данные на группы, содержащие равное число значений;
• CLUSTERS - алгоритм разделяет данные на группы путем создания выборки обучающих данных, инициализации по ряду случайных точек и дальнейшего запуска несколько итераций алгоритма кластеризации (Microsoft).
Что касается числа сегментов, то по умолчанию система пытается создать 5 сегментов, а если данных на 5 сегментов не хватает, делается попытка создать меньшее число. При явном задании параметров описание дискретизированного столбца при создании структуры может быть примерно следующим:
[SalaryDisc] LONGDISCRETIZED (EQUAL_AREAS,4)
Тип содержимого Key (ключ) означает, что столбец уникально определяет строку (вариант). Ключ варианта неиспользуется для анализа, а нужен для отслеживания записей.
Вложенные таблицы также имеют ключи, но ключ вложенной таблицы предназначен для других целей. Если столбец вложенной таблицы представляет собой атрибут, который должен быть проанализирован, то для него следует определить тип содержимого Key. Значения в ключе вложенной таблицы должны быть уникальными для каждого варианта, но во всем множестве вариантов могут быть повторяющиеся значения. Например, если анализируются продукты, приобретенные клиентами, то для столбца CustomerID в таблице вариантов нужно задать тип содержимого key и задать тип содержимого key для столбца PurchasedProducts во вложенной таблице.
Тип содержимого keysequence может применяться только в моделях кластеризации последовательностей. Если задан тип содержимого keysequence, значит, столбец содержит значения, представляющие последовательность событий. Значения упорядочены, но не должны обязательно находиться на одинаковом расстоянии друг от друга.
Тип содержимого keytime может применяться только в моделях временных рядов. Если он задан, то это означает, что значения упорядочены и представляют временную шкалу.
Тип содержимого Table указывает, что столбец содержит другую таблицу данных (вложенную таблицу). Применительно к любой конкретной строке в таблице вариантов этот столбец может содержать несколько значений (т.е. несколько строк вложенной таблицы), причем все они связаны с записью родительского варианта.
Вариант может включать несколько вложенных таблиц. Например, основная таблица вариантов содержит список клиентов.Одинее столбец содержит вложенную таблицус перечислением сделанных клиентом покупок, а другой - перечень увлечений клиента.Примеры определения подобных структур будут приведены в следующей лекции.
Тип содержимого Cyclical означает, что в столбце содержатся значения, представляющие циклический упорядоченный набор. Например, циклическим упорядоченным набором являются пронумерованные дни недели, поскольку день с номером 1 следует за днем с номером 7.Циклические столбцы атрибутов считаются упорядоченными и дискретными в терминах типов содержимого. Однако большинство алгоритмов обрабатывает циклические значения как дискретные и не выполняет особой обработки.
Тип содержимого Ordered также означает, что столбец содержит значения, определяющие последовательность или порядок. Однако в данном типе содержимого значения, используемые для упорядочивания, не подразумевают наличия никаких связей (по дистанции или по силе) между значениями в наборе. Например, если упорядоченный столбец атрибутов содержит сведения об уровне квалификации по шкале от 1 до 5, он не несет сведений о разнице между уровнями квалификации; уровень 5 не обязательно в пять раз лучше уровня 1. Упорядоченные столбцы атрибутов считаются дискретными и большинство алгоритмов так их и обрабатывает.
Классифицированные столбцы (тип Classified) позволяют работать с данными, описывающими другой столбец в модели. Например, можно задать классифицированный столбец, в котором будут содержаться среднеквадратичные отклонения другого столбца модели, например столбца с данными обо всех покупках, совершенных клиентом за календарный год.Тип данных, используемый в классифицированном столбце, должен быть либо Long, либо Double. Ниже описаны допустимые типы содержимого:
• PROBABILITY - значение в столбце является вероятностью связанного значения и представлено числом от 0 до 1;
• VARIANCE - значение в столбце является отклонением связанного значения;
• STDEV - значение в столбце является среднеквадратичным отклонением связанного значения;
• PROBABILITY_VARIANCE - значение в столбце является отклонением вероятности для связанного значения;
• PROBABILITY_STDEV - значение в столбце является среднеквадратичным отклонением вероятности для связанного значения;
• SUPPORT - значение в столбце является весом, коэффициентом репликации объекта, связанного значения.
ВMS SQLServer 2008 R2 алгоритмы, предоставленные службами Службы AnalysisServices, не поддерживают использование классифицированных столбцов.
Типы содержимого Time и Sequence поддерживаются только алгоритмами сторонних производителей (не Microsoft).
После определения структур и моделей, следующим шагом является обработка, включающая заполнение структуры интеллектуального анализа данными, секционирование данных (если это было определено при создании структуры), применение в отношении полученных данных алгоритмов интеллектуального анализа (при обработке модели). Это делается с помощью инструкции INSERT INTO, формат которой приведен ниже:
INSERT INTO [MINING MODEL]|[MINING STRUCTURE] | ()