Справочник от Автор24
Поделись лекцией за скидку на Автор24

Интеллектуальный анализ данных

  • 👀 935 просмотров
  • 📌 882 загрузки
Выбери формат для чтения
Загружаем конспект в формате docx
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
Конспект лекции по дисциплине «Интеллектуальный анализ данных» docx
Целью интеллектуального анализа данных (англ. 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] | () или INSERT INTO [MINING MODEL]|[MINING STRUCTURE] |.COLUMN_VALUES () где model название модели; structure название структуры; mapped model columns список через запятую с названиями столбцов, в т.ч. вложенных таблиц с их столбцами; source data query запрос, описывающий загружаемый набор исходных данных. Если в операторе указана структура интеллектуального анализа данных, обрабатывается эта структура и все связанные с ней модели. Если задана модель, инструкция обрабатывает только эту модель. В случае, когда не указан аргумент MININGMODEL или MININGSTRUCTURE, службы AnalysisServices производят поиск типа объекта на основе имени, и затем обрабатывается корректный объект. Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка. Форма INSERT INTO<объект>.COLUMN_VALUES, позволяет производить вставку данных непосредственно в столбцы модели без ее обучения. При использовании этого метода, данные столбцов поставляются модели в сжатом и упорядоченном виде, что полезно при работе с наборами данных, содержащими иерархии или упорядоченные столбцы. Элементы списка  представимы в виде: | SKIP | ( | SKIP) где название столбца; название вложенной таблицы; ключевое слово SKIP указывает на то, что соответствующий столбец исходного запроса (исходных данных) не будет использоваться для заполнения структуры или модели (т.е. пропускается). Элемент  может включать следующие типы источников данных: 1. OPENQUERY - инструкция запрашивает данные, являющиеся внешними для экземпляра служб AnalysisServices, при помощи существующего источника данных. Эта инструкция работает аналогично инструкции OPENROWSET, но имеет ряд преимуществ. В частности, DMX-запрос легче записать с помощью OPENQUERY. Кроме того администратор имеет больший контроль над доступом к данным на сервере; 2. OPENROWSET - инструкция запрашивает данные, являющиеся внешними для экземпляра служб AnalysisServices, при помощи существующего источника данных; 3. SHAPE - инструкция, позволяющая совместить данные из нескольких источников в одну иерархическую таблицу, т.е. появляется возможность заполнить структуру с вложенными таблицами. 4. любой запрос к службам AnalysisServices, возвращающий набор строк В нашем курсе мы чаще всего будем использовать первый вариант при отсутствии в структуре вложенных таблиц и третий - при их наличии. Рассмотрим эти форматы более подробно, начав с первого. OPENQUERY(, ) где named datasource источник данных, существующий в базе служб AnalysisServices (например, определенный с помощью конструктора в BIDevStudio); query syntax текст запроса, возвращающего набор строк (например, запроса на SQL). В следующем примере инструкция OPENQUERY применяется для обучения модели упрощенного алгоритма Байеса на основе данных о целевой рассылке из базы данных AdventureWorksDW (то, что это модель, а не структура SQLServer определит в результате анализа доступных моделей и структур). INSERT INTO NBSample (CustomerKey, Gender, [Number Cars Owned], [Bike Buyer]) OPENQUERY([Adventure Works DW],'Select CustomerKey, Gender, [NumberCarsOwned], [BikeBuyer] FROM [vTargetMail]') Другой пример показывает вариант записи с явным указанием, что обрабатывается структура [People1] со столбцами [CustID], [Name] и т.д., для ее заполнения используется источник данных Chapter3Data, в апострофы заключен текст SQL-запроса, выполнение которого приведет к получению требуемого набора строк. INSERT INTO MINING STRUCTURE [People1] ([CustID], [Name], [Gender], [Age], [CarMake],[CarModel]) OPENQUERY(Chapter3Data, 'SELECT [Key], Name, Gender, Age, CarMake, CarModel FROM People') Инструкция SHAPE имеет более сложный по сравнению с OPENQUERY формат: SHAPE {} APPEND ({ } RELATE TO ) AS [ ({ } RELATE TO ) AS ... ] где master query запрос, возвращающий родительскую таблицу (таблицу вариантов); child table query запрос, возвращающий вложенную таблицу; master column столбец в родительской таблице с которым связаны строки из результата запроса дочерней таблицы(часто это потенциальный ключ, на который ссылается внешний ключ из вложенной таблицы); child column столбец в дочерней таблице для определения родительской строки из результата главного запроса (как правило - внешний ключ в таблице, используемой в качестве вложенной). columntablename имя столбца вложенной таблицы в родительской таблице. Инструкция SHAPE требует, чтобы результаты запросов были упорядочены по столбцам, используемым для связи между родительской и вложенной таблицами. Для этого в SQL используется инструкция ORDERBY. Рассмотрим еще один пример. В нем сначала создается структура [People3] cдвумя вложенными таблицами [Purchases] и [MovieRatings]. После чего с помощью оператора INSERT INTO MINING STRUCTURE производится заполнение и обработка структуры и ее моделей. Обратите внимание, что внешние ключи, используемые для связи таблиц (это столбец CustID в таблицах Purchases и MovieRatings), в структуру не попадают. Для этого используется ключевое словоSKIP, подставлемое вместо названия столбца (…[Purchases](SKIP, [Product], …),[MovieRatings](SKIP, [Movie], [Rating])…). Также хочется обратить внимание на наличие в запросах SELECT инструкции ORDERBY, упорядочивающей результат запроса, о чем говорилось выше. // Создание структуры с двумя вложенными таблицами CREATE MINING STRUCTURE [People3] ( [CustID] LONG KEY, [Name] TEXT DISCRETE, [Gender] TEXT DISCRETE, [Age] LONG CONTINUOUS, [AgeDisc] LONG DISCRETIZED(EQUAL_AREAS,3), [CarMake] TEXT DISCRETE, [CarModel] TEXT DISCRETE, [Purchases] TABLE ( [Product] TEXT KEY, [Quantity] LONG CONTINUOUS, [OnSale] BOOLEAN DISCRETE ), [Movie Ratings] TABLE ( [Movie] TEXT KEY, [Rating] LONG CONTINUOUS ) ) //обработка структуры INSERT INTO MINING STRUCTURE [People3] ([CustID], [Name], [Gender], [Age], [AgeDisc], [CarMake], [CarModel] ,[Purchases](SKIP, [Product], [Quantity], [OnSale]) ,[Movie Ratings](SKIP, [Movie], [Rating]) ) SHAPE { OPENQUERY( Chapter3Data, 'SELECT [Key], Name, Gender, Age, Age, CarMake, CarModel FROM People ORDER BY [Key]') } APPEND ({ OPENQUERY( Chapter3Data, 'SELECT CustID, Product, Quantity, [On Sale] FROM Purchases ORDER BY CustID') } RELATE [Key] TO [CustID] ) AS Purchases , ({ OPENQUERY( Chapter3Data, 'SELECT CustID, Movie, Rating FROM MovieRatings ORDER BY CustID') } RELATE [Key] TO [CustID] ) AS MovieRatings Удалить данные, модель или структуру можно с помощью оператора DELETE. Его синтаксис приведен ниже: DELETE FROM [MINING MODEL] [.CONTENT] DELETE FROM [MINING STRUCTURE] [.CONTENT]|[.CASES] где model имя модели; structure имя структуры. Если не указан аргумент MININGMODEL или MININGSTRUCTURE, AnalysisServices производит поиск типа объекта на основе имени и затем обрабатывает корректный объект. Если сервер содержит структуру и модель интеллектуального анализа данных с одинаковыми именами, возвращается ошибка. В таблице 19.1 описываются различные варианты использования данного оператора [12]. Таблица 19.1. Инструкция DELETE Инструкция Результат выполнения DELETE FROM MINING STRUCTURE или DELETE FROM MINING STRUCTURE .CONTENT Выполняет функцию ProcessClear по отношению к структуре интеллектуального анализа данных. Все содержимое структуры интеллектуального анализа данных и связанных с ней моделей интеллектуального анализа данных удаляется. DELETE FROM MINING STRUCTURE.CASES Выполняет функцию ProcessClearStructureOnly по отношению к структуре интеллектуального анализа данных. Все содержимое структуры удаляется (т.е. кэш вариантов очищается), а связанные с ней модели остаются без изменений. После выполнения команды детализация моделей, связанных со структурой, становится невозможной. DELETE FROM MINING MODEL или DELETE FROM MINING MODEL.CONTENT Выполняет функцию ProcessClear по отношению к модели интеллектуального анализа данных, но значения состояний оставляются без изменений. Значения состояний представляют собой возможные состояния столбца. Например, значениями состояний для столбца "Пол" являются "Мужской" и "Женский". Следующий пример удаляет все содержимое структуры People1. DELETE FROM MINING STRUCTURE [People1] Инструкция DROP позволяет удалить модель или структуру интеллектуального анализа данных из базы данных. Синтаксис для того и другого случая соответственно приведен ниже. DROP MINING MODEL или DROP MINING STRUCTURE где model имя модели; structure имя структуры. В следующем примере из базы данных удаляется структура NewMailing. DROP MINING STRUCTURE [New Mailing] Инструкции EXPORT и IMPORT позволяют соответственно сохранить модель или структуру интеллектуального анализа в файл резервной копии служб AnalysisServices (*.abf) и восстановить модель или структуру из файла. Синтаксис команд [12]: EXPORT [, ] [[, [WITH DEPENDENCIES] и IMPORT FROM где objecttype тип экспортируемого объекта (модель или структура интеллектуального анализа данных); objectname имя экспортируемого объекта; filename имя и расположение файла для экспорта (аргумент типа string, берется в одинарные кавычки). Если инструкция указывает модель интеллектуального анализа данных, итоговый файл также содержит связанную структуру интеллектуального анализа данных. Если инструкция указывает WITH DEPENDENCIES, все объекты, необходимые для обработки объекта (например, источник данных и представление источника данных), включаются в ABF-файл. Чтобы экспортировать или импортировать объекты базы данных служб Microsoft SQLServer Службы AnalysisServices, необходимо иметь права администратора базы данных или сервера. В следующем примере структуры интеллектуального анализа данных TargetedMailing и Forecasting, а также модель интеллектуального анализа данных Association экспортируются в определенный файл. Вследствие того, что модель Association является частью структуры интеллектуального анализа MarketBasket, в примере также экспортируется структура MarketBasket. Любые другие модели интеллектуального анализа данных, которые могут существовать как часть структуры MarketBasket, не будут экспортироваться, потому что модель Association была экспортирована при помощи инструкции MINING MODEL, а не MINING STRUCTURE. EXPORT MINING STRUCTURE [Targeted Mailing], [Forecasting] MINING MODEL Association TO 'C:\TM_NEW.abf' В следующем примере модель интеллектуального анализа данных Association экспортируется в определенный файл. Вследствие того, что в инструкции указывается WITH DEPENDENCIES, объекты источника данных и представления источника данных также включаются в ABF-файл. EXPORT MINING MODEL [Association] TO 'C:\Association_NEW.abf' WITH DEPENDENCIES В следующем примере выполняется импорт всего содержимого файла с моделью Association, структурой и дополнительными объектами на текущий сервер. IMPORT FROM 'C:\Association_NEW.abf ' Также можно защищать экспортируемую копию паролем [1]: EXPORT MINING STRUCTURE People2 TO 'C:\temp\People2.abf' WITH PASSWORD='People2' Тот же пароль понадобится при импорте: IMPORT FROM 'C:\temp\People2.abf' WITH PASSWORD='People2' В предыдущем разделе был рассмотрен порядок обработки структур и моделей интеллектуального анализа данных. Следующая задача - это работа с данными и построение прогнозов. Для этого используется оператор SELECT. SELECT в DMX очень напоминает аналогичный оператор в SQL, но надо понимать, что и перечень решаемых задач и особенности применения имеют существенные отличия. При интеллектуальном анализе данных с помощью оператора SELECT можно решить следующие задачи: • просмотр вариантов, загруженных в структуру интеллектуального анализа данных; • просмотр содержимого существующей модели; • создание прогнозов по существующей модели; • создание копии существующей модели. Для решения первых двух задач используется следующий формат записи оператора: SELECT [FLATTENED] [TOP] FROM [.aspect] [WHERE ] [ORDER BY [DESC|ASC]] Инструкция FLATTENED указывает на необходимость преобразования возвращаемых запросом SELECT результатов в "плоский" набор строк (т.е. преобразование к обычной таблице). Она используется, когда представление вариантов с вложенными таблицами в используемом по умолчанию иерархическом формате неприемлемо. Инструкции ORDER BY и TOP позволяют упорядочить возвращаемый набор по указанному параметру и вернуть только первые n значений. Это может быть полезно в сценариях вроде целевых рассылок, где результаты нужно отправлять только наиболее вероятным получателям. Для этого можно упорядочить результаты прогнозирующего запроса целевой рассылки по вероятности, а затем вернуть только верхние n результатов. В список выбора  могут входить ссылки на скалярные столбцы, прогнозирующие функции и выражения. Доступные параметры зависят от алгоритма и следующих условий: • выполняется запрос к структуре или модели интеллектуального анализа; • запрос выполняется к содержимому или к вариантам; • источник данных является реляционной таблицей или кубом; • делается ли прогнозирование. Если вместо списка выбора стоит символ "*", то будут выбраны все столбцы из модели или структуры. В списке выбора допустимо использовать псевдонимы и простые выражения. Например, ниже для всех присутствующих в модели MyModel вариантов (на это указывает ключевое слово CASES см.ниже) выводится идентификатор клиента и его имя и фамилия в виде одного столбца FullName: SELECT [CustomerID], [Last Name] + ', ' + [FirstName] AS FullName FROM MyModel.CASES Инструкция WHERE позволяет ограничить перечень возвращаемых результатов только теми, что соответствуют указанному логическому условию. Синтаксис будет следующий: WHERE Например: SELECT [CustomerID], [Last Name] + ', ' + [FirstName] AS FullName FROM MyModel.CASES WHERE [CustomerID]>100 Детализация структуры Рассмотрим теперь инструкцию FROM. Если в ней стоит .CASES, где  - имя структуры интеллектуального анализа, то будут возвращаться варианты, использованные для создания структуры.Если детализация для структуры не включена, выполнение данной инструкции завершится сбоем. Но по умолчанию детализация включена. Явно указать, что мы хотим работать со структурой можно с помощью ключевых слов MINING STRUCTURE. Например, выбрать все варианты из структуры MyStr1с преобразованием результата в плоский набор строк можно выполнив команду: SELECT FLATTENED * FROM MINING STRUCTURE MyStr1.CASES Теперь вспомним о том, что при определении структуры могло быть задано секционирование вариантов на обучающий и проверочный набор. Чтобы узнать, к какому набору относится вариант, используются функции IsTestCase() иIsTrainingCase(), возвращающие истину для "проверочного" и "обучающего" варианта соответственно. Ниже приведен пример получения списка столбцов [CustomerKey] ("ключ клиента"), Gender ("пол"), Age ("возраст") для вариантов, зарезервированных в проверочном наборе структуры [TargetedMailing] ("целевая рассылка"): SELECT [Customer Key], Gender, Age FROM [Targeted Mailing].Cases WHEREIsTestCase() Детализация модели Аналогичным образом могут быть получены варианты из модели (проведена детализация модели). Формат оператора выглядит следующим образом: SELECT [FLATTENED] [TOP ] FROM .CASES [WHERE ][ORDER BY [DESC|ASC]] Если детализация для модели интеллектуального анализа данных не включена, выполнение данной инструкции завершится ошибкой. Для расширений интеллектуального анализа данных активировать детализацию можно только при создании модели (с помощью инструкции WITHDRILLTHROUGH). В среде BIDevStudio можно добавить детализацию и в существующую модель, но прежде чем будет можно просматривать варианты, необходимо выполнить повторную обработку модели. Если детализация включена как для модели, так и для структуры интеллектуального анализа данных, пользователи, являющиеся членами роли с разрешением на детализацию модели и структуры, могут обращаться к столбцам в структуре интеллектуального анализа данных, которые не включены в модель. При использовании функции IsInNode в предложении WHERE выдаются только варианты, связанные с указанным узлом (номер узла задается в столбце NODE_UNIQUE_NAME, о нем см. ниже). Ниже приведен пример, возвращающийвсе столбцы для всех вариантов, зарезервированных в проверочном наборе модели "Целевая рассылка"( [TM Decision Tree]). SELECT * FROM [TM Decision Tree].Cases WHEREIsTestCase(); В следующем примере возвращаются только те варианты из обучающего набора, которые использовались в кластере 2 модели [TM_Clustering]. Узел кластера 2 имеет значение "002" в столбце NODE_UNIQUE_NAME, и оно указывается в качестве аргумента функции IsInNode. Кроме всех столбцов модели, возвращается и столбец структуры [CustomerKey], который не входил в модель интеллектуального анализа данных. Этому столбцу присваивается псевдоним CustomerID. Делается это с помощью функции StructureColumn. Имя столбца структуры передается как строковое значение, поэтому его следует заключать в кавычки. SELECT StructureColumn('Customer Key') AS CustomerID, * FROM [TM_Clustering].Cases WHERE IsTrainingCase() AND IsInNode('002') Запрос значений столбца Ниже приведен синтаксис оператора, позволяющего получить значения указанных столбцов модели. SELECT [FLATTENED] DISTINCT [TOP ] FROM [WHERE ][ORDER BY ] При этом для дискретного столбца будут введены все возможные значения, для непрерывного - среднее значение, для дискретизованного - среднее значение для каждого из определённых в процессе дискретизации интервалов. Рассмотрим два примера. В первом будут выведены все значения дискретного столбца Gender (Пол) модели [TMDecisionTree]. SELECT DISTINCT [Gender] FROM [TM Decision Tree] Возможный результат выполнения запроса: Gender Жен Муж Во втором примере для столбца Age (возраст), определенного как непрерывный, будет выведено среднее значение, а также с помощью функций RangeMin и RangeMax соответственно минимальный и максимальный возраст. SELECT DISTINCT [Age] AS [Midpoint Age], RangeMin([Age]) AS [Minimum Age], RangeMax([Age]) AS [Maximum Age] FROM [TMDecisionTree] Возможный результат выполнения запроса: Midpoint Age Minimum Age Maximum Age 62 26 97 Запрос содержимого модели Оператор SELECT может не только возвратить используемые моделью варианты, но и вывести ее содержимое. Для этого используется синтаксис SELECT [FLATTENED] [TOP ] FROM .CONTENT [WHERE ] [ORDER BY [DESC|ASC]] Аргументы команды были уже рассмотрены выше, сейчас важно понять, что же возвратит запрос. Столбцы, составляющие содержимое модели интеллектуального анализа перечислены в таблице 11.1. А интерпретация их значений может несколько меняться в зависимости от используемого моделью алгоритма. Таблица 11.1. Столбцы содержимого модели интеллектуального анализа Столбец набора строк CONTENT Описание MODEL_CATALOG Имя каталога. Имеет значение NULL, если поставщик не поддерживает каталоги. MODEL_SCHEMA Свободное имя схемы. Имеет значение NULL, если поставщик не поддерживает схемы. MODEL_NAME Имя модели. Этот столбец не может содержать значение NULL. ATTRIBUTE_NAME Имя атрибута, соответствующего этому узлу. NODE_NAME Имя узла. NODE_UNIQUE_NAME Уникальное имя узла внутри модели. NODE_TYPE Целое число, представляющее тип узла. NODE_GUID Идентификатор GUID узла. Имеет значение NULL, если идентификатор GUID отсутствует. NODE_CAPTION Метка или заголовок, связанный с узлом. В основном используется в целях отображения. Если заголовка не существует, возвращается значение NODE_NAME. CHILDREN_CARDINALITY Количество имеющихся у узла потомков. PARENT_UNIQUE_NAME Уникальное имя родителя узла. NODE_DESCRIPTION Описание узла. NODE_RULE XML-фрагмент, представляющий внедренное в узел правило. Формат XML-строки основывается на стандарте PMML. MARGINAL_RULE XML-фрагмент, описывающий маршрут от родителя к узлу. NODE_PROBABILITY Вероятность маршрута, который завершается в узле. MARGINAL_PROBABILITY Вероятность доступа к узлу от родительского узла. NODE_DISTRIBUTION Таблица, которая содержит статистические данные, описывающие распределение значений в узле. NODE_SUPPORT Количество вариантов, поддерживающих этот узел. Следующий пример позволяет просмотреть перечень узлов модели [TM DecisionTree], где число поддерживающих узел вариантов больше 2. Считаем, что модель основана на алгоритме дерева принятия решений. SELECT NODE_UNIQUE_NAMEFROM [TMDecisionTree].CONTENT WHERE NODE_SUPPORT >2 Сейчас мы подошли к одному из самых интересных этапов интеллектуального анализа - построению прогнозов. Как уже отмечалось в предыдущих разделах, задача прогнозирования в языке DMX также решается с помощью оператора SELECT. При этом чаще всего используется конструкция прогнозирующего соединения - PREDICTION JOIN. С ее помощью шаблонам модели сопоставляется набор данных из внешнего источника, что позволяет определить значение для прогнозируемого столбца. Упрощенно это можно представить следующим образом. Модель содержит некоторое множество шаблонов, описывающих зависимость выходных параметров от входных. Например: 1. Если Вход1=x, то Выход = "да" 2. Если Вход1=y и Вход2=z, то Выход="нет" 3. … Для обработки модель получает входные данные из внешнего источника, определяет наиболее соответствующий шаблон и выдает результат. Например, входной вариант имеет атрибут "Вход1=x", применяя первое правило получаем "Выход = "да"". Рассмотрим теперь синтаксис SELECT, использующийся для прогнозирующего соединения. SELECT [FLATTENED] [TOP ]
, [option1], [option2], [option n], [INCLUDE_NODE_ID], n) В то же время просто выбор прогнозируемого столбца в заголовке SELECT аналогичен вызову функции PREDICT с параметрами по умолчанию. Например, если при создании модели указано что столбец [Gender] (пол) - прогнозируемый, тоSELECT [Gender] будет аналогично Predict([Gender], EXCLUDE_NULL). Где опция EXCLUDE_NULL указывает на то, что пустые значения исключаются. Более подробно с возможностями функции PREDICT можно ознакомиться в справочнике по функциям расширений интеллектуального анализа данных. Прогнозирование наиболее вероятного значения Если использовать следующий синтаксис оператора SELECT SELECT [TOP ] FROM [WHERE ] [ORDER BY [DESC|ASC]] и в списке  указать только прогнозируемые столбцы, то оператор выполнит пустое прогнозируемое соединение и возвратит наиболее вероятные значения для указанных столбцов. Для создания прогноза используется только содержимое модели интеллектуального анализа данных. Например: SELECT ([Bike Buyer]) FROM [TM_Naive_Bayes] выдаст наиболее часто встречающееся значение столбца [BikeBuyer]. Создание копии модели - оператор SELECT INTO В заключение обзора возможностей оператора SELECT рассмотрим создание копии существующей модели интеллектуального анализа данных. Для этого используется синтаксис: SELECT INTO USING [()] [WITH DRILLTHROUGH[,] [FILTER()]] FROM где newmodel имя для новой создаваемой модели; algorithm название используемого новой моделью алгоритма интеллектуального анализа данных; parameterlist cписок через запятую параметров алгоритма; expression выражение, определяющее фильтр для значений, попадающих в новую модель; existingmodel имя существующей модели для копирования. Если существующая модель является обученной, новая модель автоматически обрабатывается при выполнении этой инструкции. В противном случае новая модель оставляется необработанной. Например, приведенный ниже фрагмент кода создает новую модель [New_Clustering] на базе существующей модели интеллектуального анализа данных [TMClustering]. В обоих случаях используется алгоритм кластеризации. Но в новой модели параметр CLUSTER_COUNT изменяется так, чтобы существовало максимум пять кластеров, тогда как значение по умолчанию равно 10. SELECT * INTO [New_Clustering] USING [Microsoft_Clustering] (CLUSTER_COUNT = 5) FROM [TM Clustering]
«Интеллектуальный анализ данных» 👇
Готовые курсовые работы и рефераты
Купить от 250 ₽
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Тебе могут подойти лекции

Автор(ы) Г.А. Ососков, О.И. Стрельцова, Д.И. Пряхина и др.
Автор(ы) Лизовская В. В.
Смотреть все 493 лекции
Все самое важное и интересное в Telegram

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

Перейти в Telegram Bot