Создание структуры и модели нейронной сети (учебник по интеллектуальному анализу данных — средний уровень)

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

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

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

Шаги

  1. Создание простой структуры интеллектуального анализа данных с использованием значений по умолчанию

  2. Создание копии прогнозируемого столбца и изменение ее путем сегментирования значений

  3. Добавление новой модели и использование нового столбца в качестве выхода этой модели

  4. Создание псевдонима для измененного прогнозируемого атрибута

  5. Назначение начального значения для единообразной обработки моделей; обработка обеих моделей

Создание структуры центра обработки вызовов по умолчанию

Создание структуры и модели интеллектуального анализа данных нейронной сети по умолчанию

  1. В обозревателе решений в среде SQL Server Data Tools (SSDT) щелкните правой кнопкой мыши элемент Структуры интеллектуального анализа данных и выберите команду Создать структуру интеллектуального анализа.

  2. На странице Вас приветствует мастер интеллектуального анализа данных нажмите кнопку Далее.

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

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

  5. Щелкните раскрывающийся список Какой метод интеллектуального анализа данных использовать? и выберите пункт Нейронные сети (Майкрософт).

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

  6. Нажмите кнопку Далее.

    Будет открыта страница Выбор представления источника данных.

  7. В группе Доступные представления источника данных выберите Call Center и нажмите кнопку Далее.

  8. На странице Определение табличных типов установите флажок Вариант для таблицы FactCallCenter. Не выбирайте никакие параметры для таблицы DimDate. Нажмите кнопку Далее.

  9. На странице Определение обучающих данных выберите Ключ рядом со столбцом FactCallCenterID.

  10. Установите флажки Прогноз и Входные данные.

  11. Установите флажки Ключ, Входные данные и Прогноз, как показано в следующей таблице:

    Таблицы и столбцы

    Ключ/Входные данные/Прогноз

    AutomaticResponses

    Ввод

    AverageTimePerIssue

    Входные данные/Прогноз

    Calls

    Ввод

    DateKey

    Не использовать

    DayOfWeek

    Ввод

    FactCallCenterID

    Ключ

    IssuesRaised

    Ввод

    LevelOneOperators

    Входные данные/Прогноз

    LevelTwoOperators

    Ввод

    Orders

    Входные данные/Прогноз

    ServiceGrade

    Входные данные/Прогноз

    Shift

    Вход

    TotalOperators

    Не использовать

    WageType

    Вход

    Заметьте, что выбрано несколько прогнозируемых столбцов. Одним из преимуществ алгоритма нейронной сети является возможность анализа всех возможных сочетаний входных и выходных атрибутов. Такой анализ не стоит проводить в крупном наборе данных, поскольку время обработки может возрастать экспоненциально.

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

    Столбцы

    Тип содержимого

    Типы данных

    AutomaticResponses

    Непрерывный

    Long

    AverageTimePerIssue

    Непрерывный

    Long

    Calls

    Непрерывный

    Long

    DayOfWeek

    Дискретный

    Текст

    FactCallCenterID

    Ключ

    Long

    IssuesRaised

    Непрерывный

    Long

    LevelOneOperators

    Непрерывный

    Long

    LevelTwoOperators

    Непрерывный

    Long

    Orders

    Непрерывный

    Long

    ServiceGrade

    Непрерывный

    С двойной точностью

    Shift

    Дискретный

    Текст

    WageType

    Дискретный

    Текст

  13. На странице Создание проверочного набора очистите текстовое поле для параметра Процент проверочных данных. Нажмите кнопку Далее.

  14. На странице Завершение работы мастера в разделе Имя структуры интеллектуального анализа данных введите Call Center.

  15. В разделе Имя модели интеллектуального анализа данных введите Call Center Default NN и нажмите кнопку Готово.

    Поле Разрешить детализацию отключено, так как в моделях нейронных сетей нельзя детализировать данные.

  16. В обозревателе решений щелкните правой кнопкой мыши имя созданной структуры интеллектуального анализа данных и выберите команду Обработать.

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

