# Пример — анализ «что-если» с помощью аналитического коннектора Qlik Predict

В этом примере вы настроите анализ «что-если» для моделирования изменения прогнозируемых значений при корректировке различных переменных. Этот пример включает в себя обучение и развертывание модели бинарной классификации в Qlik Predict и ее использование для создания прогнозов с помощью аналитического коннектора Qlik Predict.

Приложение для анализа «что-если»

Приложение для анализа «что-если»

Приложение для анализа «что-если» ![Результат анализа «что-если»](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## Перед началом работы

### Загрузить примеры материалов

Загрузите ресурсы примера здесь:

[WhatIfAnalysisExample.zip](https://help.qlik.com/ru-RU/cloud-services/tutorials/WhatIfAnalysisExample.zip)

Материалы состоят из:

* Обучающий набор данных — data-turnover-employees.xlsx. Этот набор данных используется как для обучения, так и для прогнозирования в этом примере.

* Приложение — What-If Analysis.qvf. Приложение нельзя использовать для создания прогнозов без предварительного обучения и развертывания модели.

### Предварительные требования

Перед началом работы убедитесь в следующем:

* Ваша подписка Qlik Cloud позволяет выполнять прогнозы в реальном времени. См. следующую информацию или обратитесь к владельцу учетной записи службы клиента.

  * [Цены Qlik](https://www.qlik.com/us/pricing)

  * [Подписки Qlik Cloud®](https://www.qlik.com/us/legal/product-terms)

* Администратор вашего клиента включил конечные точки машинного обучения.

  [Включение конечных точек машинного обучения в Qlik Cloud](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-overview.htm#EnableMLEndpoints)

* Администратор клиента назначил вам необходимые разрешения:

  * Для разрешения Подключения к данным установлено значение Разрешено.

    [Присвоение пользователям разрешений для работы с подключениями данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-data-connections.htm#Permissions)

  * Разрешения для работы с экспериментами.

    [Доступ пользователя к экспериментам машинного обучения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessExperiment)

  * Разрешения для работы с развертываниями и аналитическим коннектором Qlik Predict.

    [Доступ пользователя к развертываниям машинного обучения и прогнозам](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessDeployment)

## Часть 1. Загрузка набора данных

Выполните следующие действия.

1. Перейдите на страницу «Создать» центра активности Аналитика и выберите Набор данных.

2. Нажмите Загрузить файл данных.

3. Перетащите файл данных data-turnover-employees.xlsx в диалоговое окно Добавить файл.

4. Выберите пространство назначения для файла. Это может быть ваше личное пространство или общее пространство. Используйте одно и то же пространство для всех ресурсов руководства.

5. Нажмите Загрузить.

## Часть 2. Обучение эксперимента

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

Выполните следующие действия.

1. Перейдите на страницу «Создать» центра активности Аналитика и выберите Эксперимент ML.

2. Введите имя эксперимента, например Employee turnover analysis.

3. Выберите пространство для эксперимента (используйте то же пространство, которое использовалось в [Часть 1. Загрузка набора данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload)).

4. Нажмите Создать.

5. Выберите файл обучающего набора данных data-turnover-employees.xlsx.

6. Выберите столбец left в качестве целевого. Этот столбец указывает, уволился ли сотрудник из компании.

7. Нажмите Запустить эксперимент.

## Часть 3. Развертывание и активация наиболее эффективной модели

### Развертывание

После завершения обучения эксперимента вы перейдете на вкладку Модели. Разверните наиболее эффективную модель в качестве развертывания ML.

Выполните следующие действия.

1. Нажмите кнопку the Меню с тремя точками icon рядом с моделью, рядом с которой находится значок the Трофей icon.

2. Нажмите the Развернуть icon .

3. Выберите вариант развертывания модели в Новое развертывание.

4. Введите имя развертывания, например Employee Turnover Predictions.

5. При необходимости настройте пространство, описание и теги.

6. Включите параметр Включить доступ к API в реальном времени. Это необходимо для запуска прогнозов с помощью аналитического коннектора Qlik Predict.

7. Нажмите Создать.

### Активация

Откройте только что созданное развертывание.

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

Выполните следующие действия.

1. На баннере в верхней части развертывания машинного обучения нажмите Активировать модель.

2. В открывшемся диалоговом окне нажмите Активировать модель для подтверждения.

## Часть 4. Создание подключения к аналитическому коннектору Qlik Predict

Затем создайте подключение к аналитическому коннектору Qlik Predict. Это позволит вам создавать прогнозы на лету в аналитическом приложении.

Выполните следующие действия.

1. Перейдите на страницу «Создать» центра активности Аналитика и выберите Подключение к данным.

2. В разделе Пространство выберите то же пространство, которое использовалось в [Часть 1. Загрузка набора данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload).

3. Выберите коннектор Qlik Predict.

4. Выберите Развертывание ML, созданное в [Часть 3. Развертывание и активация наиболее эффективной модели](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy).

5. Введите следующее значение в поле Имя: MLModel.

6. Click Создать.

## Часть 5. Загрузка аналитического приложения

Загрузите аналитическое приложение, которое вы загрузили в разделе [Загрузить примеры материалов](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Download).

Выполните следующие действия.

1. Перейдите на страницу «Создать» центра активности Аналитика.

2. В разделе Данные и загрузка выберите Загрузить.

3. Перетащите приложение What-If Analysis.qvf в диалоговое окно.

4. В разделе Пространство выберите то же пространство, которое использовалось в разделах [Часть 1. Загрузка набора данных](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) и [Часть 4. Создание подключения к аналитическому коннектору Qlik Predict](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection).

5. Нажмите Загрузить.

После загрузки приложения откройте его, а затем откройте лист What-If Analysis.

Примечание к информацииПриложение предварительно настроено, поэтому вам не нужно добавлять листы и выражения. Тем не менее каждый шаг подробно описан в разделе [Понимание работы приложения](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Understanding).

## Изучение результатов

Теперь в приложении открыт лист What-If Analysis.

Выполните следующие действия.

1. Выберите одно значение сотрудника в поле employee\_number. В KPI Risk of Turnover появится значение.

2. Отрегулируйте ползунки под KPI. При каждой корректировке выполняется моделирование для прогнозирования риска ухода сотрудника.

Анализ «что-если» с выбранным одним сотрудником и скорректированными переменными.

Анализ «что-если» с выбранным одним сотрудником и скорректированными переменными.

Анализ «что-если» с выбранным одним сотрудником и скорректированными переменными. ![Результат анализа «что-если»](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## Понимание работы приложения

### Загруженные данные

Обучающий набор данных, использованный в разделе [Часть 2. Обучение эксперимента](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Train), используется в качестве данных приложения. В реальных сценариях это не всегда так.

### Переменные листа

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

Переменные для анализа «что-если»

| Имя переменной | Характеристика модели, которую она представляет | Определение переменной по умолчанию |
| --- | --- | --- |
| vSatisfactionLevel | satisfaction\_level | - |
| vTimeSpent | time\_spend\_company | - |
| vNumberOfProjects | number\_project | - |
| vAvgMonthlyHoursWorked | average\_monthly\_hours | - |

### KPI и выражение

На лист был добавлен KPI. Используется следующее выражение диаграммы:

```
endpoints.ScriptEvalStr('{"RequestType":"endpoint", "endpoint":{"connectionname":":MLModel","column":"left_yes"}}',
	vSatisfactionLevel as satisfaction_level,
	vTimeSpent as time_spend_company,
	last_evaluation,
	vNumberOfProjects as number_project,
	vAvgMonthlyHoursWorked as average_monthly_hours)
```

Расчет представляет собой риск ухода для выбранного сотрудника.

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

#### Разбор выражения

Выражение использует синтаксис серверных расширений (SSE) для создания прогнозов на лету.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### endpoints.ScriptEvalStr

Префикс endpoints.ScriptEvalStr указывает на использование серверных расширений. В частности, используется функция ScriptEvalStr. Эта функция позволяет указать имя подключения, целевой столбец и характеристики без явного объявления типов. Другими словами, при использовании этой функции API автоматически определяет типы характеристик.

[Синтаксис серверных расширений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### ('{"RequestType":"endpoint",

Этот сегмент дополнительно вызывает серверные расширения, указывая, что запрос предназначен для доступа к определенной конечной точке.

[Синтаксис серверных расширений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### Указание имени подключения

Сегмент "endpoint":{"connectionname":":MLModel" указывает имя используемого подключения. Оно должно соответствовать имени подключения, указанному в разделе [Часть 4. Создание подключения к аналитическому коннектору Qlik Predict](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection). Подключение также содержит префикс :, указывающий на то, что используемое подключение находится в том же пространстве, что и приложение.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### Указание целевого столбца и запрос вероятности

Сегмент column":"left\_yes" указывает на то, что мы хотим использовать столбец left в качестве целевого. Суффикс \_yes указывает на то, что мы ищем вероятность результата yes. Другими словами, мы запрашиваем не конкретное прогнозируемое значение, а вероятность прогнозирования положительного значения.

[](https://help.qlik.com/en-US/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm)

#### Указание характеристик и переменных

После указания целевого столбца необходимо указать характеристики в модели. Характеристики модели можно получить, открыв развертывание ML (созданное в разделе [Часть 3. Развертывание и активация наиболее эффективной модели](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy)), а затем открыв раздел Обзор развертывания. При этом откроется схема модели: список характеристик и их типы.

Обзор развертывания в развертывании ML, показывающий Схему модели

Обзор развертывания в развертывании ML, показывающий Схему модели

Обзор развертыванияОбзор развертывания в развертывании ML, показывающий Схему моделиСхему модели ![Схема модели в обзоре развертывания для развертывания ML.](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis-model-schema.png)

Отсюда список характеристик можно составить в виде списка, разделенного запятыми. Подстановки переменных (с использованием ключевого слова «as») указывают на то, что текущие значения переменных должны использоваться в качестве данных характеристик, а не самих данных приложения. Эти подстановки переменных позволяют выполнять интерактивное моделирование «что-если», продемонстрированное в этом примере.

```
vSatisfactionLevel as satisfaction_level,
vTimeSpent as time_spend_company,
last_evaluation,
vNumberOfProjects as number_project,
vAvgMonthlyHoursWorked as average_monthly_hours)
```

Примечание к информацииСписок характеристик в выражении должен включать все характеристики в схеме модели. В противном случае прогнозирование завершится ошибкой. Кроме того, если в выражении указаны характеристики, которых нет в схеме модели, прогнозирование также завершится ошибкой. Если вы обучили модель, которая не имеет идентичного набора характеристик с перечисленными в выражениях выше, вам потребуется отредактировать выражение, чтобы добавить или удалить характеристики соответствующим образом.

### Объекты ввода переменных

На лист было добавлено четыре элемента управления вводом переменных — по одному для каждой переменной. Были выполнены следующие настройки:

* Выбрана используемая переменная.

* В качестве типа ввода выбран Ползунок.

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

Для получения дополнительной информации об объектах ввода переменных см. раздел [Создание элемента управления для ввода переменной](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/creating-variable-input.htm).

### Фильтр

Был добавлен фильтр для облегчения выбора сотрудника, на котором необходимо сосредоточиться.

### Таблица с исходными данными

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

[Синтаксис серверных расширений](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[Использование подключений Qlik Predict в выражениях визуализации](https://help.qlik.com/ru-RU/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-use.htm)