# 예 - Qlik Predict 분석 커넥터를 사용한 가상 분석(What-if 분석)

이 예에서는 서로 다른 변수를 조정할 때 예측값이 어떻게 변하는지 시뮬레이션하기 위해 가상 분석을 구성합니다. 이 예에는 Qlik Predict에서 이진 분류 모델을 학습 및 배포하고, 이를 사용하여 Qlik Predict 분석 커넥터로 예측을 생성하는 작업이 포함됩니다.

가상 분석 응용 프로그램

가상 분석 응용 프로그램

가상 분석 응용 프로그램 ![가상 분석 결과](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## 시작하기 전에

### 예제 자료 다운로드

여기에서 예제 리소스를 다운로드하십시오.

[WhatIfAnalysisExample.zip](https://help.qlik.com/ko-KR/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)

* 테넌트 관리자가 기계 학습 엔드포인트를 활성화했습니다.

  [에서 ML 종료 지점 활성화Qlik Cloud](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-overview.htm#EnableMLEndpoints)

* 테넌트 관리자가 귀하에게 필요한 권한을 할당했습니다.

  * 데이터 연결 권한이 허용됨으로 설정되어 있어야 합니다.

    [사용자가 데이터 연결로 작업할 수 있도록 권한 할당](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-data-connections.htm#Permissions)

  * 실험 작업에 대한 권한.

    [ML 실험에 대한 사용자 액세스](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessExperiment)

  * 배포 작업 및 Qlik Predict 분석 커넥터 작업에 대한 권한.

    [ML 배포 및 예측에 대한 사용자 액세스](https://help.qlik.com/ko-KR/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/ko-KR/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 점 3개 메뉴 icon를 클릭합니다.

2. the 배포 icon 를 클릭합니다.

3. 모델을 새 배포에 배포하는 옵션을 선택합니다.

4. 배포 이름(예: Employee Turnover Predictions)을 입력합니다.

5. 필요한 경우 공간, 설명 및 태그를 조정합니다.

6. 실시간 API 액세스 활성화를 켭니다. 이는 Qlik Predict 분석 커넥터로 예측을 실행하는 데 필요합니다.

7. 만들기를 클릭합니다.

### 활성화

새로 만든 배포를 엽니다.

ML 배포 인터페이스 상단의 배너에 모델 승인자가 예측을 수행하기 위해 기본 모델을 활성화해야 한다는 메시지가 표시됩니다.

다음과 같이 하십시오.

1. ML 배포 상단의 배너에서 모델 활성화를 클릭합니다.

2. 열리는 대화 상자에서 모델 활성화를 클릭하여 확인합니다.

## 파트 4: Qlik Predict 분석 커넥터에 대한 연결 만들기

다음으로, Qlik Predict 분석 커넥터에 대한 연결을 만듭니다. 이를 통해 분석 응용 프로그램 내에서 즉석에서 예측을 생성할 수 있습니다.

다음과 같이 하십시오.

1. 분석 활동 센터의 만들기 페이지로 이동하여 데이터 연결을 선택합니다.

2. 공간에서 [파트 1: 데이터 세트 업로드](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload)에서 사용한 것과 동일한 공간을 선택합니다.

3. Qlik Predict 커넥터를 선택합니다.

4. [파트 3: 성능이 가장 우수한 모델 배포 및 활성화](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy)에서 만든 ML 배포를 선택합니다.

5. 다음 이름을 입력합니다. MLModel.

6. 만들기를 클릭합니다.

## 파트 5: 분석 응용 프로그램 업로드

[예제 자료 다운로드](https://help.qlik.com/ko-KR/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/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) 및 [파트 4: Qlik Predict 분석 커넥터에 대한 연결 만들기](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection)에서 사용한 것과 동일한 공간을 선택합니다.

5. 업로드를 클릭합니다.

응용 프로그램을 업로드한 후 해당 응용 프로그램을 열고 What-If Analysis 시트를 엽니다.

정보 메모응용 프로그램이 사전 구성되어 있으므로 시트와 표현식을 추가할 필요가 없습니다. 그러나 각 단계는 [응용 프로그램 이해](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Understanding)에 자세히 설명되어 있습니다.

## 결과 탐색

이제 응용 프로그램에 What-If Analysis 시트가 열려 있습니다.

다음과 같이 하십시오.

1. employee\_number 필드에서 단일 직원 값을 선택합니다. Risk of Turnover KPI에 값이 나타납니다.

2. KPI 아래의 슬라이더를 조정합니다. 조정할 때마다 직원 이탈 위험을 예측하기 위한 시뮬레이션이 수행됩니다.

단일 직원이 선택되고 변수가 조정된 가상 분석입니다.

단일 직원이 선택되고 변수가 조정된 가상 분석입니다.

단일 직원이 선택되고 변수가 조정된 가상 분석입니다. ![가상 분석 결과](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## 응용 프로그램 이해

### 로드된 데이터

[파트 2: 실험 학습](https://help.qlik.com/ko-KR/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/ko-KR/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/ko-KR/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/ko-KR/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/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy)에서 생성됨)를 연 다음 배포 개요를 열어 얻을 수 있습니다. 그러면 모델 스키마(기능 목록 및 기능 유형)가 열립니다.

ML 배포의 배포 개요로, 모델 스키마를 보여 줍니다.

ML 배포의 배포 개요로, 모델 스키마를 보여 줍니다.

ML 배포의 배포 개요배포 개요로, 모델 스키마모델 스키마를 보여 줍니다. ![ML 배포의 배포 개요에 있는 모델 스키마입니다.](https://help.qlik.com/ko-KR/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)
```

정보 메모표현식의 기능 목록에는 모델 스키마의 모든 기능이 포함되어야 합니다. 그렇지 않으면 예측이 실패합니다. 또한 표현식에 나열된 기능 중 모델 스키마에 나타나지 않는 기능이 있는 경우에도 예측이 실패합니다. 위의 표현식에 나열된 기능과 동일한 기능 세트가 없는 모델을 학습시킨 경우, 해당되는 기능을 포함하거나 제거하도록 표현식을 편집해야 합니다.

### 변수 입력 개체

각 변수에 대해 하나씩 총 4개의 변수 입력 컨트롤이 시트에 추가되었습니다. 다음과 같은 구성이 완료되었습니다.

* 사용할 변수가 선택되었습니다.

* 입력 유형이 슬라이더로 선택되었습니다.

* 원래 데이터에 따라 합리적으로 발생할 수 있는 값을 기준으로 각 변수의 최소 및 최대 범위가 구성되었습니다.

변수 입력 개체에 대한 자세한 내용은 [변수 입력 컨트롤 만들기](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/creating-variable-input.htm)을 참조하십시오.

### 필터 창

집중할 직원을 쉽게 선택할 수 있도록 필터 창이 추가되었습니다.

### 원래 데이터가 포함된 테이블

가상 분석 중에 변경되기 전의 원래 데이터를 쉽게 볼 수 있도록 시트 하단에 단순 테이블도 추가되었습니다.

[서버 측 확장 구문](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[시각화 표현식에서 Qlik Predict 연결 사용](https://help.qlik.com/ko-KR/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-use.htm)