Information Technology Reference
In-Depth Information
die Anzahl der Felder pro Datensatz,
fieldsPerRec
. Die nächste Gruppe besteht aus
einer Reihe von Parametern für die Netzarchitektur. Dazu gehören
numlnputs
,
num-
Rows
und
numCols
, mit denen die Anzahl der Einheiten in der Eingabeschicht und die
Dimensionen der zweidimensionalen Ausgabeschicht festgelegt werden,
numUnits
ist
die Summe dieser beiden Schichten und
numWeights
die Gesamtzahl aller Gewichte
im Netz. Bei dieser Implementierungsvariante werden die Steuerparameter
initialL-
earnRate
,
fmalLearnRate
und die aktuelle Lernrate
learnRate
verwendet. Der
Netzmodus (
mode
) ist entweder
train(0)
oder
test(1)
. Der Parameter
sigma
wird
für die Berechnung der Nachbarschaftsfunktion verwendet. Die nächste Gruppe besteht aus
Daten- und Fehler-Arrays. Die wichtigsten Arrays sind
activations
und
gewichte
,
die den aktuellen Zustand des Netzes bestimmen. Das Array
distanz
ist ein vorberechne-
tes Raster, das die Abstände zwischen den Einheiten auf dem zweidimensionalen Ausgabe-
gitter definiert. Das Array
distanz
wird in der Methode
adjustNeighborhood()
eingesetzt. Ein neuronales Netz mit Kohonen-Karte wird mit der Methode
createNet-
work()
definiert. Diese Methode kommt anstelle eines Konstruktors zum Einsatz, so dass
die Netzarchitektur verändert werden kann, ohne ein neues Objekt erzeugen zu müssen.
Die Methode
createNetwork()
nimmt drei Parameter an: die Zahl der Eingaben, die
Zahl der Zeilen und die Spaltenanzahl. Einige nützliche Elemente werden berechnet, die
Steuerparameter initialisiert und alle Aktivierungen und Gewichte den Arrays zugeordnet.
Die Methode
computeDistanz()
initialisiert das Abstands-Array. Dann werden die
Methoden
adjustNeighborhood()
zur Festsetzung der anfänglichen Lernrate und
reset()
zur Initialisierung des Gewichts-Arrays aufgerufen. Zur Verarbeitung eines
Eingabemusters werden gleich drei Methoden verwendet. Die Methode
readInputs()
nimmt einen Datensatz aus der Datenmenge und kopiert die Eingabewerte in die Akti-
vierungen (
activations
) der Einheiten auf der Eingabeschicht. Da Kohonen-Karten
selbstorganisiert lernen, gibt es keine Zielwerte. Die Methode
computeOutputs()
be-
rechnet die euklidische Distanz zwischen dem Eingabevektor und den Gewichtsvektoren.
Die Ausgabeeinheit mit der geringsten Aktivierung (die dem Eingabevektor am nächsten
liegt) wird mit der Methode
computeWinner()
zum Sieger (
winner
) erklärt. Die
Methode
adjustNeighborhood()
berechnet im Verlauf des Trainings zwei wichtige
Werte, nämlich die Lernrate und die Nachbarschaftsausdehnung
sigma
. Zuerst wird eine
Verhältniszahl
ratio
berechnet, die angibt, wie weit das Training fortgeschritten ist. Da-
bei wird
ratio
mit der Zeit größer. Dann wird die aktuelle Lernrate
learnRate
berech-
net, die mit der Zeit abnimmt. Und schließlich wird der Nachbarschaftswert
sigmn
ermit-
telt. Wenn der Sieger feststeht, werden die Gewichte angepasst. In der Methode
adjust-
Gewichte()
werden die Nachbarschaft, der Abstand zur Siegereinheit und die Lernrate
eingesetzt, um die Gewichte der Einheiten in der Nachbarschaft des Siegers anzupassen.
Die Implementierungsvariante des
Entscheidungsbaums
, die diskrete Variablen ver-
wendet, besteht aus zwei Hauptklassen:
Knoten,
die einen Knoten im Entscheidungs-
baum
DecisionTree
darstellt, und
Entscheidungsbaum
für den Entscheidungs-
baum selbst. Knoten besitzt einen Namen
namen
oder einen Vektor mit Verknüpfungen
zu anderen Knoten im Entscheidungsbaum, einen Verweis auf den Elternknoten und einen