Saknade värden (Analysis Services – datautvinning)

Gäller för: SQL Server 2019 och tidigare Analysis Services Azure Analysis Services Fabric/Power BI Premium

Viktigt!

Datautvinningen upphörde i SQL Server 2017 Analysis Services och upphörde nu i SQL Server 2022 Analysis Services. Dokumentationen uppdateras inte för inaktuella och utgångna funktioner. Mer information finns i Analysis Services bakåtkompatibilitet.

Det är viktigt att hantera saknade värden korrekt för effektiv modellering. I det här avsnittet beskrivs saknade värden och hur du använder SQL Server Analysis Services funktioner för att hantera dem när du skapar strukturer och modeller för datautvinning.

Definition av saknade värden i datautvinning

Ett värde som saknas kan betyda ett antal olika saker. Fältet kanske inte var tillämpligt, händelsen inträffade inte eller så var data inte tillgängliga. Det kan vara så att personen som angav data inte visste rätt värde eller inte brydde sig om ett fält inte fylldes i.

Saknade värden ger viktig information i många scenarier för datautvinning. Innebörden av de saknade värdena beror till stor del på kontexten. Till exempel har ett värde som saknas för datumet i en lista med fakturor en väsentlig skillnad från bristen på ett datum i kolumnen som anger ett anställningsdatum för anställda. I allmänhet behandlar SQL Server Analysis Services saknade värden som informativa och justerar sannolikheterna för att införliva de saknade värdena i sina beräkningar. På så sätt kan du se till att modellerna är balanserade och inte viktar befintliga fall för mycket.

SQL Server Analysis Services innehåller två mekanismer för hantering av saknade värden. Den första metoden styr hanteringen av null-värden i utvinningsstrukturen. Varje algoritm implementerar den andra metoden på olika sätt för att bearbeta och räkna saknade värden i modeller som tillåter null-värden.

Specificera hantering av nullvärden

Datakällan kan representera saknade värden som nullvärden, tomma kalkylbladsceller N/A eller en annan kod eller ett artificiellt värde som 9999. För datautvinning betraktas dock endast nullvärden som saknade värden. Om dina data innehåller platshållarvärden i stället för nullvärden kan de påverka resultatet av modellen, så du bör ersätta dem med nullvärden eller härleda korrekta värden om möjligt. Det finns en mängd olika verktyg som du kan använda för att härleda och fylla i lämpliga värden, till exempel uppslagstransformeringen eller dataprofileringsaktiviteten i služba SSIS eller verktyget Fyll efter exempel som tillhandahålls i datautvinnings-Add-Ins för Excel.

Om uppgiften du modellerar inte tillåter saknade värden i en kolumn använder du modellflaggan NOT_NULL när du definierar gruvstrukturen. Den här flaggan anger att bearbetningen bör misslyckas om ett ärende inte har ett lämpligt värde. Om det här felet uppstår när du bearbetar en modell kan du logga felet och vidta åtgärder för att korrigera de data som tillhandahålls till modellen.

Beräkning av det saknade tillståndet

Datautvinningsalgoritmer behandlar saknade värden som informativa. I falltabeller är Missing ett giltigt tillstånd. En datautvinningsmodell kan använda andra värden för att förutsäga om ett värde saknas, så ett saknat värde är inte ett fel.

När du skapar en gruvmodell läggs tillståndet Saknas automatiskt till i modellen för alla diskreta kolumner. Om till exempel indatakolumnen [Kön] innehåller värdena Man och Kvinna lägger modellen till ett tredje värde, Missing. Kolumnens histogram innehåller antalet fall med tillståndet Saknas . Om kolumnen Kön inte saknar några värden visar histogrammet att tillståndet Saknas finns i 0 fall.

Anledningen till att inkludera tillståndet Saknas blir som standard tydligt när du tänker på att dina data kanske inte har exempel på alla möjliga värden, och du vill inte att modellen ska utesluta möjligheten bara för att det inte fanns något exempel i data. Om till exempel försäljningsdata för en butik visade att alla kunder som köpte en viss produkt råkade vara kvinnor, skulle du inte vilja skapa en modell som förutsäger att endast kvinnor kan köpa produkten. I stället lägger SQL Server Analysis Services till en platshållare för det extra okända värdet, kallat Missing, som ett sätt att ta emot eventuella andra tillstånd.

I följande tabell visas till exempel fördelningen av värden för noden (Alla) i beslutsträdsmodellen som skapats för självstudiekursen Cykelköpare. I exempelscenariot är kolumnen [Cykelköpare] det förutsägbara attributet, där 1 anger "Ja" och 0 anger "Nej".

Värde Ärenden
0 9296
1 9098
Försvunnen 0

Distributionen visar att ungefär hälften av kunderna köper en cykel och hälften inte gör det. Varje fall i den här datamängden har ett värde i kolumnen [Cykelköpare] så antalet saknade värden är noll. Om ett ärende innehåller ett null-värde i fältet [Cykelköpare] räknar SQL Server Analysis Services raden som ett ärende med värdet Saknas.

