Abfragen eines neuronalen Netzwerkmodells (Analysis Services - Data Mining)

Beim Schreiben einer Abfrage für ein Data Mining-Modell können Sie eine Inhaltsabfrage erstellen, die Details über die bei der Analyse ermittelten Muster liefert. Alternativ dazu können Sie auch eine Vorhersageabfrage erstellen, die Vorhersagen für neue Daten anhand der im Modell befindlichen Muster vornimmt. Eine Inhaltsabfrage für ein neuronales Netzwerkmodell ruft beispielsweise Modellmetadaten wie die Anzahl der verborgenen Ebenen ab. Alternativ schlägt eine Vorhersageabfrage Klassifikationen basierend auf einer Eingabe vor und stellt wahlweise Wahrscheinlichkeiten für jede Klassifikation zur Verfügung.

In diesem Abschnitt wird erklärt, wie Abfragen für Modelle erstellt werden, die auf dem Microsoft Neural Network-Algorithmus basieren.

Inhaltsabfragen

Abrufen von Modellmetadaten mithilfe von DMX

Abrufen von weiteren Modellmetadaten aus dem Schemarowset

Abrufen von Eingabeattributen für das Modell

Abrufen von Gewichtungen von der verborgenen Ebene

Vorhersageabfragen

Erstellen einer SINGLETON-Vorhersage

Suchen nach Informationen über ein neuronales Netzwerkmodell

Alle Miningmodelle machen den vom Algorithmus erfassten Inhalt nach einem standardisierten Schema verfügbar. Dieses Schema wird als Miningmodell-Schemarowset bezeichnet. Diese Information bietet Details über das Modell und umfasst grundlegende Metadaten, bei der Analyse ermittelte Strukturen und für die Verarbeitung verwendete Parameter. Abfragen für den Modellinhalt können Sie mithilfe von DMX-Anweisungen (Data Mining-Erweiterungen) erstellen.

Beispielabfrage 1: Abrufen von Modellmetadaten mit DMX

Die folgende Abfrage gibt einige grundlegende Metadaten über ein Modell zurück, das mit dem Microsoft Neural Network-Algorithmus erstellt wurde. In einem neuronalen Netzwerkmodell enthält der übergeordnete Knoten des Modells nur den Namen des Modells, den Namen der Datenbank, in der das Modell gespeichert ist, und die Anzahl der untergeordneten Knoten. Der Knoten für Randstatistik (NODE_TYPE = 24) stellt sowohl diese grundlegenden Metadaten als auch einige abgeleitete statistische Daten über die in dem Modell verwendeten Eingabespalten zur Verfügung.

Die folgende Beispielabfrage basiert auf dem im Data Mining-Lernprogramm erstellten Miningmodell mit dem Namen Call Center Default NN. Das Modell verwendet Daten von einem Call Center, um mögliche Korrelationen zwischen Personalbesetzung, Anzahl der Anrufe, Bestellungen und Probleme zu untersuchen. Die DMX-Anweisung ruft Daten aus dem Knoten für Randstatistik des neuronalen Netzwerkmodells ab. Die Abfrage umfasst das FLATTENED-Schlüsselwort, da die statistischen Eingabeattributwerte, die von Interesse sind, in einer geschachtelten Tabelle, NODE_DISTRIBUTION, gespeichert sind. Wenn der Abfrageanbieter hierarchische Rowsets unterstützt, muss das FLATTENED-Schlüsselwort nicht verwendet werden.

SELECT FLATTENED MODEL_CATALOG, MODEL_NAME, 
(    SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE,
     [SUPPORT], [PROBABILITY], VALUETYPE 
     FROM NODE_DISTRIBUTION
) AS t
FROM [Call Center Default NN].CONTENT
WHERE NODE_TYPE = 24
HinweisHinweis

Der Name der geschachtelten Tabellenspalten [SUPPORT] und [PROBABILITY] muss in Klammern eingeschlossen werden, um ihn von dem reservierten Schlüsselwort mit dem gleichen Namen unterscheiden zu können.

Beispielergebnisse:

MODEL_CATALOG

MODEL_NAME

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.SUPPORT

t.PROBABILITY

t.VALUETYPE

AdventureWorksDW 2008

Call Center NN

Average Time Per Issue

Missing

0

0

1

AdventureWorksDW 2008

Call Center NN

Average Time Per Issue

< 64.7094100096

11

0.407407407

5

