pdist
Distances par paires entre observations (format condensé)
Séquence d'appel
d = pdist(X) d = pdist(X, metric) d = pdist(X, metric, param)
Paramètres
- X
matrice réelle n x p contenant n observations en lignes et p variables en colonnes.
- metric
chaîne optionnelle qui indique la distance à utiliser. Par défaut, la distance euclidienne est utilisée.
- param
réel optionnel utilisé uniquement avec les métriques
"seuclidean","mahalanobis"et"minkowski"(voir Description).- d
vecteur ligne contenant les distances par paires entre toutes les lignes de
X. Le vecteur a une longueur den * (n - 1)/2.
Description
pdist calcule la distance entre chaque paire de lignes de X et renvoie le résultat
sous forme d'un vecteur condensé. Ce format est adapté aux algorithmes d'agrégation hiérarchique ou à tout traitement
nécessitant des distances inter-points sans construire la matrice symétrique complète.
Les métriques suivantes sont reconnues (avec leurs alias) :
"euclidean"("euclid","eu","e") : distance euclidienne (L2)."squaredeuclidean"("sqeuclidean","sqe","sqeuclid") : distance euclidienne au carré."seuclidean"("se","s") : distance euclidienne standardisée (chaque colonne est pondérée)."mahalanobis"("mahal","mah") : distance de Mahalanobis tenant compte de la covariance."cityblock"("city","city block","cblock","cb","c") : distance de Manhattan."minkowski"("mi","m") : distance de Minkowski d'ordreparam."chebychev"("chebyshev","cheby","cheb","ch") : distance de Chebyshev (L∞)."cosine"("cos") : distance cosinus, c.-à-d. 1 moins la similarité cosinus."correlation"("co") : distance corrélation, égale à 1 moins la corrélation entre lignes."hamming"("hamm","ha","h") : fraction de positions différentes."jaccard"("jacc","ja","j") : distance de Jaccard pour données binaires."canberra": distance de Canberra, sensible aux faibles valeurs."braycurtis": dissimilarité de Bray-Curtis.
Lorsque metric vaut "seuclidean", l'argument param doit être un vecteur ligne 1 x p
contenant les facteurs d'échelle (typiquement les écarts-types des colonnes). Par défaut, stdev(X, "r") est calculé
et les valeurs nulles sont remplacées par 1 pour éviter les divisions par zéro.
Pour "mahalanobis", param doit être une matrice de covariance p x p. Par défault, pdist calcule
cov(X) et utilise son inverse.
Pour "minkowski", param doit être un scalaire positif précisant l'ordre de la norme (2 par défaut).
Toute valeur fournie dans param pour les autres métriques est ignorée (un avertissement est affiché).
Exemples
Distances euclidiennes entre quatre points 2D
X = [0 0; 1 0; 0 2; 1 2]; d = pdist(X) // 1.000000 2.000000 2.236068 2.236068 2.000000 1.000000
Distance euclidienne standardisée avec échelles personnalisées
X = [1 0 2; 2 4 6; 3 7 1]; scale = [0.5 2 1.5]; // un poids par colonne d = pdist(X, "seuclidean", scale) // 3.8873013 5.3567196 4.1666667
Voir aussi
Historique
| Version | Description |
| 2026.1.0 | Fonction ajoutée. |
| Report an issue | ||
| << meanshift | Statistiques | pdist2 >> |