set_feature_lengths_class_train_data
— Definiert benachbarte Spalten in Trainingsdaten als zusammengehörige
Merkmalsgruppen.
set_feature_lengths_class_train_data( : : ClassTrainDataHandle, SubFeatureLength, Names : )
set_feature_lengths_class_train_data
definiert benachbarte
Spalten in den Trainingsdaten ClassTrainDataHandle
als zusammengehörige Merkmale. Es können dafür die Längen der jeweiligen
Merkmalsgruppen mit SubFeatureLength
angegeben werden.
Das bedeutet, dass die Summe aller Werte in SubFeatureLength
der Anzahl der Spalten in den Trainingsdaten entsprechen muss. Die Anzahl
der Spalten wird beim Aufruf von create_class_train_data
im
Parameter NumDim
angegeben. Zusätzlich zu den Gruppierungen
kann für jede Gruppierung ein Name in Names
angegeben werden.
Beispielsweise kann dieser Operator nützlich sein um das folgende
Problem zu beschreiben: Es sind zwei verschiedene Datenquellen
für ein bestimmtes Klassifikationsproblem verfügbar,
beide liefern pro Beobachtung einen Vektor einer bestimmten Länge, z.B.
liefert die erste Datenquelle Vektoren der Länge n und die andere
Datenquelle Vektoren der Länge m.
Um zu entscheiden, welche der Datenquellen nützlich für das
Klassifikationsproblem ist, sollte man Trainingsdaten dieser zwei Quellen
folgendermaßen erzeugen: man sollte
create_class_train_data
mit
NumDim
=n+m=w aufrufen. Anschließend
sollte set_feature_lengths_class_train_data
aufgerufen werden mit
den Werten [n,m] für SubFeatureLength
und
[Name1, Name2] in Names
.
Anschließend können den Trainingsdaten zugeordnete Daten aus
beiden Datenquellen (Länge des Merkmalsvektors: w, zuerst das erste
Feature der Länge n dann das zweite Feature der Länge m)
mit Hilfe von add_sample_class_train_data
hinzugefügt werden.
Dann können Operatoren wie select_feature_set_knn
oder
select_feature_set_svm
aufgerufen werden.
Das Ergebnis dieser Operatoren wäre dann entweder
[Name1], falls die erste Datenquelle alleine ausreicht
[Name2], falls die zweite Datenquelle alleine ausreicht,
oder [Name1, Name2] wenn beide Datenquellen
benötigt werden.
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.
ClassTrainDataHandle
(input_control, Zustand wird modifiziert) class_train_data →
(handle)
Trainingsdaten.
SubFeatureLength
(input_control) number-array →
(integer)
Längen den Merkmalsgruppen.
Names
(input_control) string-array →
(string)
Namen der Merkmalsgruppen.
* Find out which of the two features distinguishes two Classes NameFeature1 := 'Good Feature' NameFeature2 := 'Bad Feature' LengthFeature1 := 3 LengthFeature2 := 2 * Create training data create_class_train_data (LengthFeature1+LengthFeature2,\ ClassTrainDataHandle) * Define the features which are in the training data set_feature_lengths_class_train_data (ClassTrainDataHandle, [LengthFeature1,\ LengthFeature2], [NameFeature1, NameFeature2]) * Add training data * |Feat1| |Feat2| add_sample_class_train_data (ClassTrainDataHandle, 'row', [1,1,1, 2,1 ], 0) add_sample_class_train_data (ClassTrainDataHandle, 'row', [2,2,2, 2,1 ], 1) add_sample_class_train_data (ClassTrainDataHandle, 'row', [1,1,1, 3,4 ], 0) add_sample_class_train_data (ClassTrainDataHandle, 'row', [2,2,2, 3,4 ], 1) * Add more data * ... * Select the better feature select_feature_set_knn (ClassTrainDataHandle, 'greedy', [], [], KNNHandle,\ SelectedFeature, Score) classify_class_knn (KNNHandle, [1,1,1], Result, Rating) classify_class_knn (KNNHandle, [2,2,2], Result, Rating) * Use the classifier * ...
Sind die Parameterwerte korrekt, dann liefert
set_feature_lengths_class_train_data
den Wert 2 (H_MSG_TRUE).
Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.
create_class_train_data
,
add_sample_class_train_data
select_feature_set_knn
,
select_feature_set_svm
,
select_feature_set_mlp
,
select_feature_set_gmm
Foundation