Method for (RefLink[LearnDistribution, paclet:ref/LearnDistribution]).

Models the probability density using a multivariate normal (Gaussian) distribution.

"Multinormal" models the probability density of a numeric space using a multivariate normal distribution as in (RefLink[MultinormalDistribution, paclet:ref/MultinormalDistribution]).

The probability density for vector x is proportional to (e^(-(1/2) (x-μ).(Σ^(-1)).(x-μ))), where Σ and μ are learned parameters. If n is the size of the input numeric vector, Σ is an n×n symmetric positive definite matrix called covariance, and μ is a size-n vector.

The following options can be given:

Possible settings for "CovarianceType" include:

When "CovarianceType"->"Full" and "IntrinsicDimension"->k, with k<n, a linear dimensionality reduction is performed on the data. A full k×k covariance matrix is used to model data in the reduced space (which can be interpreted as the "signal" part), while a spherical covariance matrix is used to model the n-k remaining dimensions (which can be interpreted as the "noise" part).

The value of "IntrinsicDimension" is ignored when "CovarianceType"->"Diagonal" or "CovarianceType"->"Spherical".

(RefLink[Information, paclet:ref/Information])[(RefLink[LearnedDistribution, paclet:ref/LearnedDistribution])[…],"MethodOption"] can be used to extract the values of options chosen by the automation system.

(RefLink[LearnDistribution, paclet:ref/LearnDistribution])[…,(RefLink[FeatureExtractor, paclet:ref/FeatureExtractor])->"Minimal"] can be used to remove most preprocessing and directly access the method.

OpenersPrimaryExamplesSection(Spacer1)Examples  (5)

OpenersExampleSection0(Spacer1)Basic Examples  (3)

Train a "Multinormal" distribution on a numeric dataset:

ld=LearnDistribution[{1.2,2.1,3.5,4.3},Method->"Multinormal"]

Look at the distribution (RefLink[Information, paclet:ref/Information]):

Information[ld]

Obtain options information:

Information[ld,"MethodOption"]

Obtain an option value directly:

Information[ld,"CovarianceType"]

Compute the probability density for a new example:

PDF[ld,1.3]

Plot the PDF along with the training data:

Show[Plot[PDF[ld,x],{x,-2,8},Filling->Bottom],NumberLinePlot[{1.2,2.1,3.5,4.3},Spacings->0, PlotStyle->Red]]

Generate and visualize new samples:

Histogram[RandomVariate[ld,10000],50]

Train a "Multinormal" distribution on a two-dimensional dataset:

iris=ExampleData[{"MachineLearning","FisherIris"},"Data"][[All,1,{1,3}]];

ld=LearnDistribution[iris,Method->"Multinormal"]

Plot the PDF along with the training data:

Show[ContourPlot[PDF[ld,{x,y}],{x,4,8},{y,1,7},PlotRange->All,Contours->10],ListPlot[iris, PlotStyle->Red]]

Use (RefLink[SynthesizeMissingValues, paclet:ref/SynthesizeMissingValues]) to impute missing values using the learned distribution:

SynthesizeMissingValues[ld,{5.5,Missing[]}]

Histogram[Table[Last@SynthesizeMissingValues[ld,{5.5,Missing[]}],1000]]

Train a "Multinormal" distribution on a nominal dataset:

ld=LearnDistribution[{"A","A","B","B","B"},Method->"Multinormal"]

Because of the necessary preprocessing, the PDF computation is not exact:

PDF[ld,"A"]

PDF[ld,"A"]

Use (RefLink[ComputeUncertainty, paclet:ref/ComputeUncertainty]) to obtain the uncertainty on the result:

PDF[ld,"A",ComputeUncertainty->True]

Increase (RefLink[MaxIterations, paclet:ref/MaxIterations]) to improve the estimation precision:

PDF[ld,"A",MaxIterations->1000,ComputeUncertainty->True]

