Share via


Fehlende Werte (Analysis Services - Data Mining)

Ein fehlender Wert kann in den Daten Verschiedenes besagen. Vielleicht war das Feld nicht zutreffend, oder das Ereignis trat nicht ein, oder die Daten waren nicht verfügbar. Möglicherweise wusste die Person, die die Daten eingab, nicht, welcher Wert richtig war, oder es war ihr gleichgültig, wenn ein Feld leer blieb. Daher stellt Analysis Services zwei ganz unterschiedliche Mechanismen zur Verwaltung und Berechung dieser fehlenden Werte bereit, die auch als NULL-Werte bezeichnet werden.

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 verwenden. Dadurch wird sichergestellt, dass die Verarbeitung fehlschlägt, wenn in einem Fall kein geeigneter Wert vorhanden ist. Falls während der Verarbeitung des Modells ein Fehler auftritt, können Sie den Fehler protokollieren und Maßnahmen einleiten, um die Daten zu korrigieren, die für das Modell verwendet werden. 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.

Es gibt aber auch viele Data Mining-Szenarien, in denen fehlende Werte wichtige Informationen liefern. Im Allgemeinen werden fehlende Werte in Analysis Services als informativ angesehen und die Wahrscheinlichkeiten so angepasst, dass fehlende Werte in den Berechnungen berücksichtigt werden. Hierdurch lässt sich sicherstellen, dass die Modelle ausgewogen sind und vorhandenen Fällen darin nicht zu viel Gewicht beigemessen wird. In diesem Abschnitt wird erklärt, wie Werte definiert und in Modellen, in denen NULL-Werte zulässig sind, als Missing gezählt werden. In diesem Thema wird auch beschrieben, wie diese Missing-Werte von Data Mining-Algorithmen bei der Modellerstellung verarbeitet und verwendet werden.

HinweisHinweis

Jeder Algorithmus, auch benutzerdefinierte Algorithmen, die Sie möglicherweise von einem Plug-In eines Drittanbieters erhalten, kann Missing-Werte anders behandeln.

Verwenden von Missing-Werten in Modellen

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: Der Fakt, dass ein Wert fehlt, wird nicht als Fehler behandelt.

Während der Erstellung eines Data Mining-Modells wird der Missing-Status 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 Missing-Wert darstellt, und das Histogramm, das die Verteilung aller Werte der Spalte zeigt, beinhaltet stets die Anzahl der Fälle mit Missing-Werten. Wenn in der Spalte Geschlecht keine Werte fehlen, zeigt das Histogramm, dass der Missing-Status in 0 Fällen vorkommt.

Es ist sinnvoll, den Missing-Status automatisch hinzuzufügen, wenn Sie es für möglich halten, dass sich in den Daten nicht für alle möglichen Werte Beispiele finden und Sie nicht möchten, dass das Modell eine Möglichkeit ausschließt, 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 Analysis Services einen Platzhalter namens Missing für den zusätzlichen unbekannten Wert hinzu, sodass andere mögliche Statuswerte berücksichtigt werden können.

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 Missing-Werte ist 0. Wäre jedoch in einem Fall kein Wert im Feld [Bike Buyer] vorhanden, dann würde Analysis Services die betreffende Zeile als Fall mit einem Missing-Wert zählen.

Wenn es sich bei der Eingabe um eine fortlaufende Spalte handelt, dann stellt das Modell die beiden möglichen Zustände des Attributs tabellarisch dar: 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.

HinweisHinweis

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 Vorgehensweise: Anwenden eines Filters auf ein Miningmodell.

Anpassen der Wahrscheinlichkeit für den fehlenden Wert

Analysis Services zählt nicht nur die Werte, sondern berechnet auch die Wahrscheinlichkeit der einzelnen Werte im Dataset. Das gilt auch für Missing-Werte. In der nachfolgenden Tabelle werden beispielsweise die Wahrscheinlichkeiten der Fälle aus dem vorigen Beispiel dargestellt:

Wert

Fälle

Wahrscheinlichkeit

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 geteilten 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 Szenarios, bei denen die Verlaufsdaten nicht alle möglichen Ergebnisse enthalten.

HinweisHinweis

Verschiedene Data Mining-Anbieter behandeln fehlende Werte unterschiedlich. Beispielsweise nehmen manche Anbieter an, dass es sich um eine spärliche 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.

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 hinzuzufügen, 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)

Zudem stellt der Decision Trees-Algorithmus in SQL Server 2008 Analysis Services eine zusätzliche Anpassung bereit, die es dem Algorithmus ermöglicht, die Anwendung von Filtern im Modell zu kompensieren, durch die möglicherweise viele Statuswerte während des Trainings ausgeschlossen werden.

Wenn ein Statuswert während des Trainings vorhanden ist, aber an einem bestimmten Knoten über keine (0) Unterstützungswerte verfügt, wird in SQL Server 2008 die Standardanpassung vorgenommen. Wenn ein Statuswert während des Trainings jedoch nie auftritt, legt der Algorithmus die Wahrscheinlichkeit auf genau 0 fest. Diese Anpassung gilt nicht nur für den Missing-Status, sondern auch für 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:

StatusWahrscheinlichkeit = 0,0 , wenn dieser Status über 0 Unterstützungswerte im Trainingssatz verfügt

ELSE StatusWahrscheinlichkeit = (KnotenVorherWahrscheinlichkeit) * (StatusUnterstützungswerte + 1)/(KnotenUnterstützungswerte + GesamtzahlStatuswerteMitUnterstützungswertenUngleichNull)

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