train_class_knn
— Erstellt die Suchbäume eines k-NN-Klassifikators.
train_class_knn( : : KNNHandle, GenParamName, GenParamValue : )
train_class_knn
erstellt die Suchbäume
eines k-Nearest-Neighbor-Klassifikators.
Die Anzahl der Suchbäume kann in den generischen Parametern
GenParamName
und GenParamValue
über
'num_trees' festgelegt werden. Der
Standardwert ist hierbei 4, welcher üblicherweise zu ausreichend
guten Ergebnissen führt. Eine höhere Anzahl der Bäume führt zu
längeren Laufzeiten und zu höherem Speicherverbrauch, aber zu tendenziell
genaueren Ergebnissen, speziell bei höheren Dimensionen der Merkmalsvektoren.
Nach einem erfolgten Training können weitere Daten mit dem Operator
add_sample_class_knn
hinzugefügt werden. Die neu hinzugefügten
Daten beeinflussen die Klassifikation erst, wenn train_class_knn
erneut aufgerufen wurde.
Die automatische Merkmals-Normalisierung kann aktiviert werden, indem der
Eingabeparameter GenParamName
den Wert 'normalization'
und GenParamValue
an gleicher Stelle 'true'
enthält. Die Merkmalsvektoren werden in jeder Dimension einzeln
normalisiert. Für jede Dimension wird der Mittelwert und die
Standardabweichung anhand der übermittelten Trainingsdaten ermittelt.
Alle Merkmalsvektoren werden dann dadurch normalisiert, dass in jeder
Dimension der Mittelwert abgezogen und durch die Standardabweichung geteilt
wird. Solch eine Normalisierung bewirkt, dass die Merkmalsvektoren einen
Mittelwert von Null und eine Varianz von 1 nach der Normalisierung besitzen.
Falls die Standardabweichung in einer Dimension den Wert Null aufweisen
sollte, so wird nur der Mittelwert abgezogen und nicht durch Null dividiert.
Man beachte, dass eine Standardabweichung von Null in einer Dimension
bedeutet, dass diese Dimension zu dem Klassifikator keine relevante
Information beisteuert und man diese Dimension weglassen könnte.
Die Automatische Merkmals-Normalisierung bewirkt, dass die gespeicherten
Trainingsdaten verändert werden. Diese Veränderungen lassen sich aber ohne
Verluste rückgängig machen, indem der Operator train_class_knn
erneut
aufgerufen wird, wobei 'normalization' auf 'false' gesetzt werden muss. Falls
Normalisierung eingesetzt wird, interpretiert der Operator
classify_class_knn
die ihm übergebenen Merkmalsvektoren als
nicht normalisiert und es wird intern eine Normalisierung durchgeführt, die
durch den letzten Aufruf von train_class_knn
definiert ist.
Dieser Operator modifiziert den Zustand des folgenden Eingabeparameters:
Während der Ausführung dieses Operators muss der Zugriff auf den Wert dieses Parameters synchronisiert werden, wenn er über mehrere Threads hinweg verwendet wird.
KNNHandle
(input_control, Zustand wird modifiziert) class_knn →
(handle)
Handle des k-NN-Klassifikators.
GenParamName
(input_control) string-array →
(string)
Namen der generischen Parameter, die für das Training des k-NN-Klassifikators angepasst werden können.
Defaultwert: []
Werteliste: 'normalization' , 'num_trees'
GenParamValue
(input_control) number-array →
(integer / string / real)
Werte der generischen Parameter, die für das Training des k-NN-Klassifikators angepasst werden können.
Defaultwert: []
Wertevorschläge: 4, 'false' , 'true'
Sind die Eingabeparameter korrekt, dann liefert
train_class_knn
den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine
Fehlerbehandlung durchgeführt.
add_sample_class_knn
,
read_class_knn
create_class_knn
,
read_class_knn
Marius Muja, David G. Lowe: „Fast Approximate Nearest Neighbors with Automatic Algorithm Configuration“; International Conference on Computer Vision Theory and Applications (VISAPP 09); 2009.
Foundation