Eine Definition der Bedeutung der Spalten im Schemarowset im Kontext eines neuronalen Netzwerks finden Sie unter Miningmodellinhalt von neuronalen Netzwerkmodellen (Analysis Services – Data Mining).

Zurück zum Anfang

Beispielabfrage 2: Abrufen von weiteren Modellmetadaten aus dem Schemarowset

Durch Abfragen des Data Mining-Schemarowsets können Sie nach denselben Informationen suchen, die bei einer DMX-Inhaltsabfrage zurückgegeben werden. Das Schemarowset stellt jedoch weitere Spalten bereit. Die folgende Beispielabfrage gibt das jeweilige Datum zurück, an dem das Modell erstellt, geändert und zuletzt verarbeitet wurde. Die Abfrage gibt außerdem die vorhersagbaren Spalten zurück, die nicht einfach im Modellinhalt verfügbar sind, und die Parameter, die zum Erstellen des Modells verwendet wurden. Diese Informationen können zum Dokumentieren des Modells nützlich sein.

SELECT MODEL_NAME, DATE_CREATED, LAST_PROCESSED, PREDICTION_ENTITY, MINING_PARAMETERS 
from $system.DMSCHEMA_MINING_MODELS
WHERE MODEL_NAME = 'Call Center Default NN'

Beispielergebnisse:

MODEL_NAME

Call Center Default NN

DATE_CREATED

1/10/2008 5:07:38 PM

LAST_PROCESSED

1/10/2008 5:24:02 PM

PREDICTION_ENTITY

Average Time Per Issue

Grade Of Service

Number Of Orders

MINING_PARAMETERS

HOLDOUT_PERCENTAGE=30, HOLDOUT_SEED=0

MAXIMUM_INPUT_ATTRIBUTES=255, MAXIMUM_OUTPUT_ATTRIBUTES=255

MAXIMUM_STATES=100, SAMPLE_SIZE=10000, HIDDEN_NODE_RATIO=4

Zurück zum Anfang

Beispielabfrage 3: Abrufen von Eingabeattributen für das Modell

Sie können die eingegebenen Attribut-Wert-Paare, die zum Erstellen des Modells verwendet wurden, durch Abfragen der untergeordneten Knoten (NODE_TYPE = 20) der Eingabeebene (NODE_TYPE = 18) abrufen. Die folgende Abfrage gibt eine Liste von Eingabeattributen aus den Knotenbeschreibungen zurück.

SELECT NODE_DESCRIPTION
FROM [Call Center Default NN].CONTENT
WHERE NODE_TYPE = 2

Beispielergebnisse:

NODE_DESCRIPTION

Average Time Per Issue=64.7094100096 - 77.4002099712

Day Of Week=Fri.

Level 1 Operators

Es werden nur einige repräsentative Zeilen der Ergebnisse angezeigt. Sie können allerdings erkennen, dass NODE_DESCRIPTION abhängig vom Datentyp des Eingabeattributs leicht abweichende Informationen liefert.

  • Wenn es sich bei dem Attribut um einen diskreten oder diskretisierten Wert handelt, werden das Attribut und entweder der entsprechende Wert oder der diskretisierte Bereich zurückgegeben.

  • Wenn das Attribut ein kontinuierlicher numerischer Datentyp ist, enthält NODE_DESCRIPTION nur den Attributnamen. Sie können jedoch die geschachtelte NODE_DISTRIBUTION-Tabelle abrufen, um den Mittelwert zu erhalten, oder NODE_RULE zurückgeben, um den Mindest- und Höchstwert des numerischen Bereichs zu erhalten.

Die folgende Abfrage zeigt, wie mit der geschachtelten NODE_DISTRIBUTION-Tabelle die Attribute in einer Spalte und ihre entsprechenden Werte in einer anderen Spalte zurückgegeben werden. Für kontinuierliche Attribute wird der Wert des Attributs durch ihren Mittelwert dargestellt.

SELECT FLATTENED 
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE
FROM NODE_DISTRIBUTION) as t
FROM [Call Center Default NN -- Predict Service and Orders].CONTENT
WHERE NODE_TYPE = 21

Beispielergebnisse:

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

Average Time Per Issue

64.7094100096 - 77.4002099712

Day Of Week

Fri.

Level 1 Operators

3.2962962962963

Der Mindest- und Höchstwert des Bereichs werden in der NODE_RULE-Spalte gespeichert und als XML-Fragment dargestellt, wie im folgenden Beispiel gezeigt:

