mescla.datasets.synthetic.make_mixture

mescla.datasets.synthetic.make_mixture(n_endmembers=3, n_species=5, n_samples=50, endmember_noise=0.15, sample_noise=0.01, concentration_range=(50.0, 900.0), seed=None)[source]

Generate a mixing problem with uniformly distributed ratios.

Parameters:
  • n_endmembers (int) – Problem size. Identifiability requires n_species >= n_endmembers - 1.

  • n_species (int) – Problem size. Identifiability requires n_species >= n_endmembers - 1.

  • n_samples (int) – Problem size. Identifiability requires n_species >= n_endmembers - 1.

  • endmember_noise (float or ndarray) – Noise as a fraction of the mean concentration of each species, or an explicit array of standard deviations. The default – loose end-members, precise mixtures – is the situation that motivates maximum-likelihood estimation (Carrera et al., 2004).

  • sample_noise (float or ndarray) – Noise as a fraction of the mean concentration of each species, or an explicit array of standard deviations. The default – loose end-members, precise mixtures – is the situation that motivates maximum-likelihood estimation (Carrera et al., 2004).

  • concentration_range (tuple of float) – Bounds for the randomly drawn end-member concentrations.

  • seed (int, optional)

Returns:

SyntheticMixture

Return type:

SyntheticMixture

Examples

>>> data = make_mixture(n_endmembers=3, n_species=6, n_samples=40, seed=1)
>>> data.true_ratios.sum(axis=1).round(10)
array([1., 1., 1., ...])