Om indata är en kontinuerlig kolumn, tabulerar modellen två möjliga tillstånd för attributet: Befintlig och Saknas. Med andra ord innehåller kolumnen antingen ett värde av någon numerisk datatyp eller så innehåller den inget värde. För fall som har ett värde beräknar modellen medelvärde, standardavvikelse och annan meningsfull statistik. För fall som inte har något värde ger modellen ett antal saknade värden och justerar förutsägelserna i enlighet med detta. Metoden för att justera förutsägelsen varierar beroende på algoritmen och beskrivs i följande avsnitt.

Anmärkning

För attribut i en kapslad tabell är saknade värden inte informativa. Om en kund till exempel inte köper en produkt har tabellen kapslade produkter ingen rad för den produkten och gruvmodellen skapar inte något attribut för den. Om du vill identifiera kunder utan inköp av vissa produkter använder du en NOT EXIST-instruktion i modellfiltret för att filtrera efter produkter som inte finns i den kapslade tabellen. Mer information finns i Tillämpa ett filter på en gruvmodell.

Justering av sannolikheten för saknade tillstånd

Förutom att räkna värden beräknar SQL Server Analysis Services sannolikheten för valfritt värde i datauppsättningen. Samma beräkning gäller för värdet Saknas . I följande tabell visas till exempel sannolikheterna för fallen i föregående exempel:

Värde Ärenden Sannolikhet
0 9296 50,55%
1 9098 49.42%
Försvunnen 0 0,03%

Det kan verka konstigt att sannolikheten för värdet Saknas är 0,03%, när antalet fall är 0. Det här beteendet är avsiktligt och representerar en justering som gör att modellen kan hantera okända värden korrekt.

I allmänhet beräknas sannolikheten som de gynnsamma fallen dividerat med alla möjliga fall. I det här exemplet beräknar algoritmen summan av de fall som uppfyller ett visst villkor ([Cykelköpare] = 1 eller [Cykelköpare] = 0) och delar det antalet med det totala antalet rader. För att ta hänsyn till de saknade fallen lägger algoritmen till 1 i antalet möjliga fall. Därför är sannolikheten för det okända fallet inte längre noll, utan ett mycket litet tal, vilket indikerar att tillståndet bara är osannolikt, inte omöjligt.

Det lilla saknade värdet ändrar inte förutsägelsen, men det förbättrar modellering när historiska data inte innehåller alla möjliga resultat.

Anmärkning

Datautvinningsprovidrar hanterar saknade värden på olika sätt. Vissa leverantörer behandlar till exempel saknade data i en kapslad kolumn som en gles representation och saknade data i en icke-kontrollerad kolumn som slumpmässigt saknade.

Om dina data anger varje utfall ska du ställa in modelleringsflaggan NOT_NULL på kolumnen i gruvstrukturen för att förhindra sannolikhetsjusteringar.

Anmärkning

Varje algoritm, inklusive en anpassad algoritm från ett plugin-program från tredje part, kan hantera saknade värden på olika sätt.

Särskild hantering av saknade värden i beslutsträdsmodeller

Algoritmen Microsoft Decision Trees beräknar sannolikheter för saknade värden på ett annat sätt än andra algoritmer. I stället för att lägga till en i det totala antalet fall använder algoritmen en annan formel för att justera för tillståndet Saknas .

I en beslutsträdsmodell använder du följande formel för att beräkna sannolikheten för tillståndet Saknas :

StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStates)

Algoritmen Decision Trees ger en ytterligare justering som hjälper algoritmen att kompensera för förekomsten av filter i modellen, vilket kan utesluta många tillstånd under träningen.

I SQL Server 2017, om ett tillstånd finns under träning men har noll stöd i en viss nod, gör algoritmen standardjusteringen. Men om ett tillstånd aldrig påträffas under träningen anger algoritmen sannolikheten till exakt noll. Den här justeringen gäller inte bara tillståndet Saknas , utan även för andra tillstånd som finns i träningsdata, utan har inget stöd till följd av modellfiltrering.

Den här ytterligare justeringen resulterar i följande formel:

StateProbability = 0.0 om det tillståndet har 0 stöd i träningsuppsättningen

ELSE StateProbability = (NodePriorProbability)* (StateSupport + 1) / (NodeSupport + TotalStatesWithNonZeroSupport)

Nettoeffekten av den här justeringen är att upprätthålla trädets stabilitet.

De här resurserna förklarar hur du hanterar saknade värden.

Tasks Links
Lägga till flaggor i enskilda modellkolumner för att styra hur modellen hanterar saknade värden Visa eller ändra modelleringsflaggor (datautvinning)
Ange egenskaper för gruvmodell för att styra hur modellen hanterar saknade värden Ändra egenskaperna för en gruvmodell
Ange modelleringsflaggor i DMX Modelleringsflaggor (DMX)
Ändra hur gruvstrukturen hanterar saknade värden Ändra egenskaperna för en gruvstruktur

Se även

Innehåll för gruvmodell (Analysis Services – datautvinning)
Modelleringsflaggor (datautvinning)