<NormContinuous field="Level 1 Operators">  
  <LinearNorm orig="2.83967303681711" norm="-1" />  
  <LinearNorm orig="3.75291955577548" norm="1" />  
</NormContinuous>  

Zurück zum Anfang

Beispielabfrage 4: Abrufen von Gewichtungen von der verborgenen Ebene

Der Modellinhalt eines neuronalen Netzwerkmodells ist so strukturiert, dass das Abrufen von Details zu jedem beliebigen Knoten im Netzwerk erleichtert wird. Darüber hinaus bieten die ID-Nummern der Knoten hilfreiche Informationen zur Identifizierung des Beziehungsgefüges der Knotentypen.

Die folgende Abfrage demonstriert, wie die unter einem bestimmten Knoten der verborgenen Ebene gespeicherten Koeffizienten abgerufen werden. Die verborgene Ebene besteht aus einem Planerknoten (NODE_TYPE = 19), der nur Metadaten enthält, sowie mehreren untergeordneten Knoten (NODE_TYPE = 22), die Koeffizienten für verschiedene Kombinationen aus Attributen und Werten enthalten. Diese Abfrage gibt nur die Koeffizientenknoten zurück.

SELECT FLATTENED TOP 1 NODE_UNIQUE_NAME, 
(SELECT ATTRIBUTE_NAME, ATTRIBUTE_VALUE, VALUETYPE
FROM NODE_DISTRIBUTION) as t
FROM  [Call Center Default NN -- Predict Service and Orders].CONTENT
WHERE NODE_TYPE = 22
AND [PARENT_UNIQUE_NAME] = '40000000200000000' FROM [Call Center Default NN].CONTENT

Beispielergebnisse:

NODE_UNIQUE_NAME

t.ATTRIBUTE_NAME

t.ATTRIBUTE_VALUE

t.VALUETYPE

70000000200000000

6000000000000000a

-0.178616518

7

70000000200000000

6000000000000000b

-0.267561918

7

70000000200000000

6000000000000000c

0.11069497

7

70000000200000000

6000000000000000d

0.123757712

7

70000000200000000

6000000000000000e

0.294565343

7

70000000200000000

6000000000000000f

0.22245318

7

70000000200000000

  

0.188805045

7

Die hier aufgeführten Teilergebnisse zeigen, wie der verborgene Knoten durch den Inhalt des neuronalen Netzwerkmodells mit den Eingabeknoten in Beziehung gesetzt wird.

  • Die eindeutigen Namen der Knoten in der verborgenen Ebene beginnen immer mit 70000000.

  • Die eindeutigen Namen der Knoten in der Eingabeebene beginnen immer mit 60000000.

Diese Ergebnisse zeigen, dass an den Knoten mit der ID 70000000200000000 sechs verschiedene Koeffizienten (VALUETYPE = 7) übergeben wurden. Die Werte der Koeffizienten sind in der ATTRIBUTE_VALUE-Spalte enthalten. Mit der Knoten-ID in der ATTRIBUTE_NAME-Spalte können Sie genau bestimmen, für welches Eingabeattribut der Koeffizient bestimmt ist. Die Knoten-ID 6000000000000000a verweist beispielsweise auf das Eingabeattribut und den Wert Day of Week = 'Tue.' . Mit der Knoten-ID können Sie eine Abfrage erstellen, oder Sie können den Knoten mit dem Microsoft Generic Content Tree Viewer durchsuchen.

Entsprechend können Sie bei Abfrage der NODE_DISTRIBUTION-Tabelle der Knoten in der Ausgabeebene (NODE_TYPE = 23) die Koeffizienten für jeden Ausgabewert sehen. In der Ausgabeebene verweisen die Zeiger jedoch zurück auf die Knoten der verborgenen Ebene. Weitere Informationen finden Sie unter Miningmodellinhalt von neuronalen Netzwerkmodellen (Analysis Services – Data Mining).

Zurück zum Anfang

Treffen von Vorhersagen mit einem neuronalen Netzwerkmodell

Der Microsoft Neural Network-Algorithmus unterstützt sowohl Klassifikation als auch Regression. Sie können Vorhersagefunktionen mit diesen Modellen verwenden, um neue Daten zur Verfügung zu stellen und entweder SINGLETON- oder Batchvorhersagen zu erstellen. 

Beispielabfrage 5: Erstellen einer SINGLETON-Vorhersage

