Vous êtes sur la page 1sur 6

Mesure de similarité:

Similarité numérique:
1-Distance Euclidienne:
La distance euclidienne est une mesure de la distance "linéaire" entre deux points
dans un espace à n dimensions
La formule générale de la distance euclidienne entre deux points P(x1,y1,...,z1)
Q(x2,y2,...,z2) dans un espace à n dimensions est donnée par:

Supposons que nous ayons deux points A(1,2) et B(4,6) dans un espace
bidimensionnel.

Inverse de la distance euclidienne :


Envisageonsd(A,B) comme la distance euclidienne entre deux profils A et B
Nous pouvons définir une mesure de similarité sim(A,B) en inversant la distance
euclidienne. Par exemple :

Plus la distance euclidienne est petite, plus sim(A,B) sera proche de 1, indiquant
une grande similarité.

exemple, la méthode detecterDoublons :


import java.util.ArrayList;
import java.util.List;

public class DetectionDoublons {

public static void main(String[] args) {


// Exemple de liste de nombres
List<Double> listeNombres = new ArrayList<>();
listeNombres.add(10.0);
listeNombres.add(12.0);
listeNombres.add(10.5);
listeNombres.add(15.0);

// Seuil prédéfini
double seuil = 2.0;

// Détecter les doublons


detecterDoublons(listeNombres, seuil);
}
// Méthode pour détecter les doublons dans une liste de nombres
private static void detecterDoublons(List<Double> listeNombres, double seuil) {
int taille = listeNombres.size();

// Parcourir chaque paire de nombres et comparer leur distance euclidienne


for (int i = 0; i < taille - 1; i++) {
for (int j = i + 1; j < taille; j++) {
double nombre1 = listeNombres.get(i);
double nombre2 = listeNombres.get(j);

// Calculer la distance euclidienne


double distance = calculerDistanceEuclidienne(nombre1, nombre2);

// Vérifier si la distance est inférieure au seuil


if (distance < seuil) {
System.out.println("Doublon détecté : " + nombre1 + " et " + nombre2);
}
}
}
}

// Méthode pour calculer la distance euclidienne entre deux nombres


private static double calculerDistanceEuclidienne(double nombre1, double
nombre2) {
double difference = nombre1 - nombre2;
double carreDifference = difference * difference;
return Math.sqrt(carreDifference);
}
}
Distance de Manhattan:
La distance de Manhattan, également connue sous le nom de distance "L1", mesure
la somme des différences absolues entre les coordonnées des deux points dans un
espace à n dimensions. Pour deux points P(x1,y1,...,z1 ) et Q(x2,y2,...,z2)

la distance de Manhattan est calculée comme suit :

Exemple concret :

Supposons deux points

A(1,3) et B(4,7). La distance de Manhattan entre ces deux points serait calculée
comme suit :

dManhattan(A,B)=∣4−1∣+∣7−3∣=3+4=7

Un exemple simple en Java pour illustrer comment utiliser la distance


de Manhattan:
public class DistanceManhattanProduits {

public static void main(String[] args) {


// Exemple de caractéristiques de produits
Produit produitA = new Produit(50.0, 20, 100);
Produit produitB = new Produit(45.0, 18, 90);

// Calcul de la distance de Manhattan entre les produits


double distanceManhattan = calculerDistanceManhattan(produitA, produitB);

// Seuil prédéfini
double seuil = 10.0;

// Vérification si la distance est inférieure au seuil


if (distanceManhattan < seuil) {
System.out.println("Les produits sont considérés comme similaires.");
} else {
System.out.println("Les produits ne sont pas considérés comme similaires.");
}
}
// Classe pour représenter un produit avec des caractéristiques numériques
static class Produit {
double prix;
int taille;
int popularite;

Produit(double prix, int taille, int popularite) {


this.prix = prix;
this.taille = taille;
this.popularite = popularite;
}
}

// Méthode pour calculer la distance de Manhattan entre deux produits


private static double calculerDistanceManhattan(Produit produit1, Produit
produit2) {
// Calcul de la distance de Manhattan entre les caractéristiques numériques
double distancePrix = Math.abs(produit1.prix - produit2.prix);
double distanceTaille = Math.abs(produit1.taille - produit2.taille);
double distancePopularite = Math.abs(produit1.popularite - produit2.popularite);

// Somme des distances le long de chaque dimension


return distancePrix + distanceTaille + distancePopularite;
}
}

3-Coefficient de Corrélation de Pearson:

Le coefficient de corrélation de Pearson est une mesure statistique qui évalue la


force et la direction d'une relation linéaire entre deux variables continues. Il est
souvent utilisé pour étudier la corrélation entre deux ensembles de données
numériques. Dans le contexte de la déduplication, le coefficient de corrélation de
Pearson peut être utilisé pour mesurer la similarité entre deux ensembles de
données, ce qui pourrait aider à détecter les doublons.
Le coefficient de corrélation de Pearson, souvent noté par "r", peut prendre des
valeurs entre -1 et 1 :

● r=1 : Corrélation parfaite positive (quand une variable augmente, l'autre


augmente également de manière linéaire).
● r=−1 : Corrélation parfaite négative (quand une variable augmente, l'autre
diminue de manière linéaire).
● r=0 : Aucune corrélation linéaire.

Lorsque le coefficient de corrélation de Pearson est proche de 1 ou -1, cela indique


une forte corrélation entre les deux ensembles de données.

Exemple concret dans le contexte de la déduplication :


Enregistrement 1 :

● Nom : John Doe


● Longueur du nom : 8

Enregistrement 2 :

● Nom : John D.
● Longueur du nom : 7

Calculons la similarité en utilisant la différence absolue entre les longueurs des


noms :

​ Différence de longueur des noms :


● ∣8−7∣=1
● ∣8−7∣=1
​ Coefficient de corrélation de Pearson :

Dans cet exemple, la différence de longueur des noms est de 1, indiquant une légère
variation. Cependant, le coefficient de corrélation de Pearson est de 1, ce qui
suggère une forte corrélation ou similarité entre les longueurs des noms. Cela peut
être dû au fait que les noms sont structurellement similaires malgré la petite
différence dans la longueur.
Diagramme de classe:

Les classes principales sont MesureDistance, DistanceEuclidienne,


DistanceManhattan, et CoefficientCorrelationPearson.

● La classe abstraite MesureDistance définit une méthode commune


trouverDoublons qui prend une liste de nombres en tant qu'argument
et renvoie un tableau des doublons trouvés dans cette liste.
● Les classes spécialisées DistanceEuclidienne, DistanceManhattan, et
CoefficientCorrelationPearson étendent MesureDistance et héritent de
la méthode trouverDoublons. Chacune de ces classes spécifiques peut
être utilisée pour calculer la mesure de distance spécifique entre
deux points dans un espace à n dimensions.

Vous aimerez peut-être aussi