По умолчанию при создании модели нейронной сети, имеющей числовой прогнозируемый атрибут, алгоритм нейронной сети (Майкрософт) считает атрибут непрерывным числом. Например, атрибут ServiceGrade представляет собой число, теоретически входящее в диапазон от 0,00 (все звонки обработаны) до 1,00 (все звонки отложены). В этом наборе данных значения имеют следующее распределение:

распределение значений уровня обслуживания

В результате при обработке модели выходные данные могут быть сгруппированы не так, как ожидалось. Например, если для определения лучших групп значений используется кластеризация, то алгоритм делит значения в ServiceGrade на диапазоны, подобные следующему: 0.0748051948 - 0.09716216215. Такое группирование математически точно, однако подобные диапазоны могут представляться бизнес-пользователям мало осмысленными. Чтобы иначе сгруппировать числовые значения, можно создать копию или несколько копий столбца с числовыми данными и указать, как алгоритм интеллектуального анализа данных должен обрабатывать эти значения. Например, можно указать, что алгоритм будет распределять значения не более чем по пяти сегментам.

Службы Analysis Services предоставляют разнообразные методы для сегментирования числовых данных и их обработки. В следующей таблице показаны различия в результатах обработки выходного атрибута ServiceGrade тремя разными способами.

  • Обрабатывать атрибут как непрерывное число.

  • Использовать в алгоритме кластеризацию для определения наилучшего распределения значений.

  • Указать, что числа сегментируются с помощью метода равных областей.

Модель по умолчанию (продолжение)

Сегментирование кластеризацией

Сегментирование на равные области

VALUE

SUPPORT

Missing

0

0.09875

120

VALUE

SUPPORT

< 0.0748051948

34

0.0748051948 - 0.09716216215

27

0.09716216215 - 0.13297297295

39

0.13297297295 - 0.167499999975

10

>= 0.167499999975

10

VALUE

SUPPORT

< 0.07

26

0.07 - 0.00

22

0.09 - 0.11

36

>= 0.12

36

ПримечаниеПримечание

Эту статистику можно получить из узла граничной статистики модели после обработки всех данных. Дополнительные сведения об узле граничной статистики см. в разделе Содержимое моделей интеллектуального анализа данных для моделей нейронных сетей (службы Analysis Services — интеллектуальный анализ данных).

В этой таблице столбец VALUE показывает, как обрабатывалось число для ServiceGrade. Столбец SUPPORT показывает, сколько вариантов пришлось на данное значение или попало в данный диапазон.

  1. Использовать непрерывные числа (по умолчанию)

    Если использовался метод по умолчанию, то алгоритм вычислил результаты для 120 уникальных значений. Среднее значение равно 0,09875. Также можно просмотреть число отсутствующих значений.

  2. Сегментирование кластеризацией

    Если оптимальное группирование значений определяется алгоритмом кластеризации (Майкрософт), то алгоритм группирует значения для ServiceGrade на пять (5) диапазонов. Варианты распределяются по диапазонам неравномерно, о чем сообщает столбец SUPPORT.

  3. Сегментирование на равные области

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

Дополнительные сведения о параметрах сегментирования см. в разделе Методы дискретизации (Интеллектуальный анализ данных).

Вместо использования числовых значений можно добавить отдельный производный столбец, который классифицирует уровни обслуживания по стандартным целевым диапазонам, например «Отличное» (ServiceGrade <= 0,05), «Приемлемое» (0,10 > ServiceGrade > 0,05) и «Плохое» (ServiceGrade >= 0,10).

Создание копии столбца и изменение метода дискретизации

В интеллектуальном анализе данных служб Analysis Services можно легко изменить способ сегментирования числовых данных в пределах структуры интеллектуального анализа данных, добавив копию столбца, содержащую целевые данные, и изменив метод дискретизации.

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

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

ПримечаниеПримечание

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

