BootstrapTModel, TInput, TOutput Class |
Namespace: Accord.MachineLearning.Performance
public class Bootstrap<TModel, TInput, TOutput> : BaseSplitSetValidation<BootstrapResult<TModel, TInput, TOutput>, TModel, TInput, TOutput> where TModel : class, Object, ITransform<TInput, TOutput>
The BootstrapTModel, TInput, TOutput type exposes the following members.
Name | Description | |
---|---|---|
BootstrapTModel, TInput, TOutput |
Initializes a new instance of the Bootstrap class.
|
Name | Description | |
---|---|---|
B |
Gets or sets the number B of bootstrap samplings
to be drawn from the population dataset.
| |
DefaultValue |
Gets or sets a value to be used as the Loss in case the model throws
an exception during learning. Default is null (exceptions will not be ignored).
(Inherited from BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutput.) | |
Fit |
Gets or sets a LearnNewModelTLearner, TInput, TOutput, TModel function that can be used to create
new machine learning models using the current
learning algorithm.
(Inherited from BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutput.) | |
Learner |
Gets or sets a CreateLearnerFromSubsetTLearner, TInput, TOutput function
that can be used to create a TModel from a subset of the learning dataset.
(Inherited from BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutput.) | |
Loss |
Gets or sets a ComputeLossTOutput, TInfo function that can
be used to measure how far the actual model predictions were from the expected ground-truth.
(Inherited from BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutput.) | |
NumberOfSubsamples |
Gets or sets the number of samples to be drawn in each subsample. If
set to zero, all samples in the entire dataset will be selected.
| |
ParallelOptions |
Gets or sets the parallelization options for this algorithm.
(Inherited from ParallelLearningBase.) | |
SubSampleIndices |
Gets the bootstrap samples drawn from the population dataset as indices.
| |
Token |
Gets or sets a cancellation token that can be used
to cancel the algorithm while it is running.
(Inherited from ParallelLearningBase.) |
Name | Description | |
---|---|---|
CreateSubSampleIndices |
Draws the bootstrap samples from the population.
| |
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.) | |
GetSubsample |
Gets a subset of the training and testing sets.
| |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Learn |
Learns a model that can map the given inputs to the given outputs.
(Overrides BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutputLearn(TInput, TOutput, Double).) | |
LearnSubset |
Learns and evaluates a model in a single subset of the data.
(Inherited from BaseSplitSetValidationTResult, TModel, TLearner, TInput, TOutput.) | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ToString | Returns a string that represents the current object. (Inherited from Object.) |
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.) |
// Ensure results are reproducible Accord.Math.Random.Generator.Seed = 0; // This is a sample code on how to use Cross-Validation // to assess the performance of Support Vector Machines. // Consider the example binary data. We will be trying // to learn a XOR problem and see how well does SVMs // perform on this data. double[][] data = { new double[] { -1, -1 }, new double[] { 1, -1 }, new double[] { -1, 1 }, new double[] { 1, 1 }, new double[] { -1, -1 }, new double[] { 1, -1 }, new double[] { -1, 1 }, new double[] { 1, 1 }, new double[] { -1, -1 }, new double[] { 1, -1 }, new double[] { -1, 1 }, new double[] { 1, 1 }, new double[] { -1, -1 }, new double[] { 1, -1 }, new double[] { -1, 1 }, new double[] { 1, 1 }, }; int[] xor = // result of xor for the sample input data { -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, -1, 1, 1, -1, }; // Create a new Bootstrap algorithm passing the data set size and the number of folds var bootstrap = new Bootstrap<SupportVectorMachine<Linear, double[]>, double[]>() { B = 1000, // Use 1000 resamplings when doing bootstrap Learner = (s) => new SequentialMinimalOptimization<Linear, double[]>() { Complexity = 100 }, Loss = (expected, actual, p) => new ZeroOneLoss(expected).Loss(actual), Stratify = false, // do not use stratification DefaultValue = 1.0, // value to use as error if the algorithm throws an exception }; bootstrap.ParallelOptions.MaxDegreeOfParallelism = 1; // Compute the bootstrap var result = bootstrap.Learn(data, xor); // Finally, access the measured performance. double trainingErrors = result.Training.Mean; double validationErrors = result.Validation.Mean; double estimate632 = result.Estimate;