Fehlende Werte (Analysis Services - Data Mining)

Gilt für: SQL Server 2019 und früheren Analysis Services Azure Analysis Services Fabric/Power BI Premium

Wichtig

Data Mining wurde in SQL Server 2017 Analysis Services als veraltet eingestuft und wurde jetzt in SQL Server 2022 Analysis Services eingestellt. Die Dokumentation wird für veraltete und eingestellte Features nicht aktualisiert. Weitere Informationen finden Sie unter Abwärtskompatibilität von Analysis Services.

Die korrekte Behandlung fehlender Werte ist ein wichtiger Bestandteil der effektiven Modellierung. In diesem Abschnitt wird erläutert, was fehlende Werte sind, und es werden die Features beschrieben, die in SQL Server Analysis Services zum Arbeiten mit fehlenden Werten beim Erstellen von Data Mining-Strukturen und Miningmodellen bereitgestellt werden.

Definition fehlender Werte in Data Mining

Ein fehlender Wert kann Verschiedenes bedeuten. Vielleicht war das Feld nicht zutreffend, oder das Ereignis trat nicht ein, oder die Daten waren nicht verfügbar. Möglicherweise kannte die Person, die die Daten eingegeben hat, den richtigen Wert nicht, oder sie hat nicht darauf geachtet, dass alle Felder ausgefüllt sind.

Es gibt jedoch viele Data Mining-Szenarien, in denen fehlende Werte wichtige Informationen liefern. Die Bedeutung der fehlenden Werte hängt zum größten Teil vom Kontext ab. Ein fehlender Datumswert in einer Liste von Rechnungen hat z. B. eine ganz andere Bedeutung als ein fehlendes Datum in einer Spalte, die Auskunft über das Einstellungsdatum eines Mitarbeiters gibt. Im Allgemeinen behandelt SQL Server Analysis Services fehlende Werte als informativ und passt die Wahrscheinlichkeiten an, um die fehlenden Werte in seine Berechnungen zu integrieren. Hierdurch lässt sich sicherstellen, dass die Modelle ausgewogen sind und vorhandenen Fällen darin nicht zu viel Gewicht beigemessen wird.

Daher bietet SQL Server Analysis Services zwei deutlich unterschiedliche Mechanismen zum Verwalten und Berechnen fehlender Werte. Durch die erste Methode wird die Handhabung von NULL-Werten auf der Ebene der Miningstruktur gesteuert. Die zweite Methode wird je nach Algorithmus unterschiedlich implementiert, legt aber im Allgemeinen fest, wie fehlende Werte in Modellen, die NULL-Werte zulassen, verarbeitet und gezählt werden.

Festlegen der Behandlung von NULL-Werten

In der Datenquelle könnte fehlende Werte auf unterschiedliche Weise dargestellt werden: als NULL-Werte, als leere Zellen in einem Arbeitsblatt, als Wert "N/V" oder sonstiger Code oder als ein künstlicher Wert wie 9999. Für das Data Mining werden jedoch nur NULL-Werte als fehlende Werte betrachtet. Wenn die Daten Platzhalterwerte anstatt von NULL-Werten enthalten, können sich diese auf die Ergebnisse des Modells auswirken. Sie sollten sie daher durch NULL-Werte ersetzen oder die richtigen Werte nach Möglichkeit ableiten. Es sind verschiedene Tools verfügbar, mit denen Sie geeignete Werte ableiten und eintragen können, z. B. die Suchtransformation oder der Datenprofilerstellungs-Task in SQL Server Integration Services (SSIS) oder das in den Data Mining-Add-Ins für Excel verfügbare Tool Aus Beispiel füllen.

Wenn für die modellierte Aufgabe gilt, dass in einer Spalte keine Werte fehlen dürfen, sollten Sie das NOT_NULL -Modellierungsflag beim Definieren der Miningstruktur auf die Spalte anwenden. Dieses Flag gibt an, dass die Verarbeitung fehlschlagen soll, wenn ein Fall nicht über einen geeigneten Wert verfügt. Falls während der Verarbeitung eines Modells dieser Fehler auftritt, können Sie ihn protokollieren und Maßnahmen einleiten, um die Daten zu korrigieren, die für das Modell verwendet werden.

Berechnen des Status "Missing"

Für den Data Mining-Algorithmus sind fehlende Werte informativ. In Falltabellen ist der Status Missing ebenso wie jeder andere Status zulässig. Darüber hinaus kann ein Data Mining-Modell mithilfe anderer Werte vorhersagen, ob ein Wert fehlt. Anders ausgedrückt: Die Tatsache, dass ein Wert fehlt, wird nicht als Fehler angesehen.

