Поделиться через


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

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

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

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

Создание структуры Call Center по умолчанию

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

  1. В обозревателе решений в среде Business Intelligence Development Studio щелкните правой кнопкой мыши элемент Структуры интеллектуального анализа данных и выберите команду Создать структуру интеллектуального анализа.

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

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

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

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

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

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

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

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

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

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

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

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

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

    Ключ, входные данные, прогноз

    AutomaticResponses

    Вход

    AverageTimePerIssue

    Входные данные, прогноз

    Calls

    Вход

    DateKey

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

    DayOfWeek

    Вход

    FactCallCenterID

    Ключ

    IssuesRaised

    Вход

    LevelOneOperators

    Входные данные, прогноз

    LevelTwoOperators

    Вход

    Orders

    Входные данные, прогноз

    ServiceGrade

    Входные данные, прогноз

    Shift

    Вход

    TotalOperators

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

    WageType

    Вход

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

    Столбцы

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

    Типы данных

    AutomaticResponses

    Непрерывный

    Длинный

    AverageTimePerIssue

    Непрерывный

    Длинный

    Calls

    Непрерывный

    Длинный

    DayOfWeek

    Дискретный

    Текст

    FactCallCenterID

    Ключ

    Длинный

    IssuesRaised

    Непрерывный

    Длинный

    LevelOneOperators

    Непрерывный

    Длинный

    LevelTwoOperators

    Непрерывный

    Длинный

    Orders

    Непрерывный

    Длинный

    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 тремя способами.

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

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

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

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

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

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

VALUESUPPORT
Отсутствует0
0.09875120
VALUESUPPORT
< 0.074805194834
0.0748051948 - 0.0971621621527
0.09716216215 - 0.1329729729539
0.13297297295 - 0.16749999997510
>= 0.16749999997510
VALUESUPPORT
< 0.0726
0.07 - 0.0022
0.09 - 0.1136
>= 0.1236

В этой таблице столбец VALUE показывает, как обрабатывалось непрерывное число, а столбец SUPPORT показывает, сколько строк было обнаружено с этим значением, диапазоном или типом значений. Дополнительные сведения о параметрах сегментирования см. в разделе Методы дискретизации (Интеллектуальный анализ данных).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  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.

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

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

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

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

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

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

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

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

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

    Свойство

    Значение

    Description

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

    ID

    ServiceGrade Binned

    Modeling Flags

      

    Name

    Service Grade

    SourceColumn ID

    Service Grade 1

    Usage

    Predict

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

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

    Структура

    Call Center Default NN

    Call Center Binned NN

      

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

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

    AutomaticResponses

    Вход

    Вход

    AverageTimePerIssue

    Прогноз

    Прогноз

    Calls

    Вход

    Вход

    DayOfWeek

    Вход

    Вход

    FactCallCenterID

    Ключ

    Ключ

    IssuesRaised

    Вход

    Вход

    LevelOneOperators

    Вход

    Вход

    LevelTwoOperators

    Вход

    Вход

    Orders

    Вход

    Вход

    ServceGrade Binned

    Пропустить

    Прогноз (ServiceGrade)

    ServiceGrade

    Прогноз

    Пропустить

    Shift

    Вход

    Вход

    Total Operators

    Вход

    Вход

    WageType

    Вход

    Вход

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

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

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

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

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

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

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

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

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

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

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

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

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

Журнал изменений

Обновленное содержимое

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

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

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

Добавлены типы данных для содержимого нового столбца DayOfWeek.