Создание настраиваемой копии столбца в структуре интеллектуального анализа данных

  1. В обозревателе решений дважды щелкните созданную структуру интеллектуального анализа данных.

  2. На вкладке «Структура интеллектуального анализа данных» щелкните ссылку Добавить столбец структуры интеллектуального анализа данных.

  3. В диалоговом окне Выбор столбца выберите ServiceGrade в списке Исходный столбец и нажмите кнопку ОК.

    Новый столбец будет добавлен в список столбцов структуры интеллектуального анализа данных. По умолчанию новый столбец интеллектуального анализа данных имеет то же имя, что и существующий столбец, с добавлением числового постфикса, например ServiceGrade 1. Имя этого столбца можно заменить на более описательное.

    Также будет указан метод дискретизации.

  4. Щелкните правой кнопкой мыши узел ServiceGrade 1 и выберите пункт Свойства.

  5. В окне Свойства найдите свойство Имя и измените имя на Service Grade Binned.

  6. Откроется диалоговое окно с предложением внести это изменение в имена всех связанных столбцов модели интеллектуального анализа данных. Нажмите кнопку Нет.

  7. В окне Свойства найдите раздел Тип данных и раскройте его, если необходимо.

  8. Измените значение свойства Content с Continuous на Discretized.

    Доступны следующие свойства. Измените значения свойств в соответствии со следующей таблицей.

    Свойство

    Значение по умолчанию

    Новое значение

    DiscretizationMethod

    Continuous

    EqualAreas

    DiscretizationBucketCount

    Без значения

    4

    ПримечаниеПримечание

    По умолчанию свойство DiscretizationBucketCount имеет значение 0, что означает, что алгоритм автоматически определяет оптимальное число сегментов. Поэтому, если необходимо изменить значение этого свойства на значение по умолчанию, введите 0.

  9. В конструкторе интеллектуального анализа данных перейдите на вкладку Модели интеллектуального анализа данных.

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

Добавление новой модели интеллектуального анализа данных в структуру интеллектуального анализа данных

После создания нового группирования для целевого атрибута необходимо добавить новую модель интеллектуального анализа данных, которая использует дискретизированный столбец. После этого в структуре интеллектуального анализа данных CallCenter окажется две модели интеллектуального анализа данных.

  • Модель интеллектуального анализа данных Call Center Default NN обрабатывает значения ServiceGrade как непрерывный диапазон.

  • Будет создана новая модель интеллектуального анализа данных Call Center Binned NN, которая использует в качестве результатов значения столбца ServiceGrade, распределенные по четырем сегментам одинакового размера.

Добавление модели интеллектуального анализа данных на основе нового дискретизированного столбца

  1. В обозревателе решений щелкните правой кнопкой мыши созданную структуру интеллектуального анализа данных и выберите команду Открыть.

  2. Перейдите на вкладку Модели интеллектуального анализа данных.

  3. Выберите команду Создать связанную модель интеллектуального анализа данных.

  4. В диалоговом окне Создание модели интеллектуального анализа данных введите в поле Имя модели значение Call Center Binned NN. В раскрывающемся списке Имя алгоритма выберите Нейронная сеть (Майкрософт).

  5. В списке столбцов, содержащихся в новой модели интеллектуального анализа данных, выберите столбец ServiceGrade и измените флаг использования Predict на Ignore.

  6. Аналогичным образом выберите столбец ServiceGrade Binned и измените флаг использования Ignore на Predict.

Обычно невозможно сравнивать модели интеллектуального анализа данных, в которых используются различные прогнозируемые атрибуты. Однако для столбца модели интеллектуального анализа данных можно создать псевдоним. Это означает, что столбец ServiceGrade Binned можно переименовать в пределах модели интеллектуального анализа данных так, чтобы его имя совпало с именем исходного столбца. Затем можно непосредственно сравнить эти две модели по диаграмме точности, несмотря на то, что данные дискретизируются различным образом.

