Generalisasi adalah proses mengambil nilai pembeda dan mengabstraksikannya menjadi nilai yang lebih umum dan kurang membedakan. Generalisasi berupaya mempertahankan utilitas data sekaligus mengurangi kemampuan identifikasi data.
Ada banyak tingkat generalisasi, bergantung pada jenis data. Seberapa banyak generalisasi yang diperlukan adalah sesuatu yang dapat Anda ukur di seluruh set data atau populasi dunia nyata menggunakan teknik seperti yang disertakan dalam analisis risiko Sensitive Data Protection.
Salah satu teknik generalisasi umum yang didukung oleh Sensitive Data Protection adalah bucketing. Dengan bucketing, Anda mengelompokkan data ke dalam bucket yang lebih kecil untuk meminimalkan risiko penyerang mengaitkan informasi sensitif dengan informasi identitas pribadi. Tindakan ini dapat mempertahankan makna dan kegunaan, tetapi juga akan mengaburkan nilai individual yang memiliki terlalu sedikit peserta.
Kapan harus menggunakan generalisasi dan bucketing
Berikut adalah beberapa kasus penggunaan umum:
- Mengaburkan pencilan numerik dalam set data analisis: Kelompokkan nilai numerik yang jarang (seperti gaji ekstrem, skor kredit, atau ukuran transaksi) ke dalam rentang yang lebih luas untuk mencegah identifikasi ulang individu.
- Mempertahankan utilitas statistik dalam riset demografis: Ganti ID usia, pendapatan, atau geografis yang tepat dengan interval kategoris untuk mendukung pemodelan analisis yang luas tanpa mengekspos nilai individu yang berbeda.
- Mengurangi perbedaan quasi-identifier untuk k-anonymity: Menggeneralisasi atribut quasi-identifying di seluruh baris sehingga setiap kombinasi yang berbeda digunakan bersama oleh kelompok individu yang cukup besar.
- Membersihkan set data pelaporan eksternal: Mengabstraksi metrik pelanggan yang mendetail menjadi tingkat yang lebih tinggi (seperti "Rendah", "Sedang", dan "Tinggi") sebelum membagikan laporan kepada vendor pihak ketiga atau audiens publik.
Skenario pengelompokan 1
Pertimbangkan skenario pengelompokan numerik ini: Database menyimpan skor kepuasan pengguna, yang berkisar antara 0 hingga 100. Database akan terlihat seperti berikut:
| user_id | skor |
|---|---|
| 1 | 100 |
| 2 | 100 |
| 3 | 92 |
| ... | ... |
Saat memindai data, Anda menyadari bahwa beberapa nilai jarang digunakan oleh pengguna. Bahkan, ada beberapa skor yang hanya dipetakan ke satu pengguna. Misalnya, sebagian besar pengguna memilih 0, 25, 50, 75, atau 100. Namun, lima pengguna memilih 95, dan hanya satu pengguna yang memilih 92. Daripada menyimpan data mentah, Anda dapat menggeneralisasi nilai ini ke dalam grup dan menghilangkan grup yang memiliki terlalu sedikit peserta. Bergantung pada cara data digunakan, menggeneralisasi data dengan cara ini dapat membantu mencegah identifikasi ulang.
Anda dapat memilih untuk menghapus baris data pencilan ini, atau Anda dapat mencoba mempertahankan kegunaannya dengan menggunakan bucketing. Untuk contoh ini, mari kita kelompokkan semua nilai sesuai dengan hal berikut:
- "Rendah": 0-25
- 26-75: "Sedang"
- 76-100: "Tinggi"
Bucketing di Sensitive Data Protection adalah salah satu dari banyak transformasi primitif yang tersedia untuk de-identifikasi. Konfigurasi JSON berikut mengilustrasikan cara menerapkan skenario bucketing ini di DLP API. JSON ini dapat disertakan dalam permintaan ke metode
content.deidentify:
C#
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Go
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Java
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Node.js
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
PHP
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
Python
Untuk mempelajari cara menginstal dan menggunakan library klien untuk Sensitive Data Protection, lihat library klien Sensitive Data Protection.
Untuk melakukan autentikasi ke Sensitive Data Protection, siapkan Kredensial Default Aplikasi. Untuk mengetahui informasi selengkapnya, lihat Menyiapkan autentikasi untuk lingkungan pengembangan lokal.
REST
...
{
"primitiveTransformation":
{
"bucketingConfig":
{
"buckets":
[
{
"min":
{
"integerValue": "0"
},
"max":
{
"integerValue": "25"
},
"replacementValue":
{
"stringValue": "Low"
}
},
{
"min":
{
"integerValue": "26"
},
"max":
{
"integerValue": "75"
},
"replacementValue":
{
"stringValue": "Medium"
}
},
{
"min":
{
"integerValue": "76"
},
"max":
{
"integerValue": "100"
},
"replacementValue":
{
"stringValue": "High"
}
}
]
}
}
}
...
Skenario pengelompokan 2
Bucketing juga dapat digunakan pada string atau nilai enumerasi. Misalnya, Anda ingin membagikan data gaji dan menyertakan jabatan. Namun, beberapa jabatan, seperti CEO atau engineer terkemuka, dapat dikaitkan dengan satu orang atau sekelompok kecil orang. Jabatan tersebut mudah dicocokkan dengan karyawan yang memegangnya.
Bucketing juga dapat membantu dalam hal ini. Daripada menyertakan jabatan yang tepat, generalisasikan dan kelompokkan jabatan tersebut. Misalnya, "Senior Engineer", "Junior Engineer", dan "Distinguished Engineer" digeneralisasi dan dikelompokkan menjadi "Engineer". Tabel berikut mengilustrasikan pengelompokan jabatan tertentu ke dalam kelompok jabatan.

Skenario lainnya
Dalam contoh ini, kami telah menerapkan transformasi ke data terstruktur. Bucketing juga dapat digunakan pada contoh tidak terstruktur, asalkan nilainya dapat diklasifikasikan dengan infoType yang telah ditentukan atau kustom. Berikut beberapa contoh skenario:
- Mengklasifikasikan tanggal dan mengelompokkannya ke dalam rentang tahun
- Mengklasifikasikan nama dan mengelompokkannya berdasarkan huruf pertama (A-M, N-Z)
Resource
Untuk mempelajari lebih lanjut generalisasi dan bucketing, lihat Melakukan De-identifikasi Data Sensitif dalam Konten Teks.
Untuk dokumentasi API, lihat:
- Metode
projects.content.deidentify - Transformasi
BucketingConfig: Mengelompokkan nilai berdasarkan rentang kustom. - Transformasi
FixedSizeBucketingConfig: Mengelompokkan nilai berdasarkan rentang ukuran tetap.