Skip to content



An Agglomerate is a collection of generators with each of them given a user-defined label. Agglomerates are useful for classification, clustering, and anomaly detection problems where the target label is a discrete value.

Data Types: Depends on base generators

Label Type: Categorical


# Name Default Type Description
1 generators array A collection of generators indexed by their given label.
2 weights Auto array A set of arbitrary weight values corresponding to a generator's proportion of the overall agglomeration. If no weights are given, each generator is assigned equal weight.


use Rubix\ML\Datasets\Generators\Agglomerate;
use Rubix\ML\Datasets\Generators\Blob;
use Rubix\ML\Datasets\Generators\HalfMoon;
use Rubix\ML\Datasets\Generators\Circle;

$generator = new Agglomerate([
    'foo' => new Blob([5, 2], 1.0),
    'bar' => new HalfMoon(-3, 5, 1.5, 90.0, 0.1),
    'baz' => new Circle(2, -4, 2.0, 0.05),
], [
    3.5, 4.0, 5.0,

Additional Methods#

Return the normalized weight values of each generator in the agglomerate:

public weights() : array