Logo elodees  elodees

Une IA bien-veillante pour un monde meilleur













Seuls les caractères alphabétiques accentués ou non ainsi que l'espace sont acceptés

Logo IA




Les différentes mesures de similarité existantes





Pas encore de compte ?

Inscrivez-vous pour accéder à tous les contenus




Une mesure de similarité est une métrique qui mesure la distance entre deux chaînes de caractères.

Elle intervient dans la recherche approximative ou la comparaison de chaînes.



Le choix des mesures de distance est une étape critique du regroupement qui définit comment la similarité de deux éléments x et y est calculée et comment elles influencent la forme des clusters.

Les méthodes classiques pour les mesures de distance sont les distances euclidiennes et de Manhattan.



Distance Euclidienne

Image gratuite et libre de droits fournie par pexel.com

Distance Manhattan

Image gratuite et libre de droits fournie par pexel.com


Où x et y sont deux vecteurs de longueur n.

La distance euclidienne entre deux points dans l'espace euclidien est la longueur d'un segment de ligne entre les deux points.

Elle peut être calculée à partir des coordonnées cartésiennes des points à l'aide du théorème de Pythagore, elle est parfois appelée distance de Pythagore.

La distance de Manhattan est une métrique de distance entre deux points dans un espace vectoriel de dimension N.

La distance de Manhattan est la somme des longueurs des projections du segment de droite entre les points sur les axes de coordonnées.

En termes simples, c'est la somme de la différence absolue entre les mesures dans toutes les dimensions de deux points.

Distance de corrélation de Pearson

La corrélation de Pearson mesure le degré d'une relation linéaire entre deux profils.

Image gratuite et libre de droits fournie par pexel.com


Distance de corrélation cosinus d'Eisen

C'est un cas particulier de la corrélation de Pearson avec x¯ et y¯ tous deux remplacés par zéro.

Image gratuite et libre de droits fournie par pexel.com


Distance de corrélation de Spearman

La méthode de corrélation de Spearman calcule la corrélation entre le rang de x et le rang y des variables.

Image gratuite et libre de droits fournie par pexel.com


où x′i = rank(xi) et y′i = rank(y).

Distance de corrélation de Kendall

La méthode de corrélation de Kendall mesure la correspondance entre le classement des variables x et y.

Le nombre total d'appariements possibles de x avec y observations est n(n−1) / 2, où n est la taille de x et y.

Commencez par classer les paires par les valeurs x.

Si x et y sont corrélés, alors ils auraient les mêmes ordres de classement relatifs.

Maintenant, pour chaque yi, comptez le nombre de yj > yi paires concordantes (c) et le nombre de yj < yi paires discordantes (d).

Image gratuite et libre de droits fournie par pexel.com


Où :

nc : nombre total de paires concordantes

nd : nombre total de paires discordantes

n : dimension de x et y

L'analyse de corrélation de Pearson est la méthode la plus couramment utilisée.

Elle est également connue sous le nom de corrélation paramétrique qui dépend de la distribution des données.

Les corrélations de Kendall et Spearman ne sont pas paramétriques et sont utilisées pour effectuer une analyse de corrélation basée sur les rangs.

Distance de Minkowski

La distance de Minkowski est une métrique dans un espace vectoriel normé qui peut être considérée comme une généralisation à la fois de la distance euclidienne et de la distance de Manhattan.

Image gratuite et libre de droits fournie par pexel.com


Distance de Tchebychev

C'est le cas extrême de la distance de Minkowski.

Lorsque nous utilisons l'infini comme valeur du paramètre p, nous nous retrouvons avec une métrique qui définit la distance comme la différence absolue maximale entre les coordonnées.

Image gratuite et libre de droits fournie par pexel.com


Testé sous Anaconda et Python 3.7

import math
 
def Cosine(vec1, vec2) :
    result = InnerProduct(vec1,vec2) / (VectorSize(vec1) * VectorSize(vec2))
    return result
 
