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


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

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

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

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

Шаги

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

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

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

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

Обработка всех моделей

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

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

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

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

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

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

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

  6. Щелкните Далее.

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

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

  8. На странице Указание типов таблиц выберите поле Регистр проверка рядом с таблицей FactCallCenter. Не выбирайте ничего для DimDate. Щелкните Далее.

  9. На странице Укажите данные для обучения выберите Ключ рядом со столбцом FactCallCenterID.

  10. Predict Выберите поля Входные проверка и .

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

    Таблицы и столбцы Ключ/Входные данные/Прогноз
    AutomaticResponses Входные данные
    AverageTimePerIssue Входные данные/Прогноз
    Вызовы Входные данные
    DateKey Не использовать
    DayOfWeek Входные данные
    FactCallCenterID Ключ
    IssuesRaised Входные данные
    LevelOneOperators Входные данные/Прогноз
    LevelTwoOperators Входные данные
    Orders Входные данные/Прогноз
    ServiceGrade Входные данные/Прогноз
    Сдвиг Входные данные
    TotalOperators Не использовать
    WageType Входные данные

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

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

    Столбцы Тип содержимого Типы данных
    AutomaticResponses С задержкой Long
    AverageTimePerIssue С задержкой Long
    Вызовы С задержкой Long
    DayOfWeek Discrete Текст
    FactCallCenterID Ключ Long
    IssuesRaised С задержкой Long
    LevelOneOperators С задержкой Long
    LevelTwoOperators С задержкой Long
    Orders С задержкой Long
    ServiceGrade С задержкой Double
    Сдвиг Discrete Текст
    WageType Discrete Текст
  13. На странице Создание проверочного набора снимите флажок Процент данных для тестирования. Щелкните Далее.

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

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

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

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

Используйте дискретизацию для секционирования целевого столбца

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

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

В результате при обработке модели выходные данные могут быть сгруппированы не так, как ожидалось. Например, если вы используете кластеризация для определения лучших групп значений, алгоритм делит значения в ServiceGrade на такие диапазоны: 0,0748051948 – 0,09716216215. Такое группирование математически точно, однако подобные диапазоны могут представляться бизнес-пользователям мало осмысленными.

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

Как работает дискретизация

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

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

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

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

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

Значение Псевдоним
Missing 0
0.09875 120

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

Значение Псевдоним
< 0.0748051948 34
0.0748051948 - 0.09716216215 27
0.09716216215 - 0.13297297295 39
0.13297297295 - 0.167499999975 10
>= 0,167499999975 10

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

Значение Псевдоним
< 0.07 26
0.07 - 0.00 22
0.09 - 0.11 36
>= 0,12 36

Примечание

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

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

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

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

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

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

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

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

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

Кроме того, вместо использования числовых значений можно добавить отдельный производный столбец, который классифицирует классы служб по предопределенным целевым диапазонам, таким как Best (ServiceGrade <= 0,05), Acceptable (0,10 > ServiceGrade > 0,05) и Poor (ServiceGrade >= 0,10).

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

Вы создадите копию столбца интеллектуального анализа данных, содержащего целевой атрибут 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. В Designer интеллектуального анализа данных перейдите на вкладку Модели интеллектуального анализа данных.

    Обратите внимание, что во время добавления копии столбца структуры интеллектуального анализа данных флаг использования для копии автоматически получает значение 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. Найдите свойство Name и измените значение на ServiceGrade.

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

    Окно Свойства должно содержать следующие сведения:

    Свойство Значение
    Описание Временный псевдоним столбца
    Идентификатор ServiceGrade Binned
    Флаги моделирования
    имя; Service Grade
    SourceColumn ID Service Grade 1
    Использование Predict
  5. Щелкните в любом месте вкладки Модель интеллектуального анализа данных .

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

    Структура Call Center Default NN Call Center Binned NN
    Алгоритм нейронной сети Майкрософт Алгоритм нейронной сети Майкрософт
    AutomaticResponses Входные данные Входные данные
    AverageTimePerIssue Predict Predict
    Вызовы Входные данные Входные данные
    DayOfWeek Входные данные Входные данные
    FactCallCenterID Ключ Ключ
    IssuesRaised Входные данные Входные данные
    LevelOneOperators Входные данные Входные данные
    LevelTwoOperators Входные данные Входные данные
    Orders Входные данные Входные данные
    ServiceGrade Binned Игнорировать Прогноз (ServiceGrade)
    ServiceGrade Predict Игнорировать
    Сдвиг Входные данные Входные данные
    Total Operators Входные данные Входные данные
    WageType Входные данные Входные данные

Обработайте все модели

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

Примечание

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

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

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

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

    Примечание

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

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

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

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

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

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

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

См. также:

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