`moefactory`

Construct a mixture of experts distribution structure

**Syntax**

D = mixturefactory(GateD, ExpertD)

**Description**

`D = mixturefactory(GateD, ExpertD)` returns a structure representing a mixture of experts distribution. `GatetD` is a gate structure. `ExpertD` defines the expert distributions and it may be either a conditional distribution structure or a cell array of conditional distribution structures on the same data space.

When `ExpertD` is a conditional distribution structure, it defines the expert component distribution type. The number of experts equals `GateD.num()`.

When `ExpertD` is a cell array of conditional distribution structures, the function constructs a heterogeneous mixture of experts distribution where each expert may be of a different distribution type. The number of elements in the cell array should equal `GateD.num()`.

**Distribution Parameters**

(`D``num-by-1`cell array of distribution parameter structures) : Contains the parameters for each expert.: Sturucture containing the parameters of the gate.`G`

**Probability Density Function**

The distribution has the following density:

where is the k-th gate component defined by the gate distribution and is the k-th expert component.

`name`

See distribution structure common members.

`M`

See distribution structure common members.

`expert`

expert distributions

**Syntax**

D_k = D.expert(idx)

**Description**

`D_k = D.expert(idx)` where `idx` is the index of a component, gives the component distribution structure at `idx`.

`D_k = D.expert(idx)` where `idx` is an index vector with more than one element, returns a cell array of the distribution structures indexed in `idx`.

Valid range for the indices is from 1 to `D.numtotal()`.

`gate`

Gate distribution

`num`

Number of components (excluding any fixed components)

**Syntax**

num = D.num()

`dim`

See distribution structure common members.

`datadim`

See distribution structure common members.

`llvec`

See distribution structure common members.

`ll`

See distribution structure common members.

`llgrad`

See distribution structure common members.

`llgraddata`

See distribution structure common members.

`predict`

`pdf`

See distribution structure common members.

`sample`

See distribution structure common members.

`randparam`

See distribution structure common members.

`init`

See distribution structure common members.

`estimatedefault`

`penalizerparam`

See distribution structure common members.

`penalizercost`

See distribution structure common members.

`penalizergrad`

See distribution structure common members.

`sumparam`

See distribution structure common members.

`scaleparam`

See distribution structure common members.

`sumgrad`

See distribution structure common members.

`scalegrad`

See distribution structure common members.

`entropy`

See distribution structure common members.

`kl`

See distribution structure common members.

`AICc`

See distribution structure common members.

`BIC`

See distribution structure common members.