Data Science, Python, Economie ...

Accueil

Similarité

Le but des méthodes d'analyse de la similarité est de créer une mesure unique permettant de comparer des vecteurs entre eux.

Ces techniques trouvent leur utilité en complément des algorithmes de clustering, pour faciliter leur fonctionnement et pour évaluer leurs résultats.

Similarité et distance de Jaccard

Soit deux sets de vecteurs. La Similarité de Jaccard (Jaccard Similarity - $J(s_1,s2)$) des sets $s_1$ et $s_2$ est définie selon le ratio entre l'intersection et l'union des éléments de chaque vecteur compris dans le set :

$$ J(A, B)=\frac{|A \cap B|}{|A \cup B|} $$

La Similarité de Jaccard est par définition comprise entre 0 et 1 et est particulièrement utile pour les ensembles binaires (0,1).

Elle devient une réelle mesure de distanceNorme d'un vecteur
La norme est un élément de la définition d'un vecteur correspondant à sa longueur.

Définition

La norme d'un vecteur correspond à la longueur d'un vecteur, c'est-à-dire la distance qui sépare les deux points qui définissent le vecteur.

La définition formelle est la suivante1 :


Si $\overrightarrow{u} \in I!R^n$ alors la Norme ou la Magnitude de $\overrightarrow{u}$ est définie comme la longueur ou la magnitude du vecteur et peut être calculée en utilisant la formule $\vert\vert\vec{u}\ve...
1 $d(s_1,s_2)$, appelée la Distance de Jaccard avec la formule suivante qui vérifie la condition d'identité1 :

$$ d(s_1,s_2) = 1 - J(s_1,s_2) $$

Cette mesure est utile pour comparer la différence brut de lexique entre deux texte, par exemple.

Elle est aussi utile pour comparer le résultat de deux algorithmes de clustering non-supervisé : plus il sera similaire, plus $d(s_1,s_2)$ sera faible (beaucoup d'éléments font partie des mêmes groupes de classification)

Application

La distance de Jaccard peut être calculée avec sklearn.neighbors.DistanceMetrics.

from sklearn.neighbors import DistanceMetric
dist = DistanceMetric.get_metric('jaccard')

X = [ 	[1, 0, 0],
    	[1, 1, 1] ]

dist.pairwise(X)

> array([	[0.        , 0.66666667],
       		[0.66666667, 0.        ] ])
  1. Identité : $d(x,y) = 0$ si et seulement si $x=y$.  2