Source code for cblearn.metrics._procrustes

import numpy as np
import scipy


[docs] def procrustes_distance(true_embedding: np.ndarray, pred_embedding: np.ndarray) -> float: """ Distance measure between embeddings under optimal transformation. The predicted embedding is transformed by Procrustes analysis in terms of scaling, rotations, and reflections. The transformation is optimized based on the sum of pointwise square-differences between predicted and true embedding. Args: true_embedding: True object coordinates, (n_objects, n_components) pred_embedding: Predicted object coordinates, (n_objects, n_components) Returns: Sum of pointwise square-differences between the embeddings under optimal transformation. Raises: ValueError as described in :func:scipy.spatial.procrustes: """ __, __, m_squared = scipy.spatial.procrustes(true_embedding, pred_embedding) return m_squared