Die einfachste Methode, eine Vorhersageabfrage in einem neuronalen Netzwerkmodell zu erstellen, stellt der Generator für Vorhersageabfragen dar. Dieser ist auf der Registerkarte Miningvorhersage des Data Mining Designer sowohl in SQL Server Management Studio als auch in Business Intelligence Development Studio verfügbar. Sie können das Modell im Microsoft-Viewer für neuronale Netzwerke durchsuchen, um Attribute von Interesse zu filtern und Trends anzuzeigen. Anschließend können Sie auf die Registerkarte Miningvorhersage wechseln, um eine Abfrage zu erstellen und neue Werte für diese Trends vorherzusagen.

Sie können beispielsweise das Call-Center-Modell durchsuchen, um Korrelationen zwischen der Anzahl der Bestellungen und anderen Attributen anzuzeigen. Öffnen Sie dazu das Modell im Viewer, und wählen Sie für Eingabe die Option <Alle> aus. Wählen Sie anschließend für Ausgabe die Option Anzahl der Bestellungen aus. Wählen Sie für Wert 1 den Bereich aus, der die meisten Bestellungen repräsentiert, und für Wert 2 den Bereich, der die wenigsten Bestellungen darstellt. Sie können dann auf einen Blick alle Attribute sehen, die das Modell mit der Anzahl der Bestellungen korreliert.

Durch Durchsuchen der Ergebnisse im Viewer können Sie feststellen, dass einige Tage der Woche niedrige Bestellzahlen aufweisen und dass ein Anstieg der Anzahl der Operatoren anscheinend mit höheren Umsätzen korreliert. Anschließend können Sie mit einer Vorhersageabfrage für das Modell eine "Was-wäre-wenn"-Hpyothese testen und untersuchen, ob eine Erhöhung der Anzahl von Operatoren auf Ebene 2 an einem Tag mit niedriger Bestellmenge zu einem Anstieg der Bestellungen führen würde. Erstellen Sie dazu beispielsweise folgende Abfrage:

SELECT Predict([Call Center Default NN].[Number of Orders]) AS [Predicted Orders],
PredictProbability([Call Center Default NN].[Number of Orders]) AS [Probability]
FROM [Call Center Default NN]
NATURAL PREDICTION JOIN 
(SELECT 'Tue.' AS [Day of Week]
13 AS [Level 2 Operators] AS t

Beispielergebnisse:

Predicted Orders

Probability

364

0.9532…

Die vorhergesagte Absatzmenge ist größer als der aktuelle Absatzbereich für Dienstag, und die Wahrscheinlichkeit für die Vorhersage ist sehr hoch. Sie können jedoch auch mehrere Vorhersagen erstellen, indem Sie einen Batchprozess verwenden, um verschiedene Hypothesen für das Modell zu testen.

HinweisHinweis

Die Data Mining Add-Ins für Excel 2007 stellen einen Logistic Regression-Assistenten bereit, mit dem komplexe Fragen einfach beantwortet werden können, beispielsweise wie viele Operatoren auf Ebene 2 benötigt werden, um die Dienstqualität für die Zielebene einer bestimmten Schicht zu verbessern. Die Data Mining-Add-Ins können kostenlos heruntergeladen werden und enthalten Assistenten, die auf dem neuronalen Netzwerk und/oder den Logistic Regression-Algorithmen basieren. Weitere Informationen über die Add-Ins finden Sie auf der Website Data Mining-Add-ins für Office 2007.

Zurück zum Anfang

Liste der Vorhersagefunktionen

Alle Algorithmen von Microsoft unterstützen einen gemeinsamen Funktionssatz. Es gibt keine für den Microsoft Neural Network-Algorithmus spezifischen Vorhersagefunktionen. Der Algorithmus unterstützt jedoch die Funktionen, die in der folgenden Tabelle aufgeführt sind.

IsDescendant (DMX)

PredictStdev (DMX)

PredictAdjustedProbability (DMX)

PredictSupport (DMX)

Hinweis Für neuronale Netzwerk- und logistische Regressionsmodelle wird ein einzelner Wert zurückgegeben, der die Größe des Trainingssatzes für das gesamte Modell repräsentiert.

PredictHistogram (DMX)

PredictVariance (DMX)

PredictProbability (DMX)

  

Eine Liste der Funktionen, die allen Algorithmen von Microsoft gemein sind, finden Sie unter Algorithmusreferenz (Analysis Services - Data Mining). Die Syntax bestimmter Funktionen finden Sie unter Data Mining-Erweiterungen (DMX) - Funktionsreferenz.