Microsoft Neural Network-Algorithmus (SSAS)
In Microsoft SQL Server 2005 Analysis Services (SSAS) erstellt der Microsoft Neural Network-Algorithmus Klassifikations- und Regressionsminingmodelle, indem ein mehrschichtiges Perzeptronnetzwerk von Neuronen erstellt wird. Ähnlich wie der Microsoft Decision Trees-Algorithmus berechnet der Microsoft Neural Network-Algorithmus Wahrscheinlichkeiten für jeden möglichen Status des Eingabeattributs zu jedem angegebenen Status des vorhersagbaren Attributs. Sie können später diese Wahrscheinlichkeiten verwenden, um auf Basis der Eingabeattribute die Ausgabe des vorhersagbaren Attributs vorherzusagen.
Beispiel
The Der Microsoft Neural Network-Algorithmus ist hilfreich zum Analysieren komplexer Eingabedaten, z. B. die eines Produktions- oder Handelsprozesses oder von Geschäftsproblemen. Für diese Daten sind zwar bedeutende Trainingsdatenmengen verfügbar, jedoch können für diese Daten Regeln mithilfe anderer Algorithmen nicht einfach abgeleitet werden.
Das Verwenden des Microsoft Neural Network-Algorithmus wird in folgenden Szenarien empfohlen:
- Marketing- und Werbeanalysen, z. B. zur Erfolgsermittlung einer Werbung per E-Mail oder einer Radiowerbekampagne.
- Vorhersagen von Lagerbewegungen, Kursschwankungen oder von anderen hoch liquiden Finanzinformationen aus Vergangenheitsdaten.
- Analysieren von Produktions- und Gewerbeprozessen.
Funktionsweise des Algorithmus
Der Microsoft Neural Network-Algorithmus verwendet ein mehrschichtiges Perzeptronnetzwerk, das auch als Netzwerk von Deltaregeln mit Rückpropagierung bezeichnet wird. Es besteht aus bis zu drei Neuronen- oder Perzeptronenebenen. Zu diesen Ebenen gehört eine Eingabeebene, eine optionale verborgene Ebene und eine Ausgabeebene. In einem mehrschichtigen Perzeptronnetzwerk empfängt jedes Neuron mindestens eine Eingabe bzw. erstellt mindestens eine Ausgabe. Bei jeder Ausgabe handelt es sich um eine einfache nichtlineare Funktion der Summe der Eingaben im Neuron. Eingaben werden nur von Knoten der Eingabeebene an die Knoten der verborgenen Ebene und schließlich an die Ausgabeebene weitergegeben; zwischen den Neuronen innerhalb einer Ebene sind keine Verbindungen vorhanden. (Eingaben werden später von Knoten der Eingabeebene an die der Ausgabeebene weitergegeben, wenn keine verborgene Ebene eingeschlossen ist.) Eine detaillierte Erläuterung von mehrschichtigen Perzeptronnetzwerken geht über den Rahmen dieser Dokumentation hinaus.
Ein Miningmodell, das mit dem Microsoft Neural Network-Algorithmus erstellt wurde, kann mehrere Netzwerke enthalten, abhängig von der Anzahl an Spalten, die für die Eingabe und Vorhersage verwendet wird, und von der Spaltenanzahl, die nur für die Vorhersage verwendet wird. Die Anzahl von Netzwerken in einem einzelnen Miningmodell hängt von der Anzahl der in den Eingabe- und vorhersagbaren Spalten enthaltenen Status, die das Miningmodell verwendet, ab.
In einem Netzwerk, das mit dem Microsoft Neural Network-Algorithmus erstellt wurde, gibt es drei Neuronentypen:
- Eingabeneuronen
Eingabeneuronen stellen Eingabeattributwerte des Data Mining-Modells dar. Bei diskreten Eingabeattributen stellt ein Eingabeneuron in der Regel einen einzelnen Status des Eingabeattributs dar. Hierzu gehören auch fehlende Werte. Ein binäres Eingabeattribut erstellt z. B. einen Eingabeknoten, der einen fehlenden oder vorhandenen Status beschreibt, und gibt somit an, ob für dieses Attribut ein Wert vorhanden ist. Eine boolesche Spalte, die als Eingabeattribut verwendet wird, generiert drei Eingabeneuronen: ein Neuron für einen TRUE-Wert, ein Neuron für einen FALSE-Wert und ein Neuron für einen fehlenden oder vorhandenen Status. Ein diskretes Eingabeattribut mit mehr als zwei Status generiert ein Eingabeneuron für jeden Status sowie ein Eingabeneuron für einen fehlenden oder vorhandenen Status. Ein kontinuierliches Eingabeattribut generiert zwei Eingabeneuronen: ein Neuron für einen fehlenden oder vorhandenen Status und ein Neuron für den Wert des kontinuierlichen Attributs selbst. Mit Eingabeneuronen werden einem oder mehreren verborgenen Neuronen Eingaben zur Verfügung gestellt. - Verborgene Neuronen
Verborgene Neuronen empfangen die von Eingabeneuronen bereitgestellten Eingaben und stellen Ausgabeneuronen die empfangenen Ausgaben zur Verfügung. - Ausgabeneuronen
Ausgabeneuronen stellen Ausgabeattributwerte des Data Mining-Modells dar. Bei diskreten Eingabeattributen stellt ein Ausgabeneuron in der Regel einen einzelnen Status eines vorhersagbaren Attributs dar. Hierzu gehören auch fehlende Werte. Ein binäres vorhersagbares Attribut erstellt z. B. einen Ausgabeknoten, der einen fehlenden oder vorhandenen Status beschreibt, und gibt somit an, ob für dieses Attribut ein Wert vorhanden ist. Eine boolesche Spalte, die als vorhersagbares Attribut verwendet wird, generiert drei Ausgabeneuronen: ein Neuron für einen TRUE-Wert, ein Neuron für einen FALSE-Wert und ein Neuron für einen fehlenden oder vorhandenen Status. Ein diskretes vorhersagbares Attribut, das über mehr als zwei Status verfügt, generiert ein Ausgabeneuron für jeden Status sowie ein Ausgabeneuron für einen fehlenden oder vorhandenen Status. Kontinuierliche vorhersagbare Spalten generieren zwei Ausgabeneuronen: ein Neuron für einen fehlenden oder vorhandenen Status und ein Neuron für den Wert der kontinuierlichen Spalte selbst. Wenn beim Überarbeiten des vorhersagbaren Spaltensatzes mehr als 500 Ausgabeneuronen generiert werden, generiert Analysis Services im Miningmodell ein Netzwerk zur Darstellung der zusätzlichen Ausgabeneuronen.
Ein Neuron empfängt mehrere Eingaben: Mit Eingabeneuronen empfängt ein Neuron Eingaben aus den ursprünglichen Daten, mit verborgenen und Ausgabeneuronen empfängt ein Neuron die Ausgabe anderer Neuronen des neuronalen Netzwerks. Eingaben bilden die Beziehungen zwischen Neuronen, und die Beziehungen dienen als Analysepfad für einen bestimmten Satz von Fällen.
Jeder Eingabe ist der Wert Gewichtung zugeordnet. Dieser beschreibt die Relevanz oder Wichtigkeit einer bestimmten Eingabe an das verborgene oder Ausgabeneuron. Je größer die Gewichtung ist, die einer Eingabe zugeordnet ist, umso relevanter oder wichtiger ist der Wert dieser Eingabe für das empfangende Neuron, wenn der Algorithmus bestimmt, ob diese Eingabe einen bestimmten Fall erfolgreich klassifiziert. Beachten Sie, dass Gewichtungen negativ sein können, was bedeutet, dass ein bestimmtes Neuron durch die Eingabe eher deaktiviert als aktiviert werden kann. Der Wert der Eingabe wird durch die Gewichtung vervielfacht, um die Eingabe für ein bestimmtes Neuron zu betonen. (Bei negativen Gewichtungen wird der Wert der Eingabe durch die Gewichtungsminderung vervielfacht.)
Dementsprechend ist jedem Neuron die einfache nichtlineare Aktivierungsfunktion zugeordnet. Diese beschreibt die Relevanz oder die Wichtigkeit eines bestimmten Neurons für die Ebene eines neuronalen Netzwerks. Als Aktivierungsfunktion wird bei verborgenen Neuronen eine hypertangentiale Funktion verwendet, bei Ausgabeneuronen dagegen eine sigmoidale Funktion. Bei beiden Funktionen handelt es sich um nicht nichtlineare, kontinuierliche Funktionen, die im neuronalen Netzwerk die Modellierung von nichtlinearen Beziehungen zwischen Eingabe- und Ausgabeneuronen ermöglichen.
Trainieren von neuronalen Netzwerken
Das Trainieren eines Data Mining-Modells, das den Microsoft Neural Network-Algorithmus verwendet, setzt sich aus mehreren Schritten zusammen: Diese Schritte hängen stark von den Werten ab, die Sie für die im Algorithmus verfügbaren Parameter festlegen.
Der Algorithmus führt zunächst eine Auswertung aus und extrahiert die Trainingsdaten aus der Datenquelle. Ein bestimmter Prozentsatz der Trainingsdaten, die als auszunehmende Daten bezeichnet werden, sind für die Messung der Genauigkeit der Struktur des resultierenden Modells reserviert. Während des Trainingsprozesses wird das Modell nach jeder Iteration der Trainingsdaten mit den auszunehmenden Daten ausgewertet. Wenn die Genauigkeit des Modells nicht mehr zunimmt, wird der Trainingsprozess beendet. Die Werte der SAMPLE_SIZE- und HOLDOUT_PERCENTAGE-Parameter werden zur Bestimmung der Anzahl von Fällen für die Stichprobe der Trainingsdaten verwendet. Des Weiteren werden sie zur Bestimmung der Anzahl von Fällen verwendet, die für die auszunehmenden Daten reserviert werden. Der Wert des HOLDOUT_SEED-Parameters wird verwendet, um die einzelnen Fälle zufällig zu bestimmen, die für die auszunehmen Daten reserviert werden.
Der Algorithmus bestimmt als Nächstes die Anzahl und die Komplexität der Netzwerke, die das Miningmodell unterstützt. Wenn das Miningmodell mindestens ein Attribut enthält, das nur für die Vorhersage verwendet wird, erstellt der Algorithmus ein einzelnes Netzwerk, in dem jedes dieser Attribute dargestellt wird. Wenn das Miningmodell mindestens ein Attribut enthält, das sowohl für die Eingabe als auch für die Vorhersage verwendet wird, erstellt der Algorithmusanbieter ein Netzwerk für jedes dieser Attribute. Wenn die Anzahl der Eingabe- oder vorhersagbaren Attribute größer ist als der Wert des MAXIMUM_INPUT_ATTRIBUTES-Parameters oder des MAXIMUM_OUTPUT_ATTRIBUTES-Parameters, wird für die Featureauswahl ein entsprechender Algorithmus verwendet, um die Komplexität der im Miningmodell eingeschlossenen Netzwerke zu reduzieren. Mit der Featureauswahl wird die Anzahl der Eingabe- und vorhersagbaren Attribute reduziert. Dabei werden die Attribute beibehalten, die für das Modell statistisch am bedeutendsten sind.
Bei Eingabe- und vorhersagbaren Attributen mit diskreten Werten stellt jedes Eingabe- oder Ausgabeneuron jeweils einen einzelnen Status dar. Bei Eingabe- und vorhersagbaren Attributen mit kontinuierlichen Attributen stellt jedes Eingabe- oder Ausgabeneuron jeweils den Bereich und die Verteilung der Werte für das Attribut dar. Die maximale Anzahl der Status, die in beiden Fällen unterstützt wird, hängt vom Wert des MAXIMUM_STATES-Algorithmusparameters ab. Wenn die Anzahl der Status eines bestimmten Attributs den Wert des MAXIMUM_STATES-Algorithmusparameters übersteigt, werden die gebräuchlichsten und relevantesten Status bis zum Maximum für dieses Attribut ausgewählt. Die restlichen Status werden als fehlende Werte für die Analyse gruppiert.
Der Algorithmus verwendet dann beim Bestimmen der ersten Anzahl an Neuronen, die zum Erstellen der verborgenen Ebene verwendet werden, den Wert des HIDDEN_NODE_RATIO-Parameters. Sie können den HIDDEN_NODE_RATIO-Parameter auf 0 festlegen, um zu verhindern, dass in den Netzwerken eine verborgene Ebene erstellt wird, die der Algorithmus für das Miningmodell generiert. Somit wird sichergestellt, dass das neuronale Netzwerk als logistische Regression behandelt wird.
Der Algorithmusanbieter führt zum selben Zeitpunkt die iterative Auswertung der Gewichtung aller Eingaben im gesamten Netzwerk aus. Dabei vergleicht er den zuvor reservierten Trainingsdatensatz mit den tatsächlich bekannten Werten aller Fälle der auszunehmenden Daten mit der Vorhersage des Netzwerks in einem Prozess, der als Batchlernvorgang bezeichnet wird. Nach der Auswertung des gesamten Trainingsdatensatzes überprüft der Algorithmus für jedes Neuron den vorhergesagten Wert mit dem tatsächlichen Wert. Der Algorithmus berechnet bei Bedarf den Fehlergrad und passt die Gewichtung, die den Eingaben dieses Neurons zugeordnet sind, an. Dabei arbeitet der Algorithmus rückwärts von den Ausgabeneuronen ausgehend zu den Eingabeneuronen mithilfe eines Prozesses, der als Rückpropagierung bezeichnet wird. Der Algorithmus wiederholt dann diesen Prozess für den gesamten Trainingsdatensatz. Da der Algorithmus viele Gewichtungen und Ausgabeneuronen unterstützen kann, wird der Algorithmus der konjugierten Gradienten verwendet, um den Trainingsprozess beim Zuweisen und Auswerten der Eingabegewichtungen zu führen. Eine Erläuterung des Algorithmus der konjugierten Gradienten geht über den Rahmen dieser Dokumentation hinaus.
Verwenden des Algorithmus
Ein neuronales Netzwerkmodell muss eine Schlüsselspalte, mindestens eine Eingabespalte und mindestens eine vorhersagbare Spalte enthalten.
Der Microsoft Neural Network-Algorithmus unterstützt bestimmte Inhaltstypen für Eingabespalten und für vorhersagbare Spalten sowie Modellierungsflags, die in der folgenden Tabelle aufgelistet sind.
Inhaltstypen für Eingabespalten |
Continuous, Cyclical, Discrete, Discretized, Key, Table und Ordered |
Inhaltstypen für vorhersagbare Spalten |
Continuous, Cyclical, Discrete, Discretized und Ordered |
Modellierungsflags |
MODEL_EXISTENCE_ONLY und NOT NULL |
Verteilungsflags |
Normal, Uniform und Log Normal |
Alle Microsoft-Algorithmen unterstützen gemeinsam eine Reihe von Funktionen. Allerdings unterstützt der Microsoft Neural Network-Algorithmus zusätzliche Funktionen, die in der folgenden Tabelle aufgelistet sind.
|
Eine Liste der Funktionen, die von allen Microsoft-Algorithmen gemeinsam verwendet werden, finden Sie unter Data Mining-Algorithmen. Weitere Informationen zum Verwenden dieser Funktionen finden Sie unter Data Mining-Erweiterungen (DMX) - Funktionsreferenz.
Modelle, die mithilfe des Microsoft Neural Network-Algorithmus erstellt wurden, unterstützen keinen Drillthrough bzw. keine Data Mining-Dimensionen, da die Struktur der Knoten im Miningmodell den zugrunde liegenden Daten nicht unbedingt direkt entsprechen.
Der Microsoft Neural Network-Algorithmus unterstützt mehrere Parameter, die Auswirkungen auf die Leistung und die Genauigkeit des resultierenden Miningmodells haben. In der folgenden Tabelle werden die einzelnen Parameter beschrieben.
Parameter | Beschreibung |
---|---|
HIDDEN_NODE_RATIO |
Legt das Verhältnis von verborgenen Neuronen zu Eingabe- und Ausgabeneuronen fest. Die folgende Formel bestimmt die erste Anzahl von Neuronen in der verborgenen Ebene: HIDDEN_NODE_RATIO * SQRT(Gesamtzahl der Eingabeneuronen * Gesamtzahl der Ausgabeneuronen) Der Standardwert ist 4.0. |
HOLDOUT_PERCENTAGE |
Gibt den Prozentsatz von Fällen in den Trainingsdaten an, die zum Berechnen des Fehlers für auszunehmende Daten verwendet werden. Dieser dient als Teil des Beendigungskriteriums beim Trainieren des Miningmodells. Der Standardwert ist 30. |
HOLDOUT_SEED |
Gibt eine Zahl an, die als Ausgangswert für den Pseudozufallszahlen-Generator zum zufälligen Generieren von auszunehmenden Daten verwendet wird. Wenn dieser Parameter auf 0 festgelegt ist, generiert der Algorithmus den Ausgangswert basierend auf dem Namen des Miningmodells. So wird sichergestellt, dass der Inhalt bei erneuter Verarbeitung des Modells gleich bleibt. Der Standardwert ist 0. |
MAXIMUM_INPUT_ATTRIBUTES |
Gibt die maximale Anzahl von Eingabeattributen an, die an den Algorithmus übergeben werden kann, bevor die Featureauswahl verwendet wird. Wenn dieser Wert auf 0 festgelegt wird, ist die Featureauswahl für Eingabeattribute deaktiviert. Der Standardwert ist 255. |
MAXIMUM_OUTPUT_ATTRIBUTES |
Gibt die maximale Anzahl von Ausgabeattributen an, die an den Algorithmus übergeben werden kann, bevor die Featureauswahl verwendet wird. Wenn dieser Wert auf 0 festgelegt wird, ist die Featureauswahl für Ausgabeattribute deaktiviert. Der Standardwert ist 255. |
MAXIMUM_STATES |
Gibt die maximale Anzahl an diskreten Status pro Attribut an, die vom Algorithmus unterstützt wird. Wenn die Anzahl der Status eines bestimmten Attributs größer ist als die für den Parameter festgelegte Statusanzahl, verwendet der Algorithmus für dieses Attribut die gebräuchlichsten Status und behandelt die restlichen Status als fehlend. Der Standardwert ist 100. |
SAMPLE_SIZE |
Gibt die Anzahl von Fällen an, die zum Trainieren des Modells verwendet werden. Der Algorithmus verwendet entweder diese Anzahl oder den Prozentsatz aller Fälle, die – wie im HOLDOUT_PERCENTAGE-Parameter angegeben – nicht in den auszunehmenden Daten eingeschlossen sind, je nachdem, welcher Wert kleiner ist. Mit anderen Worten, wenn der HOLDOUT_PERCENTAGE-Parameter auf 30 festgelegt ist, verwendet der Algorithmus entweder den Wert dieses Parameters oder einen Wert, der bis zu 70 % gleich der Gesamtzahl der Fälle ist, je nachdem, welcher Wert kleiner ist. Der Standardwert ist 10000. |
Siehe auch
Konzepte
Data Mining-Algorithmen
Featureauswahl beim Data Mining
Verwenden der Data Mining-Tools
Anzeigen eines Miningmodells mit dem Microsoft Viewer für neuronale Netzwerke