NaiveBayesLearning Class |
Namespace: Accord.MachineLearning.Bayes
[SerializableAttribute] public class NaiveBayesLearning : NaiveBayesLearningBase<NaiveBayes, GeneralDiscreteDistribution, int, IndependentOptions<GeneralDiscreteOptions>, GeneralDiscreteOptions>, ISupervisedLearning<NaiveBayes, int[], double[]>, ISupervisedLearning<NaiveBayes, int[], int>
The NaiveBayesLearning type exposes the following members.
Name | Description | |
---|---|---|
NaiveBayesLearning | Initializes a new instance of the NaiveBayesLearning class |
Name | Description | |
---|---|---|
Distribution |
Gets or sets the distribution creation function. This function can
be used to specify how the initial distributions of the model should
be created. By default, this function attempts to call the empty
constructor of the distribution using Activator.CreateInstance().
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Empirical |
Gets or sets whether the class priors should be estimated
from the data.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Model |
Gets or sets the model being learned.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Options |
Gets or sets the fitting options to use when
estimating the class-specific distributions.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
ParallelOptions |
Gets or sets the parallelization options for this algorithm.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Token |
Gets or sets a cancellation token that can be used to
stop the learning algorithm while it is running.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) |
Name | Description | |
---|---|---|
Create |
Creates an instance of the model to be learned.
(Overrides NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptionsCreate(TInput, Int32).) | |
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.) | |
Fit |
Fits one of the distributions in the naive bayes model.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions, TInnerOptions.) | |
GetHashCode | Serves as the default hash function. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
Learn(TInput, Double, Double) |
Learns a model that can map the given inputs to the given outputs.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Learn(TInput, Int32, Double) |
Learns a model that can map the given inputs to the given outputs.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
Learn(TInput, Int32, Double) |
Learns a model that can map the given inputs to the given outputs.
(Inherited from NaiveBayesLearningBaseTModel, TDistribution, TInput, TOptions.) | |
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.) |
For basic examples on how to learn a Naive Bayes algorithm, please see NaiveBayes page. The following examples show how to set more specialized learning settings for discrete models.
// To test the effectiveness of the Laplace rule for when // an example of a symbol is not present in the training set, // lets create dataset where the second column could contain // values 0, 1 or 2 but only actually contains examples with // containing 1 and 2: int[][] inputs = { // input output new [] { 0, 1 }, // 0 new [] { 0, 2 }, // 0 new [] { 0, 1 }, // 0 new [] { 1, 2 }, // 1 new [] { 0, 2 }, // 1 new [] { 0, 2 }, // 1 new [] { 1, 1 }, // 2 new [] { 0, 1 }, // 2 new [] { 1, 1 }, // 2 }; int[] outputs = // those are the class labels { 0, 0, 0, 1, 1, 1, 2, 2, 2, }; // Since the data is not enough to determine which symbols we are // expecting in our model, we will have to specify the model by // hand. The first column can assume 2 different values, whereas // the third column can assume 3: var bayes = new NaiveBayes(classes: 3, symbols: new[] { 2, 3 }); // Now we can create a learning algorithm var learning = new NaiveBayesLearning() { Model = bayes }; // Enable the use of the Laplace rule learning.Options.InnerOption.UseLaplaceRule = true; // Learn the Naive Bayes model learning.Learn(inputs, outputs); // Estimate a sample with 0 in the second col int answer = bayes.Decide(new int[] { 0, 1 });