Scilab Website | Contribute with GitLab | Scilab Community | ATOMS toolboxes
Scilab Online Help
2026.1.0 - Français


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 de n * (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'ordre param.

  • "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

  • pdist2 — Distances par paires entre deux jeux d'observations (matrice complète)
  • dbscan — Density-based clustering (DBSCAN)
  • kmeans — K-means clustering

Historique

VersionDescription
2026.1.0 Fonction ajoutée.
Report an issue
<< meanshift Statistiques pdist2 >>

Copyright (c) 2022-2026 (Dassault Systèmes S.E.)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue May 19 13:58:09 CEST 2026