Générer et comparer des paires

Nettoyer des données avec R

Maggie Matsui

Content Developer @ DataCamp

Quand les jointures ne suffisent pas

Le tableau de gauche contient les colonnes événement et heure. Matchs affichés : Houston Rockets c. Chicago Bulls à 19 h. Miami Heat c. Los Angeles Lakers à 19 h. Brooklyn Nets c. Orlando Magic à 20 h. Denver Nuggets c. Miami Heat à 21 h. San Antonio Spurs c. Atlanta Hawks à 21 h. Le tableau de droite affiche : NBA : Nets c. Magic à 20 h. NBA : Bulls c. Rockets à 21 h. NBA : Heat c. Lakers à 19 h. NBA : Grizzlies c. Heat à 22 h. NBA : Heat c. Cavaliers à 21 h.

Nettoyer des données avec R

Quand les jointures ne suffisent pas

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

record_linkage_1.png

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

À gauche, deux bases de données avec des balais, nommées Données A et Données B

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

Des flèches partent des Données A et Données B vers trois paires de personnes, intitulé Générer des paires

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

Une flèche va de Générer des paires vers deux colonnes de cercles avec des flèches qui se pointent mutuellement dans diverses directions. Description : comparer les paires.

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

Une flèche va de comparer les paires vers une personne tenant une pancarte « .93 ». Légende : attribuer un score aux paires.

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

Flèche d'Attribuer un score aux paires vers une chaîne, intitulé Lier les données.

Nettoyer des données avec R

Qu'est-ce que le couplage d'enregistrements ?

Même schéma avec un encadré bleu autour de l'étape Générer des paires

Nettoyer des données avec R

Paires d'enregistrements

Deux tableaux, df_A et df_B, contenant des noms, leurs codes postaux et l'État. Une ligne est surlignée dans df_A pour Keaton Z Snyder, code postal 15020, État PA. Une ligne est surlignée dans df_B pour Keaton Snyder, code postal 15020, État PA.

Nettoyer des données avec R

Générer des paires

Mêmes tableaux avec des lignes de chaque rangée de df_A vers chaque rangée de df_B pour illustrer toutes les combinaisons.

Nettoyer des données avec R

Générer des paires en R

library(reclin)
pair_blocking(df_A, df_B)
Simple blocking
  No blocking used.
  First data set:  5 records
  Second data set: 5 records
  Total number of pairs: 25 pairs

ldat with 25 rows and 2 columns x y 1 1 1 2 2 1 3 3 1 ...
Nettoyer des données avec R

Trop de paires

Mêmes tableaux allongés avec davantage de rangées et encore plus de lignes reliant chaque paire.

Nettoyer des données avec R

Blocage

Mêmes tableaux, mais seules les rangées ayant le même État sont reliées par des lignes.

Ne considérer que les paires qui s'entendent sur la variable de blocage (État)

Nettoyer des données avec R

Blocage des paires en R

pair_blocking(df_A, df_B, blocking_var = "state")
Simple blocking                                 ldat with 8 rows and 2 columns
  Blocking variable(s): state                     x y
  First data set:  5 records                    1 1 1
  Second data set: 5 records                    2 1 4
  Total number of pairs: 8 pairs                3 2 3
                                                4 2 5
                                                5 3 2
                                                6 4 2
                                                7 5 1
                                                8 5 4
Nettoyer des données avec R

Comparer les paires

Schéma des étapes du couplage d'enregistrements avec l'étape Comparer les paires en surbrillance.

Nettoyer des données avec R

Comparer des paires

pair_blocking(df_A, df_B, blocking_var = "state") %>%

compare_pairs(by = "name", default_comparator = lcs())
Compare                                     ldat with 8 rows and 3 columns            
  By: name                                      x y      name
                                              1 1 1 0.3529412
Simple blocking                               2 1 4 0.3030303
  Blocking variable(s): state                 3 2 3 0.9285714
  First data set:  5 records                  4 2 5 0.2962963    
  Second data set: 5 records                  ...
  Total number of pairs: 8 pairs              8 5 4 0.3333333
Nettoyer des données avec R

Comparer plusieurs colonnes

pair_blocking(df_A, df_B, blocking_var = "state") %>%
  compare_pairs(by = c("name", "zip"), default_comparator = lcs())
Compare                                    ldat with 8 rows and 4 columns
  By: name, zip                              x y      name zip
                                           1 1 1 0.3529412 0.4
Simple blocking                            2 1 4 0.3030303 0.2
  Blocking variable(s): state              3 2 3 0.9285714 1.0
  First data set:  5 records               4 2 5 0.2962963 0.2
  Second data set: 5 records               ...
  Total number of pairs: 8 pairs           8 5 4 0.3333333 0.2
Nettoyer des données avec R

Comparateurs différents

  • default_comparator = lcs()
  • default_comparator = jaccard()
  • default_comparator = jaro_winkler()
Nettoyer des données avec R

Passons à la pratique !

Nettoyer des données avec R

Preparing Video For Download...