Generowanie i porównywanie par

Czyszczenie danych w R

Maggie Matsui

Content Developer @ DataCamp

Kiedy złączenia nie działają

Lewa tabela: kolumny event i time. Mecze: Houston Rockets vs Chicago Bulls o 19:00; Miami Heat vs Los Angeles Lakers o 19:00; Brooklyn Nets vs Orlando Magic o 20:00; Denver Nuggets vs Miami Heat o 21:00; San Antonio Spurs vs Atlanta Hawks o 21:00. Prawa tabela: NBA: Nets vs Magic o 20:00; NBA: Bulls vs Rockets o 21:00; NBA: Heat vs Lakers o 19:00; NBA: Grizzlies vs Heat o 22:00; NBA: Heat vs Cavaliers o 21:00.

Czyszczenie danych w R

Kiedy złączenia nie działają

Czyszczenie danych w R

Czym jest łączenie rekordów?

record_linkage_1.png

Czyszczenie danych w R

Czym jest łączenie rekordów?

Po lewej: dwie bazy danych z miotłami, oznaczone Dane A i Dane B

Czyszczenie danych w R

Czym jest łączenie rekordów?

Strzałki od Danych A i Danych B do trzech par osób, etykieta: Generuj pary

Czyszczenie danych w R

Czym jest łączenie rekordów?

Strzałka od generowania par do dwóch kolumn kółek ze strzałkami wskazującymi na siebie w różnych kierunkach. Opis: porównaj pary.

Czyszczenie danych w R

Czym jest łączenie rekordów?

Strzałka od porównywania par do postaci osoby trzymającej tabliczkę z napisem .93. Etykieta: ocenianie par.

Czyszczenie danych w R

Czym jest łączenie rekordów?

Strzałka od oceniania par do łańcucha z etykietą: łączenie danych.

Czyszczenie danych w R

Czym jest łączenie rekordów?

Ten sam diagram z niebieskim prostokątem wokół kroku generowania par

Czyszczenie danych w R

Pary rekordów

Dwie tabele, df_A i df_B, zawierające imiona i nazwiska, kody pocztowe oraz stany. W df_A zaznaczony wiersz: Keaton Z Snyder, zip 15020, stan PA. W df_B zaznaczony wiersz: Keaton Snyder, zip 15020, stan PA.

Czyszczenie danych w R

Generowanie par

Te same tabele z liniami łączącymi każdy wiersz df_A z każdym wierszem df_B – wszystkie kombinacje.

Czyszczenie danych w R

Generowanie par w 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 ...
Czyszczenie danych w R

Zbyt wiele par

Te same tabele rozszerzone o więcej wierszy, z jeszcze większą liczbą linii łączących pary.

Czyszczenie danych w R

Blokowanie

Te same tabele, ale liniami połączone są tylko wiersze o tym samym stanie.

Uwzględniane są tylko pary zgodne co do zmiennej blokującej (Stan)

Czyszczenie danych w R

Blokowanie par w 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
Czyszczenie danych w R

Porównywanie par

Diagram kroków łączenia rekordów z wyróżnionym krokiem porównywania par.

Czyszczenie danych w R

Porównywanie par

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
Czyszczenie danych w R

Porównywanie wielu kolumn

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
Czyszczenie danych w R

Różne komparatory

  • default_comparator = lcs()
  • default_comparator = jaccard()
  • default_comparator = jaro_winkler()
Czyszczenie danych w R

Czas na ćwiczenia!

Czyszczenie danych w R

Preparing Video For Download...