Добавление псевдонима для столбца структуры интеллектуального анализа данных в модели интеллектуального анализа данных

  1. На вкладке Модели интеллектуального анализа данных в разделе Структура выберите столбец ServiceGrade Binned.

    Заметьте, что в окне Свойства выводятся свойства объекта — столбца ScalarMiningStructure.

  2. Под столбцом для модели интеллектуального анализа данных ServiceGrade Binned NN щелкните ячейку, соответствующую столбцу ServiceGrade Binned.

    Заметьте, что в окне Свойства выводятся свойства объекта MiningModelColumn.

  3. Выберите свойство Имя и измените его значение на ServiceGrade.

  4. Выберите свойство Описание и введите псевдоним временного столбца.

    В окне Свойства должны отобразиться следующие данные.

    Свойство

    Значение

    Описание

    Временный псевдоним столбца

    ID

    ServiceGrade Binned

    Modeling Flags

      

    Название

    Service Grade

    SourceColumn ID

    Service Grade 1

    Использование

    Predict

  5. Щелкните в любом месте вкладки Модель интеллектуального анализа данных.

    Сетка обновится, и на ней появится новый временный псевдоним столбца ServiceGrade рядом с флагом использования столбца. Сетка, содержащая структуру интеллектуального анализа данных и две модели интеллектуального анализа данных, должна иметь следующий вид:

    Структура

    Call Center Default NN

    Call Center Binned NN

      

    Алгоритм нейронной сети Майкрософт

    Алгоритм нейронной сети Майкрософт

    AutomaticResponses

    Ввод

    Ввод

    AverageTimePerIssue

    Predict

    Predict

    Calls

    Ввод

    Ввод

    DayOfWeek

    Ввод

    Ввод

    FactCallCenterID

    Ключ

    Ключ

    IssuesRaised

    Ввод

    Ввод

    LevelOneOperators

    Ввод

    Ввод

    LevelTwoOperators

    Ввод

    Ввод

    Orders

    Ввод

    Ввод

    ServiceGrade Binned

    Ignore

    Прогноз (ServiceGrade)

    ServiceGrade

    Predict

    Ignore

    Shift

    Ввод

    Ввод

    Total Operators

    Ввод

    Ввод

    WageType

    Ввод

    Ввод

Обработка модели

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

ПримечаниеПримечание

Если не указать числовое значение для параметра начального значения, службы SQL Server Analysis Services создадут начальное значение на основе имени модели. Поскольку модели всегда имеют разные имена, необходимо задать начальное значение, чтобы обеспечить одинаковый порядок обработки данных этими моделями.

Указание начального значения и обработка моделей

  1. На вкладке Модель интеллектуального анализа данных щелкните правой кнопкой мыши столбец для модели Call Center - LR и выберите команду Установить параметры алгоритма.

  2. В строке для параметра HOLDOUT_SEED щелкните пустую ячейку под строкой Значение и введите 1. Нажмите кнопку ОК. Повторите этот шаг для каждой модели, связанной со структурой.

    ПримечаниеПримечание

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

  3. В меню Модели интеллектуального анализа данных выберите команду Обработать структуру интеллектуального анализа данных и все модели. Чтобы выполнить развертывание на сервере обновленного проекта интеллектуального анализа данных, нажмите кнопку Да.

  4. В диалоговом окне Обработка модели интеллектуального анализа данных нажмите кнопку Выполнить.

  5. Нажмите кнопку Закрыть, чтобы закрыть диалоговое окно Ход обработки, а затем вновь нажмите кнопку Закрыть в диалоговом окне Обработка модели интеллектуального анализа данных.

После создания двух связанных моделей интеллектуального анализа данных будет выполнено исследование данных с целью выявления содержащихся в них связей.

Следующая задача занятия

Изучение модели Call Center (учебник по интеллектуальному анализу данных — средний уровень)

См. также

Основные понятия

Структуры интеллектуального анализа данных (службы Analysis Services — интеллектуальный анализ данных)