set_feature_lengths_class_train_dataT_set_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainData (Operator)

Name

set_feature_lengths_class_train_dataT_set_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainData — Definiert benachbarte Spalten in Trainingsdaten als zusammengehörige Merkmalsgruppen.

Signatur

set_feature_lengths_class_train_data( : : ClassTrainDataHandle, SubFeatureLength, Names : )

Herror T_set_feature_lengths_class_train_data(const Htuple ClassTrainDataHandle, const Htuple SubFeatureLength, const Htuple Names)

void SetFeatureLengthsClassTrainData(const HTuple& ClassTrainDataHandle, const HTuple& SubFeatureLength, const HTuple& Names)

void HClassTrainData::SetFeatureLengthsClassTrainData(const HTuple& SubFeatureLength, const HTuple& Names) const

static void HOperatorSet.SetFeatureLengthsClassTrainData(HTuple classTrainDataHandle, HTuple subFeatureLength, HTuple names)

void HClassTrainData.SetFeatureLengthsClassTrainData(HTuple subFeatureLength, HTuple names)

Beschreibung

set_feature_lengths_class_train_dataset_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainData definiert benachbarte Spalten in den Trainingsdaten ClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleclassTrainDataHandle als zusammengehörige Merkmale. Es können dafür die Längen der jeweiligen Merkmalsgruppen mit SubFeatureLengthSubFeatureLengthSubFeatureLengthSubFeatureLengthsubFeatureLength angegeben werden. Das bedeutet, dass die Summe aller Werte in SubFeatureLengthSubFeatureLengthSubFeatureLengthSubFeatureLengthsubFeatureLength der Anzahl der Spalten in den Trainingsdaten entsprechen muss. Die Anzahl der Spalten wird beim Aufruf von create_class_train_datacreate_class_train_dataCreateClassTrainDataCreateClassTrainDataCreateClassTrainData im Parameter NumDim angegeben. Zusätzlich zu den Gruppierungen kann für jede Gruppierung ein Name in NamesNamesNamesNamesnames 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_datacreate_class_train_dataCreateClassTrainDataCreateClassTrainDataCreateClassTrainData mit NumDim =n+m=w aufrufen. Anschließend sollte set_feature_lengths_class_train_dataset_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainData aufgerufen werden mit den Werten [n,m] für SubFeatureLengthSubFeatureLengthSubFeatureLengthSubFeatureLengthsubFeatureLength und [Name1, Name2] in NamesNamesNamesNamesnames. 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_dataadd_sample_class_train_dataAddSampleClassTrainDataAddSampleClassTrainDataAddSampleClassTrainData hinzugefügt werden. Dann können Operatoren wie select_feature_set_knnselect_feature_set_knnSelectFeatureSetKnnSelectFeatureSetKnnSelectFeatureSetKnn oder select_feature_set_svmselect_feature_set_svmSelectFeatureSetSvmSelectFeatureSetSvmSelectFeatureSetSvm 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.

Ausführungsinformationen

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.

Parameter

ClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleclassTrainDataHandle (input_control, Zustand wird modifiziert)  class_train_data HClassTrainData, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Trainingsdaten.

SubFeatureLengthSubFeatureLengthSubFeatureLengthSubFeatureLengthsubFeatureLength (input_control)  number-array HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Längen den Merkmalsgruppen.

NamesNamesNamesNamesnames (input_control)  string-array HTupleHTupleHtuple (string) (string) (HString) (char*)

Namen der Merkmalsgruppen.

Beispiel (HDevelop)

* 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
* ...

Ergebnis

Sind die Parameterwerte korrekt, dann liefert set_feature_lengths_class_train_dataset_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainData den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_class_train_datacreate_class_train_dataCreateClassTrainDataCreateClassTrainDataCreateClassTrainData, add_sample_class_train_dataadd_sample_class_train_dataAddSampleClassTrainDataAddSampleClassTrainDataAddSampleClassTrainData

Nachfolger

select_feature_set_knnselect_feature_set_knnSelectFeatureSetKnnSelectFeatureSetKnnSelectFeatureSetKnn, select_feature_set_svmselect_feature_set_svmSelectFeatureSetSvmSelectFeatureSetSvmSelectFeatureSetSvm, select_feature_set_mlpselect_feature_set_mlpSelectFeatureSetMlpSelectFeatureSetMlpSelectFeatureSetMlp, select_feature_set_gmmselect_feature_set_gmmSelectFeatureSetGmmSelectFeatureSetGmmSelectFeatureSetGmm

Modul

Foundation