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 NumDim 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 NumDim =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 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