# Exempel – What-if-analys med analyskopplingen Qlik Predict

I det här exemplet kommer du att konfigurera en what-if-analys för att simulera hur förutsagda värden ändras när olika variabler justeras. Exemplet omfattar att träna och distribuera en binär klassificeringsmodell i Qlik Predict, och använda den för att skapa förutsägelser med analyskopplingen Qlik Predict.

What-if-analysapplikation

What-if-analysapplikation

What-if-analysapplikation ![Resultat av what-if-analys](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## Innan du börjar

### Hämta exempelmaterial

Hämta exempelresurserna här:

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

Materialet består av:

* En träningsdatamängd – data-turnover-employees.xlsx. Denna datamängd används för både träning och förutsägelser i exemplet.

* En applikation – What-If Analysis.qvf. Applikationen kan inte användas för att generera förutsägelser utan att först träna och distribuera en modell.

### Förutsättningar

Innan du börjar ska du se till att:

* Ditt Qlik Cloud-abonnemang kan köra realtidsförutsägelser. Se följande eller kontakta ägaren till klientorganisationens tjänstekonto.

  * [Qlik-prissättning](https://www.qlik.com/us/pricing)

  * [Qlik Cloud®-abonnemang](https://www.qlik.com/us/legal/product-terms)

* Din klientorganisationsadministratör har aktiverat slutpunkter för maskininlärning.

  [Aktivera ML-ändpunkter i Qlik Cloud](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-overview.htm#EnableMLEndpoints)

* Du har tilldelats de behörigheter som krävs av en klientorganisationsadministratör:

  * Behörigheten Datakopplingar inställd på Tillåten.

    [Tilldela behörigheter för användare att arbeta med datakopplingar](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Admin/mc-administer-data-connections.htm#Permissions)

  * Behörighet att arbeta med experiment.

    [Användaråtkomst till ML-experiment](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessExperiment)

  * Behörighet att arbeta med distributioner och arbeta med analyskopplingen Qlik Predict.

    [Användaråtkomst för ML-distribution och prognoser](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/who-can-work-with-automl.htm#AccessDeployment)

## Del 1: Ladda upp datamängden

Gör följande:

1. Gå till sidan Skapa i Analyser-aktivitetscenter och välj Datamängd.

2. Klicka på Ladda upp datafil.

3. Dra och släpp datafilen data-turnover-employees.xlsx i dialogrutan Lägg till fil.

4. Välj ett målutrymme för filen. Det kan vara ditt personliga utrymme eller ett delat utrymme. Använd samma utrymme för alla självstudietillgångar.

5. Klicka på Ladda upp.

## Del 2: Träna experimentet

Skapa, konfigurera och kör ett experiment för att träna en binär klassificeringsmodell. Alla tillgängliga funktioner inkluderas som standard.

Gör följande:

1. Gå till sidan Skapa i Analyser-aktivitetscenter och välj ML-experiment.

2. Ange ett namn för ditt experiment, till exempel Employee turnover analysis.

3. Välj ett utrymme för experimentet (använd samma utrymme som du använde i [Del 1: Ladda upp datamängden](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload)).

4. Klicka på Skapa.

5. Välj filen med träningsdatamängden data-turnover-employees.xlsx.

6. Välj kolumnen left som mål. Det här är en kolumn som anger om en anställd har lämnat företaget eller inte.

7. Klicka på Kör experiment.

## Del 3: Distribuera och aktivera den bäst presterande modellen

### Distribution

När experimentträningen är klar hamnar du på fliken Modeller. Distribuera den bäst presterande modellen som en ML-distribution.

Gör följande:

1. Klicka på the Meny med tre punkter icon bredvid modellen som har en the Trofé icon-ikon bredvid sig.

2. Klicka på the Distribuera icon .

3. Välj alternativet att distribuera modellen till En ny distribution.

4. Skriv ett namn för din distribution, till exempel Employee Turnover Predictions.

5. Justera utrymme, beskrivning och taggar vid behov.

6. Aktivera Aktivera API-åtkomst i realtid. Detta krävs för att köra förutsägelser med analyskopplingen Qlik Predict.

7. Klicka på Skapa.

### Aktivering

Öppna den nyskapade distributionen.

Längst upp i gränssnittet för ML-distributionen indikerar en banderoll att en modellgodkännare måste aktivera standardmodellen för att göra prediktioner.

Gör följande:

1. I banderollen längst upp i ML-distributionen klickar du på Aktivera modell.

2. I dialogrutan som öppnas klickar du på Aktivera modell för att bekräfta.

## Del 4: Skapa en koppling till analyskopplingen Qlik Predict

Skapa sedan en koppling till analyskopplingen Qlik Predict. Detta gör att du kan generera förutsägelser direkt i analysapplikationen.

Gör följande:

1. Gå till sidan Skapa i Analyser-aktivitetscentret och välj Datakoppling.

2. Under Utrymme väljer du samma utrymme som du använde i [Del 1: Ladda upp datamängden](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload).

3. Välj kopplingen Qlik Predict.

4. Välj den ML-distribution som du skapade i [Del 3: Distribuera och aktivera den bäst presterande modellen](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy).

5. Ange följande Namn: MLModel.

6. Klicka på Skapa.

## Del 5: Ladda upp analysapplikationen

Ladda upp analysapplikationen som du hämtade i [Hämta exempelmaterial](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Download).

Gör följande:

1. Gå till sidan Skapa i Analyser-aktivitetscentret.

2. Under Data och uppladdning väljer du Ladda upp.

3. Släpp applikationen What-If Analysis.qvf i dialogrutan.

4. Under Utrymme väljer du samma utrymme som du använde i [Del 1: Ladda upp datamängden](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Upload) och [Del 4: Skapa en koppling till analyskopplingen Qlik Predict](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection).

5. Klicka på Ladda upp.

När du har laddat upp applikationen öppnar du den och öppnar sedan What-If Analysis-arket.

Anteckning om informationApplikationen är förkonfigurerad så du behöver inte lägga till ark och uttryck. Varje steg beskrivs dock i detalj i [Förstå applikationen](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Understanding).

## Utforska resultaten

Du har nu What-If Analysis-arket öppet i applikationen.

Gör följande:

1. Välj ett enskilt medarbetarvärde i fältet employee\_number. Ett värde visas i KPI:n Risk of Turnover.

2. Justera skjutreglagen under KPI:n. Vid varje justering utförs en simulering för att förutsäga risken för personalomsättning.

What-if-analys med en enskild medarbetare vald och variabler justerade.

What-if-analys med en enskild medarbetare vald och variabler justerade.

What-if-analys med en enskild medarbetare vald och variabler justerade. ![Resultat av what-if-analys](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis.png)

## Förstå applikationen

### Inlästa data

Träningsdatamängden som användes i [Del 2: Träna experimentet](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Train) används som applikationsdata. I verkliga scenarier är detta inte alltid fallet.

### Arkvariabler

Följande variabler skapades, var och en med en tom standarddefinition. Definitionen lämnas tom eftersom variabelvärdena istället uppdateras löpande under analysen.

Variabler för what-if-analys

| Variabelnamn | Modellfunktion den representerar | Standarddefinition för variabel |
| --- | --- | --- |
| vSatisfactionLevel | satisfaction\_level | - |
| vTimeSpent | time\_spend\_company | - |
| vNumberOfProjects | number\_project | - |
| vAvgMonthlyHoursWorked | average\_monthly\_hours | - |

### KPI och uttryck

En KPI lades till på arket. Följande diagramuttryck används:

```
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)
```

Beräkningen representerar risken för personalomsättning för den valda medarbetaren.

Delavsnitten nedan beskriver hur detta uttryck använder syntax för server-side-tillägg för att anropa API för maskininlärning för realtidsförutsägelser.

#### Bryta ned uttrycket

Uttrycket använder syntax för server-side-tillägg (SSE) för att generera förutsägelser löpande.

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

#### endpoints.ScriptEvalStr

Prefixet endpoints.ScriptEvalStr indikerar att server-side-tillägg används. Mer specifikt används funktionen ScriptEvalStr. Denna funktion gör att du kan ange kopplingsnamn, mål och funktioner utan att uttryckligen deklarera typer. Med andra ord härleder API:et funktionstyper automatiskt när denna funktion används.

[Syntax för komplement på serversidan](https://help.qlik.com/sv-SE/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",

Detta segment anropar server-side-tillägg ytterligare genom att ange att begäran ska få åtkomst till en specifik slutpunkt.

[Syntax för komplement på serversidan](https://help.qlik.com/sv-SE/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)

#### Ange kopplingsnamnet

Segmentet "endpoint":{"connectionname":":MLModel" anger namnet på den koppling som ska användas. Detta måste matcha det kopplingsnamn som anges i [Del 4: Skapa en koppling till analyskopplingen Qlik Predict](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Connection). Kopplingen innehåller även prefixet : för att indikera att den koppling som ska användas finns i samma utrymme som applikationen.

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

#### Ange målet och begära sannolikhet

Segmentet column":"left\_yes" indikerar att vi vill använda kolumnen left som mål. Suffixet \_yes indikerar att vi letar efter sannolikheten för resultatet yes. Med andra ord begär vi inte ett specifikt förutsagt värde, utan istället sannolikheten för att ett positivt värde förutsägs.

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

#### Ange funktioner och variabler

Efter att ha angett målkolumnen måste vi ange funktionerna i modellen. Modellfunktionerna kan erhållas genom att öppna ML-distributionen (skapad i [Del 3: Distribuera och aktivera den bäst presterande modellen](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/AutoML/example-what-if-analysis.htm#Deploy)) och sedan öppna Deployment overview. Detta öppnar modellschemat: listan över funktioner och deras funktionstyper.

Deployment overview i en ML-distribution, som visar Model schema

Deployment overview i en ML-distribution, som visar Model schema

Deployment overviewDeployment overview i en ML-distribution, som visar Model schemaModel schema ![Modellschema i Deployment overview för en ML-distribution.](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/what-if-analysis-model-schema.png)

Härifrån kan listan över funktioner konstrueras som en kommaseparerad lista. Variabelsubstitutioner – med nyckelordet ”as” – indikerar att aktuella värden för variabler ska användas som funktionsdata, snarare än själva applikationsdata. Dessa variabelsubstitutioner möjliggör den interaktiva ”what-if”-simuleringen som demonstreras i det här exemplet.

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

Anteckning om informationFunktionslistan i uttrycket måste innehålla alla funktioner i modellschemat. Annars misslyckas förutsägelserna. Dessutom, om det finns funktioner listade i uttrycket som inte förekommer i modellschemat, kommer förutsägelserna på samma sätt att misslyckas. Om du har tränat en modell som inte har exakt samma uppsättning funktioner som de som listas i uttrycken ovan, måste du redigera ditt uttryck för att lägga till eller ta bort funktioner efter behov.

### Variabelinmatningsobjekt

Fyra kontroller för variabelinmatning lades till på arket – en för varje variabel. Följande konfigurationer har gjorts:

* Variabeln som ska användas valdes.

* Inmatningstypen valdes som Skjutreglage.

* Minimi- och maximivärden för varje variabel konfigurerades, baserat på värden som rimligen kan förekomma enligt ursprungliga data.

Mer information om variabelinmatningsobjekt finns i [Skapa kontroller för variabelinmatning](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Visualizations/DashboardBundle/creating-variable-input.htm).

### Filterruta

En filterruta lades till för att göra det enkelt att välja vilken medarbetare man vill fokusera på.

### Tabell med ursprungliga data

En rak tabell lades också till längst ned på arket för att göra det enkelt att se ursprungliga data – innan de ändrades under what-if-analysen.

[Syntax för komplement på serversidan](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/sse-syntax.htm)

[Använda Qlik Predict-kopplingar i visualiseringsuttryck](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/LoadData/ac-qlik-automl-connector-use.htm)