DecisionStump Class |
Namespace: Accord.MachineLearning.Boosting.Learners
The DecisionStump type exposes the following members.
Name | Description | |
---|---|---|
DecisionStump |
Initializes a new instance of the DecisionStump class.
| |
DecisionStump(Int32) | Obsolete.
Initializes a new instance of the DecisionStump class.
|
Name | Description | |
---|---|---|
Comparison |
Gets or sets the comparison to be performed.
| |
Index |
Gets the index of the attribute which this
classifier will use to compare against
Threshold.
| |
NumberOfClasses |
Gets the number of classes expected and recognized by the classifier.
(Inherited from ClassifierBaseTInput, TClasses.) | |
NumberOfInputs |
Gets the number of inputs accepted by the model.
(Inherited from TransformBaseTInput, TOutput.) | |
NumberOfOutputs |
Gets the number of outputs generated by the model.
(Inherited from TransformBaseTInput, TOutput.) | |
Sign | Obsolete.
Gets the direction of the comparison
(if greater than or less than).
| |
Threshold |
Gets the decision threshold for this linear classifier.
|
Name | Description | |
---|---|---|
Compute | Obsolete.
Computes the output class label for a given input.
| |
Decide(TInput) |
Computes class-label decisions for a given set of input vectors.
(Inherited from ClassifierBaseTInput, TClasses.) | |
Decide(Double) |
Computes a class-label decision for a given input.
(Overrides ClassifierBaseTInput, TClassesDecide(TInput).) | |
Decide(TInput, Boolean) |
Computes class-label decisions for the given input.
(Inherited from BinaryClassifierBaseTInput.) | |
Decide(TInput, TClasses) |
Computes a class-label decision for a given input.
(Inherited from ClassifierBaseTInput, TClasses.) | |
Equals | Determines whether the specified object is equal to the current object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Learn | Obsolete.
Teaches the stump classifier to recognize
the class labels of the given input samples.
| |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ToMulticlass |
Views this instance as a multi-class classifier,
giving access to more advanced methods, such as the prediction
of integer labels.
(Inherited from BinaryClassifierBaseTInput.) | |
ToMultilabel |
Views this instance as a multi-label classifier,
giving access to more advanced methods, such as the prediction
of one-hot vectors.
(Inherited from BinaryClassifierBaseTInput.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) | |
Transform(TInput) |
Applies the transformation to an input, producing an associated output.
(Inherited from ClassifierBaseTInput, TClasses.) | |
Transform(TInput) |
Applies the transformation to a set of input vectors,
producing an associated set of output vectors.
(Inherited from TransformBaseTInput, TOutput.) | |
Transform(TInput, Boolean) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Double) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Int32) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Boolean) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Double) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Double) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Int32) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, Int32) |
Applies the transformation to an input, producing an associated output.
(Inherited from BinaryClassifierBaseTInput.) | |
Transform(TInput, TClasses) |
Applies the transformation to an input, producing an associated output.
(Inherited from ClassifierBaseTInput, TClasses.) |
Name | Description | |
---|---|---|
HasMethod |
Checks whether an object implements a method with the given name.
(Defined by ExtensionMethods.) | |
IsEqual |
Compares two objects for equality, performing an elementwise
comparison if the elements are vectors or matrices.
(Defined by Matrix.) | |
To(Type) | Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) | |
ToT | Overloaded.
Converts an object into another type, irrespective of whether
the conversion can be done at compile time or not. This can be
used to convert generic types to numeric types during runtime.
(Defined by ExtensionMethods.) |
The DecisionStump classifier is mostly intended to be used as a weak classifier in the context of an AdaBoostTModel learning algorithm. Please refer to the AdaBoostTModel class for more examples on using the classifier in this scenario. A simple example is shown below:
// Let's say we want to classify the following 2-dimensional // data samples into 2 possible classes, either true or false: double[][] inputs = { new double[] { 10, 42 }, new double[] { 162, 96 }, new double[] { 125, 20 }, new double[] { 96, 6 }, new double[] { 2, 73 }, new double[] { 52, 51 }, new double[] { 71, 49 }, }; // And those are their associated class labels bool[] outputs = { false, false, true, true, false, false, true }; // We can create an AdaBoost algorithm as: var learner = new AdaBoost<DecisionStump>() { Learner = (p) => new ThresholdLearning(), // Train until: MaxIterations = 5, Tolerance = 1e-3 }; // Now, we can use the Learn method to learn a boosted classifier Boost<DecisionStump> classifier = learner.Learn(inputs, outputs); // And we can test its performance using (error should be 0): ConfusionMatrix cm = ConfusionMatrix.Estimate(classifier, inputs, outputs); double error = cm.Error; // should be 0.0 double acc = cm.Accuracy; // should be 1.0 double kappa = cm.Kappa; // should be 1.0 // And compute a decision for a single data point using: bool y = classifier.Decide(inputs[0]); // result should false
It is also possible to use the DecisionStump as a standalone classifier through the ThresholdLearning algorithm. An example is given below:
// Let's say we want to classify the following 2-dimensional // data samples into 2 possible classes, either true or false: double[][] inputs = { new double[] { 10, 42 }, new double[] { 162, 96 }, new double[] { 125, 20 }, new double[] { 96, 6 }, new double[] { 2, 73 }, new double[] { 52, 51 }, new double[] { 71, 49 }, }; // And those are their associated class labels bool[] outputs = { false, false, true, true, false, false, true }; // We create a learning algorithm as: var teacher = new ThresholdLearning(); // Now, we can use the Learn method to learn a classifier: DecisionStump classifier = teacher.Learn(inputs, outputs); // Now, we can check how good it is using a confusion matrix: var cm = ConfusionMatrix.Estimate(classifier, inputs, outputs); double error = cm.Error; // should be ~0.14 // We can also compute the model outputs for new samples using bool y = classifier.Decide(new double[] { 71, 48 }); // should be false