Während der Erstellung eines Miningmodells wird der Status Missing dem Modell automatisch für alle diskreten Spalten hinzugefügt. Wenn beispielsweise die Eingabespalte für [Geschlecht] die beiden möglichen Werte „Männlich“ und „Weiblich“ enthält, wird automatisch ein dritter Wert hinzugefügt, der den Wert Nicht vorhanden darstellt, und das Histogramm, das die Verteilung aller Werte der Spalte zeigt, beinhaltet stets die Anzahl der Fälle mit Nicht vorhanden -Werten. Wenn in der Spalte Geschlecht keine Werte fehlen, zeigt das Histogramm, dass der -Status in 0 Fällen vorkommt.

Das automatische Einfügen des Status Missing hat folgenden Sinn: Sie halten es für möglich, dass sich in den Daten nicht für alle möglichen Werte Beispiele finden und möchten nicht, dass das Modell die Möglichkeit ausschließt, nur weil die Daten kein Beispiel enthalten. Wenn die Umsatzdaten eines Ladens beispielsweise zeigen, dass alle Kunden, die ein bestimmtes Produkt kauften, zufällig Frauen waren, ist es nicht wünschenswert, ein Modell zu erstellen, das vorhersagt, dass nur Frauen das Produkt kaufen können. Stattdessen fügt SQL Server Analysis Services einen Platzhalter für den zusätzlichen unbekannten Wert namens Missing hinzu, um mögliche andere Zustände zu berücksichtigen.

Beispielsweise enthält die folgende Tabelle die Verteilung der Werte für den Knoten (Alle) des Entscheidungsstrukturmodells, das für das Bike Buyer-Lernprogramms erstellt wurde. In diesem Beispielszenario enthält die Spalte [Bike Buyer] das vorhersagbare Attribut, wobei 1 für "Ja" und 0 für "Nein" steht.

Wert Fälle
0 9296
1 9098
Missing 0

Diese Verteilung zeigt, dass etwa eine Hälfte der Kunden ein Fahrrad gekauft hat und die andere Hälfte nicht. Dieses Dataset ist sehr sauber; daher ist für jeden Fall ein Wert in der Spalte [Bike Buyer] vorhanden, und die Anzahl der Nicht vorhanden -Werte ist 0. Wenn jedoch ein Fall im Feld [Bike Buyer] einen NULL-Wert aufweist, zählt SQL Server Analysis Services diese Zeile als Fall mit einem Fehlenden Wert.

Ist die Eingabe eine kontinuierliche Spalte, dann tabellarisiert das Modell zwei mögliche Zustände für das Attribut: Existing und Missing. Anders ausgedrückt: Entweder enthält die Spalte einen Wert eines numerischen Datentyps, oder sie enthält keinen Wert. Für die Fälle, in denen ein Wert gegeben ist, berechnet das Modell den Mittelwert, die Standardabweichung und andere aussagekräftige Statistiken. Für die Fälle, in denen kein Wert vorhanden ist, liefert das Modell die Anzahl der Missing -Werte und passt die Vorhersagen entsprechend an. Welche Methode zum Anpassen der Vorhersage eingesetzt wird, hängt vom Algorithmus ab und wird im folgenden Abschnitt beschrieben.

Hinweis

Für Attribute in einer geschachtelten Tabelle sind fehlende Werte nicht informativ. Wenn ein Kunde beispielsweise kein Produkt gekauft hat, dann enthält die geschachtelte Products -Tabelle keine Zeile für das Produkt, und im Mining-Modell würde kein Attribut für das fehlende Produkt erstellt. Wenn Sie jedoch an den Kunden interessiert sind, die bestimmte Produkte nicht gekauft haben, können Sie ein Modell erstellen, das durch Verwendung einer NOT EXISTS-Anweisung im Modellfilter nach dem Nichtvorhandensein der Produkte in der geschachtelten Tabelle gefiltert wird. Weitere Informationen finden Sie unter Anwenden eines Filters auf ein Miningmodell.

Anpassen der Wahrscheinlichkeit für den Status "Missing"

Zusätzlich zum Zählen von Werten berechnet SQL Server Analysis Services die Wahrscheinlichkeit eines beliebigen Werts im Dataset. Das gilt auch für den Missing -Wert. In der nachfolgenden Tabelle werden beispielsweise die Wahrscheinlichkeiten der Fälle aus dem vorigen Beispiel dargestellt:

Wert Fälle Probability
0 9296 50.55%
1 9098 49.42%
Missing 0 0.03%

Es mag seltsam erscheinen, dass für den Missing -Wert eine Wahrscheinlichkeit von 0,03 % berechnet wird, obwohl die Anzahl der Fälle gleich 0 ist. Dieses Verhalten ist jedoch beabsichtigt und stellt eine Anpassung dar, mit deren Hilfe das Modell unbekannte Werte handhaben kann.

