Motivasyon
Kişisel olarak tanımlanabilir bilgiler içeren veri setleri (PII) ile çalışıyorum ve bazen veri setinin bir bölümünü PII'yi ifşa etmeyecek ve işverenime borç vermeyecek şekilde üçüncü şahıslarla paylaşmaya ihtiyacım var. Buradaki olağan yaklaşımımız, verileri tamamen veya bazı durumlarda çözünürlüğünü azaltmak için tutmaktır; örneğin, tam bir sokak adresinin karşılık gelen ilçe veya nüfus sayımı yoluyla değiştirilmesi.
Bu, belirli bir analiz ve işleme türünün, üçüncü bir tarafın göreve daha uygun kaynaklara ve uzmanlığa sahip olmasına rağmen, kurum içinde yapılması gerektiği anlamına gelir. Kaynak veriler açıklanmadığından, bu analiz ve işleme gitme şeklimiz şeffaflıktan yoksundur. Sonuç olarak, herhangi bir üçüncü tarafın QA / QC yapma, parametreleri ayarlama veya ayrıntılandırma yapma yeteneği çok sınırlı olabilir.
Gizli Verileri Anonimleştirme
Bir görev, hataları ve tutarsızlıkları göz önünde bulundurarak, kullanıcı tarafından sunulan verilerde bireyleri adlarıyla tanımlamayı içerir. Özel bir birey bir yerde "Dave" ve diğerinde "David" olarak kaydedilebilir, ticari varlıklar birçok farklı kısaltmaya sahip olabilir ve her zaman bazı yazım hataları vardır. Aynı olmayan adlara sahip iki kaydın aynı kişiyi ne zaman temsil ettiğini belirleyen ve ortak bir kimlik atayan çeşitli kriterleri temel alan komut dosyaları geliştirdim.
Bu noktada, veri kümesini adlarını gizleyerek ve bu kişisel kimlik numarası ile değiştirerek anonim hale getirebiliriz. Ancak bu, alıcının örneğin maçın gücü hakkında neredeyse hiçbir bilgiye sahip olmadığı anlamına gelir. Kimliği açığa vurmadan olabildiğince fazla bilgi aktarabiliriz.
Ne çalışmıyor
Örneğin, düzenleme mesafesini korurken dizeleri şifrelemek harika olurdu. Bu yolla, üçüncü taraflar kendi QA / QC'lerinin bir kısmını yapabilir veya PII'ye hiç erişmeden (veya potansiyel olarak tersine mühendislik uygulayamadan) kendi başlarına daha fazla işlem yapmayı seçebilirler. Belki de dizeleri kurum içi düzenleme mesafesi <= 2 ile eşleştiririz ve alıcı bu düzenleme toleransını <= 1 düzenleme sıkılaştırmasının etkilerine bakmak ister.
Ancak buna aşina olduğum tek yöntem, bunu şifreleme olarak bile sayılmayan ROT13 (daha genel olarak herhangi bir vardiya şifresi ); Bu isimleri baş aşağı yazmak ve "kağıdı ters çevirmeyeceğine söz ver." demek gibi.
Başka bir kötü çözüm, her şeyi kısaltmak olacaktır. "Ellen Roberts" ve "ER" olur. Bu kötü bir çözümdür, çünkü bazı durumlarda ilkler, halka açık verilerle bağlantılı olarak, bir kişinin kimliğini ortaya çıkaracaktır ve diğer durumlarda çok belirsizdir; "Benjamin Othello Ames" ve "Bank of America" aynı adlara sahip olacaklar, ancak adları başka türlü değil. Yani istediğimiz şeylerden hiçbirini yapmıyor.
Yetkili olmayan bir alternatif, adın belirli niteliklerini izlemek için ek alanlar sunmaktır, örneğin:
+-----+----+-------------------+-----------+--------+
| Row | ID | Name | WordChars | Origin |
+-----+----+-------------------+-----------+--------+
| 1 | 17 | "AMELIA BEDELIA" | (6, 7) | Eng |
+-----+----+-------------------+-----------+--------+
| 2 | 18 | "CHRISTOPH BAUER" | (9, 5) | Ger |
+-----+----+-------------------+-----------+--------+
| 3 | 18 | "C J BAUER" | (1, 1, 5) | Ger |
+-----+----+-------------------+-----------+--------+
| 4 | 19 | "FRANZ HELLER" | (5, 6) | Ger |
+-----+----+-------------------+-----------+--------+
Ben buna "inelegant" diyorum çünkü hangi özelliklerin ilginç olabileceğini tahmin etmeyi gerektiriyor ve nispeten kaba. İsimler kaldırılırsa, 2. ve 3. sıralar arasındaki maçın gücü veya 2. ve 4. sıralar arasındaki mesafenin (yani, eşleşmeye ne kadar yakın oldukları) makul bir şekilde sonuçlanamaz.
Sonuç
Amaç, dizeleri orijinal dizgiyi gizlerken mümkün olduğu kadar orijinal dizginin yararlı özelliklerinin korunacağı şekilde dönüştürmektir. Şifrenin çözülmesi imkansız olmalı veya veri kümesinin boyutu ne olursa olsun etkili bir şekilde imkansız olacak kadar pratik olmamalıdır. Özellikle, rastgele dizeler arasındaki düzenleme mesafesini koruyan bir yöntem çok yararlı olacaktır.
İlgili olabilecek birkaç kağıt buldum, ama biraz kafamın üstünde: