La cartographie Sammon est une technique de réduction de la dimensionnalité non linéaire qui est utilisée pour représenter les données de haute dimension dans un espace de dimension inférieure tout en préservant les distances par paire entre les points de données autant que possible. La technique a été introduite par John W. Sammon Jr. en 1969.
L'algorithme de cartographie Sammon essaie de minimiser une fonction de contrainte qui quantifie la différence entre les distances par paire dans l'espace de haute dimension d'origine et les distances par paire dans l'espace de dimension inférieure. L'algorithme ajuste itérativement les positions des points de données dans l'espace dimensionnel inférieur jusqu'à ce que la fonction de contrainte soit minimisée.
La fonction Sammon dans cette bibliothèque fournit une implémentation de l'algorithme de mappage Sammon. La fonction prend les paramètres suivants:
x : Forme de type tableau (n_s échantillons, n_features) les données d'entrée.
n : int, facultatif (par défaut: 2) la dimensionnalité de l'espace de sortie. La valeur par défaut est 2.
display : int, facultatif (par défaut: 0) s'il faut afficher les informations d'itération ou non. La valeur par défaut est 0.
inputdist : Str, Facultatif (par défaut: «brut») Le type de métrique de distance utilisé dans l'espace d'entrée.
Les valeurs possibles sont:
maxhalves : int, facultatif (par défaut: 20) Le nombre maximum de fois que la procédure de balançoire de pas peut être appliquée. La valeur par défaut est 20.
maxiter : int, facultatif (par défaut: 500) le nombre maximum d'itérations. La valeur par défaut est 500.
tolfun : flotteur, facultatif (par défaut: 1e-9) la tolérance pour le changement de la fonction de contrainte. La valeur par défaut est 1E-9.
init : str, facultatif (par défaut: 'PCA') Le type d'initialisation utilisé pour l'espace de sortie.
Les valeurs possibles sont:
y : Forme de type tableau (n_s échantillons, n_components) les données de sortie transformées.
stress : flottez la valeur finale de la fonction de contrainte.
Cette implémentation est basée sur l'algorithme décrit dans l'article suivant:
Sammon, JW (1969). Une cartographie non linéaire pour l'analyse de la structure des données. Transactions IEEE sur les ordinateurs, C-18 (5), 401-409. doi: 10.1109 / tc.1969.222678