learn_class_boxT_learn_class_boxLearnClassBoxLearnClassBox (Operator)


learn_class_boxT_learn_class_boxLearnClassBoxLearnClassBox — Train the classifier.


learn_class_boxlearn_class_boxLearnClassBoxLearnClassBoxLearnClassBox is obsolete and is only provided for reasons of backward compatibility. New applications should use the MLP, SVM, KNN or GMM operators instead.


learn_class_box( : : ClassifHandle, Features, Class : )

Herror T_learn_class_box(const Htuple ClassifHandle, const Htuple Features, const Htuple Class)

void LearnClassBox(const HTuple& ClassifHandle, const HTuple& Features, const HTuple& Class)

void HClassBox::LearnClassBox(const HTuple& Features, Hlong Class) const

static void HOperatorSet.LearnClassBox(HTuple classifHandle, HTuple features, HTuple classVal)

void HClassBox.LearnClassBox(HTuple features, int classVal)


FeaturesFeaturesFeaturesFeaturesfeatures is a tuple of any floating point numbers or integers (attributes) which has to be assigned to the class ClassClassClassClassclassVal. This class is specified by an integer. You may use the operator enquire_class_boxenquire_class_boxEnquireClassBoxEnquireClassBoxEnquireClassBox later to find the most probable class for any array (=tupel). The algorithm tries to describe the set of arrays of one class by hyper cuboids in the feature space. On demand you may even create several cuboids per class. Hence it is possible to learn disjunct concepts, too. I.e such concepts which split in several “cluster” of points in the feature space. The data structure is hidden to the user and only accessible with such operators which are described in this chapter.

Note that if a class consists of disjunct sub-classes that would lead to a splitting of the respective hyper cuboid, the training samples should be in random order with respect to the sub-classes. Otherwise, the splitting of the hyper cuboid will be sub-optimal.

It is possible to specify attributes as unknown by indicating the symbol '*' instead of a number. If you specify n values, then all following values, i.e. the attributes n+1 until 'max', are automatically supposed to be undefined.

You may call the operators learn_class_boxlearn_class_boxLearnClassBoxLearnClassBoxLearnClassBox and enquire_class_boxenquire_class_boxEnquireClassBoxEnquireClassBoxEnquireClassBox alternately, so that it is possible to classify already in the phase of learning. By this means you could see when a satisfying behavior had been reached.

The classifier is going to be bigger using further training. This means, that it is not advisable to continue training after reaching a satisfactory behavior.

Execution Information

This operator modifies the state of the following input parameter:

During execution of this operator, access to the value of this parameter must be synchronized if it is used across multiple threads.


ClassifHandleClassifHandleClassifHandleClassifHandleclassifHandle (input_control, state is modified)  class_box HClassBox, HTupleHTupleHtuple (handle) (IntPtr) (HHandle) (handle)

Handle of the classifier.

FeaturesFeaturesFeaturesFeaturesfeatures (input_control)  number-array HTupleHTupleHtuple (real / integer / string) (double / int / long / string) (double / Hlong / HString) (double / Hlong / char*)

Array of attributes to learn.

Default value: [1.0,1.5,2.0]

ClassClassClassClassclassVal (input_control)  integer HTupleHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

Class to which the array has to be assigned.

Default value: 1


learn_class_boxlearn_class_boxLearnClassBoxLearnClassBoxLearnClassBox returns 2 (H_MSG_TRUE) for a normal case. An exception is raised if there are memory allocation problems. The number of classes is constrained. If this limit is passed, an exception is raised, too.

Possible Predecessors

create_class_boxcreate_class_boxCreateClassBoxCreateClassBoxCreateClassBox, enquire_class_boxenquire_class_boxEnquireClassBoxEnquireClassBoxEnquireClassBox

Possible Successors

test_sampset_boxtest_sampset_boxTestSampsetBoxTestSampsetBoxTestSampsetBox, enquire_class_boxenquire_class_boxEnquireClassBoxEnquireClassBoxEnquireClassBox, write_class_boxwrite_class_boxWriteClassBoxWriteClassBoxWriteClassBox, close_class_boxclose_class_boxCloseClassBoxCloseClassBoxCloseClassBox, clear_sampsetclear_sampsetClearSampsetClearSampsetClearSampset

See also

test_sampset_boxtest_sampset_boxTestSampsetBoxTestSampsetBoxTestSampsetBox, close_class_boxclose_class_boxCloseClassBoxCloseClassBoxCloseClassBox, create_class_boxcreate_class_boxCreateClassBoxCreateClassBoxCreateClassBox, enquire_class_boxenquire_class_boxEnquireClassBoxEnquireClassBoxEnquireClassBox, learn_sampset_boxlearn_sampset_boxLearnSampsetBoxLearnSampsetBoxLearnSampsetBox