Diagnostics functions¶
- mftt.first_moment_error(samples, target_mean=None)[source]¶
Compute the Euclidean error in the first moment.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
target_mean (array-like, shape (input_dim,), optional) – Target mean; defaults to the zero vector.
- Returns:
Euclidean norm of the mean error.
- Return type:
float
- mftt.second_moment_error(samples, target_cov=None, ddof=1)[source]¶
Compute the Frobenius error in the covariance.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
target_cov (array-like, shape (input_dim, input_dim), optional) – Target covariance; defaults to identity.
ddof (int, default=1) – Delta degrees of freedom used for the sample covariance.
- Returns:
Frobenius norm of the covariance error.
- Return type:
float
- mftt.forstner_distance(samples, target_cov=None, ddof=1, jitter=1e-10)[source]¶
Compute the Forstner distance from a sample to a target covariance.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
target_cov (array-like, shape (input_dim, input_dim), optional) – Target covariance; defaults to identity.
ddof (int, default=1) – Delta degrees of freedom used for the sample covariance.
jitter (float, default=1e-10) – Positive regularization used in covariance square roots.
- Returns:
Forstner distance between covariance matrices.
- Return type:
float
- mftt.squared_mmd_gaussian_kernel(samples, reference_samples=None, target_mean=None, target_cov=None, bandwidth=None, bandwidth_mode='median_heuristic', random_seed=0, bandwidth_subset_size=2000, full_matrix_threshold=4000, block_size=1024)[source]¶
Compute an unbiased squared MMD against a Gaussian reference.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
reference_samples (array-like, optional) – Explicit Gaussian-reference samples. If omitted, samples are drawn from
target_meanandtarget_cov.target_mean (array-like, shape (input_dim,), optional) – Mean of generated reference samples; defaults to zero.
target_cov (array-like, shape (input_dim, input_dim), optional) – Covariance of generated reference samples; defaults to identity.
bandwidth (float, optional) – Positive kernel bandwidth. When omitted, the median heuristic is used.
bandwidth_mode ({"median_heuristic"}, default="median_heuristic") – Rule used when
bandwidthis omitted.random_seed (int, optional, default=0) – Seed for generated reference data and median-heuristic subsets.
bandwidth_subset_size (int, default=2000) – Maximum rows used by the median-heuristic calculation.
full_matrix_threshold (int, default=4000) – Use dense kernel matrices at or below this cloud size.
block_size (int, default=1024) – Block size for exact large-cloud kernel accumulation.
- Returns:
Unbiased squared Gaussian-kernel MMD.
- Return type:
float
- mftt.multiscale_squared_mmd_gaussian_kernel(samples, bandwidths, reference_samples=None, target_mean=None, target_cov=None, random_seed=0, full_matrix_threshold=4000, block_size=1024)[source]¶
Compute unbiased squared MMD values for supplied bandwidths.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
bandwidths (array-like, shape (n_bandwidths,)) – Positive Gaussian-kernel bandwidths.
reference_samples (array-like, optional) – Explicit reference cloud; otherwise a Gaussian cloud is generated.
target_mean (array-like, shape (input_dim,), optional) – Mean of generated reference samples; defaults to zero.
target_cov (array-like, shape (input_dim, input_dim), optional) – Covariance of generated reference samples; defaults to identity.
random_seed (int, optional, default=0) – Seed for generated reference samples.
full_matrix_threshold (int, default=4000) – Dense-kernel cutoff.
block_size (int, default=1024) – Block size for exact large-cloud accumulation.
- Returns:
One unbiased squared MMD value per supplied bandwidth.
- Return type:
numpy.ndarray, shape (n_bandwidths,)
- mftt.gaussian_diagnostics(samples, target_mean=None, target_cov=None, ddof=1, jitter=1e-10, random_seed=0, bandwidth_subset_size=2000, full_matrix_threshold=4000, block_size=1024)[source]¶
Summarize how closely a sample cloud matches a Gaussian target.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud to assess.
target_mean (array-like, shape (input_dim,), optional) – Gaussian target mean; defaults to zero.
target_cov (array-like, shape (input_dim, input_dim), optional) – Gaussian target covariance; defaults to identity.
ddof (int, default=1) – Delta degrees of freedom for sample covariance.
jitter (float, default=1e-10) – Covariance regularization for the Forstner distance.
random_seed (int, optional, default=0) – Seed for MMD reference sampling.
bandwidth_subset_size (int, default=2000) – Median-heuristic subset limit.
full_matrix_threshold (int, default=4000) – Dense-kernel cutoff.
block_size (int, default=1024) – Block size for exact large-cloud MMD.
- Returns:
Sample moments, target moments, moment errors, Forstner distance, MMD, and the bandwidth used.
- Return type:
dict
- mftt.map_gaussian_diagnostics(map_obj, target_samples, target_mean=None, target_cov=None, ddof=1, jitter=1e-10, random_seed=0, bandwidth_subset_size=2000, full_matrix_threshold=4000, block_size=1024)[source]¶
Push target samples through a trained map and summarize Gaussianity.
- Parameters:
map_obj (TriangularMap, HierarchicalTriangularMap, or NonHierarchicalTriangularMap) – Trained map exposing
evaluatefrom target to reference coordinates.target_samples (array-like, shape (n_samples, input_dim)) – Raw high-fidelity target samples evaluated by
map_obj.target_mean (array-like, shape (input_dim,), optional) – Gaussian reference mean; defaults to zero.
target_cov (array-like, shape (input_dim, input_dim), optional) – Gaussian reference covariance; defaults to identity.
ddof (int, default=1) – Delta degrees of freedom for sample covariance.
jitter (float, default=1e-10) – Covariance regularization for the Forstner distance.
random_seed (int, optional, default=0) – Seed for MMD reference sampling.
bandwidth_subset_size (int, default=2000) – Median-heuristic subset limit.
full_matrix_threshold (int, default=4000) – Dense-kernel cutoff.
block_size (int, default=1024) – Block size for exact large-cloud MMD.
- Returns:
Gaussian diagnostics of mapped reference-space samples.
- Return type:
dict
- mftt.median_heuristic_bandwidth(samples, reference_samples=None, target_mean=None, target_cov=None, random_seed=0, bandwidth_subset_size=2000)[source]¶
Estimate a Gaussian-kernel bandwidth from samples and reference data.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Sample cloud used to estimate the bandwidth.
reference_samples (array-like, optional) – Reference cloud with the same coordinate dimension. When omitted, a Gaussian cloud is drawn from
target_meanandtarget_cov.target_mean (array-like, shape (input_dim,), optional) – Mean for generated Gaussian reference samples; defaults to zero.
target_cov (array-like, shape (input_dim, input_dim), optional) – Covariance for generated Gaussian reference samples; defaults to the identity.
random_seed (int, optional, default=0) – Seed used for generated reference samples and subset selection.
bandwidth_subset_size (int, default=2000) – Maximum number of rows used by the median-distance calculation.
- Returns:
Positive median-heuristic bandwidth.
- Return type:
float
- mftt.sample_mean(samples)[source]¶
Compute the empirical mean of a sample cloud.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Samples in a common coordinate system.
- Returns:
Empirical mean.
- Return type:
numpy.ndarray, shape (input_dim,)
- mftt.sample_covariance(samples, ddof=1)[source]¶
Compute the empirical covariance matrix of a sample cloud.
- Parameters:
samples (array-like, shape (n_samples, input_dim)) – Samples in a common coordinate system.
ddof (int, default=1) – Delta degrees of freedom used in the covariance denominator.
- Returns:
Empirical covariance.
- Return type:
numpy.ndarray, shape (input_dim, input_dim)
- Raises:
ValueError – If fewer than
ddof + 1rows are supplied.