Im Allgemeinen wird die Wahrscheinlichkeit berechnet, indem die Anzahl der positiven Fälle durch die Anzahl aller möglichen Fälle geteilt wird. In diesem Beispiel berechnet der Algorithmus die Summe der Fälle, die eine bestimmte Bedingung ([Bike Buyer] = 1 oder [Bike Buyer] = 0) erfüllen, und dividiert diese Zahl durch die Gesamtzahl der Zeilen. Damit den Missing -Fällen Rechnung getragen wird, wird der Anzahl aller möglichen Fälle 1 hinzugefügt. Infolgedessen ist die Wahrscheinlichkeit für unbekannte Fälle nicht mehr Null, sondern eine sehr kleine Zahl, die angibt, dass der Status nur unwahrscheinlich, aber nicht unmöglich ist.

Durch die Addition des kleinen Missing -Werts wird das Vorhersageergebnis nicht geändert. Es ermöglicht jedoch eine bessere Modellierung bei Szenarien, bei denen die Verlaufsdaten nicht alle möglichen Ergebnisse enthalten.

Hinweis

Verschiedene Data Mining-Anbieter behandeln fehlende Werte unterschiedlich. Beispielsweise nehmen manche Anbieter an, dass es sich um eine effiziente Darstellung handelt, wenn in einer geschachtelten Spalte Werte fehlen. Fehlende Werte in einer nicht geschachtelten Spalte werden jedoch als Zufallsprodukt betrachtet.

Wenn Sie sicher sind, dass die Daten alle möglichen Ergebnisse darstellen, und eine Anpassung der Wahrscheinlichkeiten verhindern möchten, sollten Sie in der Miningstruktur für die Spalte das NOT_NULL-Modellierungsflag festlegen.

Hinweis

Jeder Algorithmus, einschließlich benutzerdefinierter Algorithmen, die Sie möglicherweise von einem Drittanbieter-Plug-In erhalten, kann fehlende Werte unterschiedlich behandeln.

Besondere Behandlung von fehlenden Werten in Entscheidungsstrukturmodellen

Der Microsoft Decision Trees-Algorithmus berechnet die Wahrscheinlichkeiten für fehlende Werte anders als andere Algorithmen. Statt einfach 1 zur Gesamtzahl der Fälle zu addieren, passt der Decision Trees-Algorithmus mithilfe einer etwas anderen Formel die Wahrscheinlichkeit für den Status Missing an.

In einem Entscheidungsstrukturmodell wird die Wahrscheinlichkeit des Status Missing wie folgt berechnet:

StatusWahrscheinlichkeit = (KnotenVorherWahrscheinlichkeit) * (StatusUnterstützungswerte + 1)/(KnotenUnterstützungswerte + GesamtzahlStatuswerte)

Der Decision Trees-Algorithmus bietet eine zusätzliche Anpassung, die dem Algorithmus hilft, das Vorhandensein von Filtern im Modell zu kompensieren, was dazu führen kann, dass viele Zustände während des Trainings ausgeschlossen werden.

Wenn in SQL Server 2017 während des Trainings ein Zustand vorhanden ist, aber gerade in einem bestimmten Knoten keine Unterstützung hat, wird die Standardanpassung vorgenommen. Wenn ein Statuswert während des Trainings jedoch nie auftritt, legt der Algorithmus die Wahrscheinlichkeit auf genau null (0) fest. Diese Anpassung gilt nicht nur für den Status Missing , sondern auch für andere Statuswerte, die in den Trainingsdaten vorhanden sind, infolge der Modellfilterung aber keine (0) Unterstützungswerte besitzen.

Aus dieser zusätzlichen Anpassung ergibt sich folgende Formel:

StateProbability = 0.0 wenn dieser Status über 0 Unterstützungswerte im Trainingssatz verfügt

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

Im Endeffekt soll durch diese Anpassung die Stabilität der Struktur aufrechterhalten werden.

Die folgenden Themen stellen weitere Informationen zur Behandlung fehlender Werte bereit.

Aufgaben Links
Hinzufügen von Flags zu einzelnen Modellspalten, um die Behandlung fehlender Werte zu steuern Anzeigen oder Ändern von Modellierungsflags (Data Mining)
Festlegen von Eigenschaften für ein Miningmodell, um die Behandlung fehlender Werte zu steuern Ändern der Eigenschaften eines Miningmodells
Informationen zum Angeben der Modellierungsflags in DMX Modellierungsflags (DMX)
Ändern der Methode, die von der Miningstruktur zur Behandlung fehlender Werte verwendet wird Ändern der Eigenschaften einer Miningstruktur

Weitere Informationen

Miningmodellinhalt (Analysis Services &ndash;</ph> Data Mining)
Modellierungsflags (Data Mining)