def VectorSize(vec) :
    return math.sqrt(sum(math.pow(v,2) for v in vec))
 
def InnerProduct(vec1, vec2) :
    return sum(v1*v2 for v1,v2 in zip(vec1,vec2))
 
def Euclidean(vec1, vec2) :
    return math.sqrt(sum(math.pow((v1-v2),2) for v1,v2 in zip(vec1, vec2)))
 
def Theta(vec1, vec2) :
    return math.acos(Cosine(vec1,vec2)) + math.radians(10)
 
def Triangle(vec1, vec2) :
    theta = math.radians(Theta(vec1,vec2))
    return (VectorSize(vec1) * VectorSize(vec2) * math.sin(theta)) / 2
 
def Magnitude_Difference(vec1, vec2) :
    return abs(VectorSize(vec1) - VectorSize(vec2))
 
def Sector(vec1, vec2) :
    ED = Euclidean(vec1, vec2)
    MD = Magnitude_Difference(vec1, vec2)
    theta = Theta(vec1, vec2)
    return math.pi * math.pow((ED+MD),2) * theta/360
 
def TS_SS(vec1, vec2) :
    return Triangle(vec1, vec2) * Sector(vec1, vec2)
 
vec1 = [2,5]
vec2 = [2,10]
 
print('Vect 1 = ', vec1)
print('Vect 2 = ', vec2, '\n')
 
print('Cosine = ', Cosine(vec1,vec2), '\n')
print('InnerProduct = ', InnerProduct(vec1, vec2), '\n')
print('Euclidean = ', Euclidean(vec1,vec2), '\n')
print('Theta = ', Theta(vec1, vec2), '\n')
print('Triangle = ', Triangle(vec1, vec2), '\n')
print('Magnitude_Difference = ', Magnitude_Difference(vec1, vec2), '\n')
print('Sector = ', Sector(vec1, vec2), '\n')
print('TS_SS = ', TS_SS(vec1,vec2), '\n')
 


Vector_Similarity

License: MITLicenseMIT  Copyright (c) 2017 KimJunho


GitHub



Vect 1 = [2, 5]
Vect 2 = [2, 10]

Cosine = 0.9832820049844603

InnerProduct = 54

Euclidean = 5.0

Theta = 0.35764374246191644

Triangle = 0.17140001320519763

Magnitude_Difference = 4.812874220051065

Sector = 0.300531823876711

TS_SS = 0.0515111585810504



Inconvénients du cosinus

Image gratuite et libre de droits fournie par pexel.com



Inconvénients euclidiens

Image gratuite et libre de droits fournie par pexel.com



Similitude de zone de triangle (TS)

Image gratuite et libre de droits fournie par pexel.com



Similitude de zone du secteur (SS)

Image gratuite et libre de droits fournie par pexel.com



TS-SS

Image gratuite et libre de droits fournie par pexel.com



Resultats

Image gratuite et libre de droits fournie par pexel.com




Dans le plus grand ensemble de données, TS-SS surpasse le cosinus avec une différence significative, tandis que dans d'autres ensembles de données, le TS-SS surpasse légèrement le cosinus.

Par conséquent, le meilleur résultat significatif de TS-SS dans le plus grand ensemble de données justifie la robustesse et la fiabilité du modèle pour les mégadonnées et les données du monde réel où la variété des documents/textes est élevée.





Ingénierie des données


Apprentissage profond

Apprentissage automatique










Bienvenu, je m’appelle Eric Soupet et je suis l'administrateur du site elodees.com. elodees.com est un état de l'art de l'Intelligence Artificielle et se veut collaboratif, vous pouvez dès à présent proposer du contenu tels que des articles, des événements, des tutoriels, ... alors n'hésitez pas !

Crédit des images de la plate-forme : Pixabay - Pixabay License | Pexels - Pexels License