Hitung akurasi set data
Saya memiliki dua tabel (X dan Y) yang memetakan, katakanlah, pemain sepak bola ke tim. Data pada tabel X dapat diandalkan tetapi saya tidak yakin tentang keandalan data pada tabel Y. Tabel X memiliki 3.000 baris dan tabel Y memiliki 1.000. Bagaimana cara menghitung seberapa akurat pemetaan pada tabel Y dengan menggunakan data pada tabel Y sebagai set kebenaran atau superset?
Tabel X
PlayerID | Name | Team
007 | Sancho | Dortmund
010 | Messi | Barcelona
011 | Werner | Chelsea
001 | De Gea | Man Utd
009 | Lewan..ki | Bayern Mun
006 | Pogba | Man Utd
017 | De Bruyne | Man City
029 | Harvertz | Chelsea
005 | Upamecano | Leipzig
Tabel Y
PlayerID. |Name | Team
010 | Messi | Man City
007 | Sancho | Man Utd
006 | Pogba | Man Utd
017 | De Bruyne| Man City
011 | Werner | Liverpool
006 | Pogba | Real Madrid
Berdasarkan Tabel X, kita dapat melihat bahwa hanya playerIDs 006 dan 017 yang akurat. Namun playerID 006 sebagian akurat karena memetakan ke dua tim yang berbeda.
Jawaban
Anda dapat left joindan menggunakan logika kondisional untuk menghitung akurasi.
Di MySQL, Anda dapat mengucapkan ini sebagai:
select avg(y.playerID is not null) as accuracy_ratio
from x
left join y
on y.playerID = x.playerID
and y.name = x.name
and y.team = x.team
Ini memberi Anda nilai antara 0dan 1, yang mewakili rasio akurasi (Anda dapat mengalikannya dengan 100 jika Anda menginginkan persentase).
Perhatikan bahwa ini entah bagaimana mengasumsikan bahwa playerIDsecara unik mengidentifikasi rekaman di kedua tabel.