OpenersExampleSection1(Spacer1)Options  (2)

OpenersExampleSubsection0(Spacer1)"CovarianceType"  (1)

Train a "Multinormal" distribution with a "Full" covariance:

iris=ExampleData[{"MachineLearning","FisherIris"},"Data"][[All,1,{1,3}]];

ld=LearnDistribution[iris,Method->{"Multinormal","CovarianceType"->"Full"}]

Evaluate the PDF of the distribution at a specific point:

PDF[ld,{6,4}]

Visualize the PDF obtained after training a multinormal with covariance types "Full", "Diagonal" and "Spherical":

plots=(ld=LearnDistribution[iris,Method->{"Multinormal","CovarianceType"->#},FeatureExtractor->"Minimal"];
Show[ContourPlot[PDF[ld,{x,y}],{x,2,10},{y,0,8},PlotRange->All,Contours->10,PlotLabel->#<>" covariance"],ListPlot[iris, PlotStyle->Red],ImageSize->250]) & /@ {"Full","Diagonal","Spherical"};

Column[plots]

OpenersExampleSubsection1(Spacer1)"IntrinsicDimension"  (1)

Train a "Multinormal" distribution with a "Full" covariance and an intrinsic dimension of 1:

iris=ExampleData[{"MachineLearning","FisherIris"},"Data"][[All,1, ;;3]];

ld=LearnDistribution[iris,Method->{"Multinormal","CovarianceType"->"Full", "IntrinsicDimension"->1}]

Visualize samples generated from the distribution:

ListPointPlot3D[RandomVariate[ld,1000],PlotRange->{{0,10},{0,10},{-3,7}},AspectRatio->1]

Compare with samples generated with an intrinsic dimension of 3:

ld3=LearnDistribution[iris,Method->{"Multinormal","CovarianceType"->"Full", "IntrinsicDimension"->3}]

ListPointPlot3D[{RandomVariate[ld,1000],RandomVariate[ld3,1000]},PlotRange->{{0,10},{0,10},{-3,7}},AspectRatio->1]

({{DocumentationFooterIconsRelatedFunction.png, ({{See Also}, {(RefLink[LearnDistribution, paclet:ref/LearnDistribution])  ▪  (RefLink[LearnedDistribution, paclet:ref/LearnedDistribution])  ▪  (RefLink[MultinormalDistribution, paclet:ref/MultinormalDistribution])  ▪  (RefLink[NormalDistribution, paclet:ref/NormalDistribution])  ▪  (RefLink[DimensionReduction, paclet:ref/DimensionReduction])  ▪  (RefLink[AnomalyDetection, paclet:ref/AnomalyDetection])  ▪  (RefLink[RandomVariate, paclet:ref/RandomVariate])  ▪  (RefLink[PDF, paclet:ref/PDF])  ▪  (RefLink[RarerProbability, paclet:ref/RarerProbability])  ▪    ▪    ▪    ▪    ▪    ▪  }, {Related Machine Learning Methods:  (RefLink[GaussianMixture, paclet:ref/method/GaussianMixture])  ▪  (RefLink[ContingencyTable, paclet:ref/method/ContingencyTable])  ▪  (RefLink[KernelDensityEstimation, paclet:ref/method/KernelDensityEstimation])  ▪  (RefLink[DecisionTree, paclet:ref/method/DecisionTree])  ▪  (RefLink[LinearRegression, paclet:ref/method/LinearRegression])  ▪  (RefLink[LogisticRegression, paclet:ref/method/LogisticRegression])}})}})

({{(Spacer1), ({{(Spacer1)Related Links}, {(WebLink[DocumentationFooterIconsRelatedLinks-EIWL.png(Spacer1)An Elementary Introduction to the Wolfram Language, https://www.wolfram.com/language/elementary-introduction/22-machine-learning.html])(WebLink[: Machine Learning, https://www.wolfram.com/language/elementary-introduction/22-machine-learning.html])}})}})