Neuronale Beispiele für Netzwerkmodellabfragen

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.

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 erläutert, wie Sie Abfragen für Modelle erstellen, 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 zu einem 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 Miningmodell mit dem Namen , das Sie im Data Mining-Lernprogramm für Fortgeschrittene Call Center Default NNerstellen. Das Modell verwendet Daten von einem Callcenter, um mögliche Korrelationen zwischen Personalbesetzung, Anzahl der Anrufe, Bestellungen und Problemen zu untersuchen. Mit der DMX-Anweisung werden Daten vom Knoten für Randstatistik des neuronalen Netzwerkmodells abgerufen. 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  

Hinweis

Der Name der geschachtelten Tabellenspalten SUPPORT und PROBABILITY muss in Klammern eingeschlossen werden, um ihn vom 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
Adventure Works DW Multidimensional 2012 Call Center NN Average Time Per Issue Missing 0 0 1
Adventure Works DW Multidimensional 2012 Call Center NN Average Time Per Issue < 64.7094100096 11 0.407407407 5

Eine Definition, was die Spalten im Schemarowset im Kontext eines neuronalen Netzwerkmodells bedeuten, finden Sie unter Miningmodellinhalt für neuronale Netzwerkmodelle (Analysis Services – Data Mining).

Beispielabfrage 2: Abrufen von weiteren Modellmetadaten aus dem Schemarowset

Durch Abfragen des Data Mining-Schemarowsets erhalten Sie dieselben Informationen wie bei einer DMX-Inhaltsabfrage. 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, sowie 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:

Zeile Metadaten
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

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 sowie entweder der zugehörige 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 seinen 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>    

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 von Knoten auf der verborgenen Ebene beginnen immer mit 70000000.

  • Die eindeutigen Namen von Knoten auf 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 Viewerdurchsuchen.

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 für neuronale Netzwerkmodelle (Analysis Services – Data Mining).

Verwenden eines neuronalen Netzwerkmodells zum Erstellen von Vorhersagen

Der Microsoft Neural Network-Algorithmus unterstützt sowohl Klassifizierung 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 Möglichkeit zum Erstellen einer Vorhersageabfrage für ein neuronales Netzwerkmodell besteht darin, den Vorhersageabfrage-Generator zu verwenden, der auf der Registerkarte Miningvorhersage von Data Mining Designer sowohl in SQL Server Management Studio als auch in SQL Server Data Tools verfügbar ist. Sie können das Modell im Microsoft Neural Network Viewer durchsuchen, um interessante Attribute zu filtern und Trends anzuzeigen, und dann zur Registerkarte Miningvorhersage wechseln, um eine Abfrage zu erstellen und neue Werte für diese Trends vorherzusagen.

Sie können beispielsweise das Callcentermodell 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 Eingabedie Option Alle> aus<. Wählen Sie anschließend für Ausgabedie Option Anzahl der Bestellungenaus. Wählen Sie für Wert 1den Bereich aus, der die meisten Bestellungen repräsentiert, und für Wert 2den 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.

Hinweis

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 finden Sie unter Data Mining-Add-Ins für Office 2007 .

Liste der Vorhersagefunktionen

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

Vorhersagefunktion Verbrauch
IsDescendant (DMX) Bestimmt, ob ein Knoten ein untergeordnetes Element eines anderen Knotens im Diagramm für neuronale Netzwerke ist.
PredictAdjustedProbability (DMX) Gibt die gewichtete Wahrscheinlichkeit zurück.
PredictHistogram (DMX) Gibt eine Tabelle mit Werten zurück, die sich auf den aktuellen vorhergesagten Wert beziehen.
PredictVariance (DMX) Gibt die Varianz für den vorhergesagten Wert zurück.
PredictProbability (DMX) Gibt die Wahrscheinlichkeit für den vorhergesagten Wert zurück.
PredictStdev (DMX) Gibt die Standardabweichung für den vorhergesagten Wert zurück.
PredictSupport (DMX) Für neuronale Netzwerk- und logistische Regressionsmodelle wird ein einzelner Wert zurückgegeben, der die Größe des Trainingssatzes für das gesamte Modell darstellt.

Eine Liste der Funktionen, die allen Microsoft-Algorithmen gemeinsam sind, finden Sie unter Algorithmusreferenz (Analysis Services – Data Mining). Informationen zur Syntax bestimmter Funktionen finden Sie unter Data Mining-Erweiterungen (DMX)-Funktionsreferenz.

Weitere Informationen

Microsoft Neural Network Algorithm
Technische Referenz für den Microsoft Neural Network-Algorithmus
Miningmodellinhalt von neuronalen Netzwerkmodellen (Analysis Services - Data Mining)
Lektion 5: Erstellen von neuronalen Netzwerk- und logistischen Regressionsmodellen (Data Mining-Lernprogramm für Fortgeschrittene)