set_feature_lengths_class_train_dataT_set_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataset_feature_lengths_class_train_data (Operator)

Name

set_feature_lengths_class_train_dataT_set_feature_lengths_class_train_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataset_feature_lengths_class_train_data — 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)

def set_feature_lengths_class_train_data(class_train_data_handle: HHandle, sub_feature_length: Sequence[int], names: Sequence[str]) -> None

Beschreibung

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

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

ClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleClassTrainDataHandleclassTrainDataHandleclass_train_data_handle (input_control, Zustand wird modifiziert)  class_train_data HClassTrainData, HTupleHHandleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Trainingsdaten.

SubFeatureLengthSubFeatureLengthSubFeatureLengthSubFeatureLengthsubFeatureLengthsub_feature_length (input_control)  number-array HTupleSequence[int]HTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Längen den Merkmalsgruppen.

NamesNamesNamesNamesnamesnames (input_control)  string-array HTupleSequence[str]HTupleHtuple (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_dataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataSetFeatureLengthsClassTrainDataset_feature_lengths_class_train_data den Wert 2 (H_MSG_TRUE). Gegebenenfalls wird eine Fehlerbehandlung durchgeführt.

Vorgänger

create_class_train_datacreate_class_train_dataCreateClassTrainDataCreateClassTrainDataCreateClassTrainDatacreate_class_train_data, add_sample_class_train_dataadd_sample_class_train_dataAddSampleClassTrainDataAddSampleClassTrainDataAddSampleClassTrainDataadd_sample_class_train_data

Nachfolger

select_feature_set_knnselect_feature_set_knnSelectFeatureSetKnnSelectFeatureSetKnnSelectFeatureSetKnnselect_feature_set_knn, select_feature_set_svmselect_feature_set_svmSelectFeatureSetSvmSelectFeatureSetSvmSelectFeatureSetSvmselect_feature_set_svm, select_feature_set_mlpselect_feature_set_mlpSelectFeatureSetMlpSelectFeatureSetMlpSelectFeatureSetMlpselect_feature_set_mlp, select_feature_set_gmmselect_feature_set_gmmSelectFeatureSetGmmSelectFeatureSetGmmSelectFeatureSetGmmselect_feature_set_gmm

Modul

Foundation