La généralisation consiste à transformer une valeur distinctive en valeur plus générale, moins caractéristique. La généralisation tente de préserver l'utilité des données tout en réduisant leur caractère personnel.
Il peut exister plusieurs niveaux de généralisation en fonction du type de données. Vous pouvez mesurer le niveau de généralisation nécessaire sur un ensemble de données ou une population réelle à l'aide de techniques telles que celles incluses dans l'analyse des risques de Sensitive Data Protection.
La mise en buckets est une technique de généralisation courante compatible avec Sensitive Data Protection. Avec la segmentation, vous regroupez les enregistrements dans des segments plus petits afin de minimiser le risque qu'un pirate informatique associe des informations sensibles à des informations permettant d'identifier l'utilisateur. Le sens et l'utilité des données sont conservés, et les valeurs individuelles qui sont associées à un nombre insuffisant de participants peuvent également être masquées.
Quand utiliser la généralisation et la segmentation ?
Voici quelques cas d'utilisation courants :
- Masquer les anomalies numériques dans les ensembles de données analytiques : regroupez les valeurs numériques rares (telles que les salaires extrêmes, les cotes de crédit ou les tailles de transaction) dans des plages plus larges pour empêcher la désanonymisation individuelle.
- Préserver l'utilité statistique dans la recherche démographique : remplacez l'âge exact, le revenu ou les identifiants géographiques par des intervalles catégoriels pour permettre une modélisation analytique générale sans exposer de valeurs individuelles distinctes.
- Réduire la distinction des quasi-identifiants pour le k-anonymat : généralisez les attributs de quasi-identification sur les lignes afin que chaque combinaison distincte soit partagée par une cohorte d'individus suffisamment importante.
- Nettoyer les ensembles de données de reporting externes : résumez les métriques client précises en niveaux généraux (par exemple, "Faible", "Moyen" et "Élevé") avant de partager des rapports avec des fournisseurs tiers ou des audiences publiques.
Scénario de binning 1
Prenons un exemple de binning numérique : une base de données stocke les notes de satisfaction des utilisateurs qui vont de 0 à 100. La base de données ressemble à l'exemple suivant :
| ID utilisateur | Note |
|---|---|
| 1 | 100 |
| 2 | 100 |
| 3 | 92 |
| … | … |
En parcourant les données, vous constatez que certaines valeurs sont rarement définies par les utilisateurs. En effet, certaines notes n'ont été attribuées que par un seul utilisateur. Par exemple, la majorité des utilisateurs ont choisi 0, 25, 50, 75 ou 100 comme note. Cependant, cinq utilisateurs ont choisi 95 et un seul utilisateur a choisi 92. Au lieu de conserver les données brutes, vous pouvez généraliser ces valeurs en groupes et éliminer les groupes comptant un nombre de participants insuffisant. Selon la façon dont les données sont utilisées, la généralisation des données à l'aide de cette technique pourrait permettre d'empêcher la restauration de l'identification.
Vous pouvez choisir de supprimer ces lignes uniques ou de préserver leur utilité à l'aide du binning. Pour cet exemple, classons toutes les valeurs comme suit :
- 0-25 : "Faible"
- 26-75 : "Medium"
- 76-100 : "High"
La segmentation dans Sensitive Data Protection est l'une des nombreuses transformations primitives disponibles pour l'anonymisation. La configuration JSON suivante illustre comment mettre en œuvre ce scénario de segmentation dans l'API DLP. Ce code JSON peut être inclus dans une requête adressée à la méthode content.deidentify :
C#
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Go
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Java
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Node.js
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
PHP
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
Python
Pour savoir comment installer et utiliser la bibliothèque cliente pour Sensitive Data Protection, consultez Bibliothèques clientes Sensitive Data Protection.
Pour vous authentifier auprès de Sensitive Data Protection, configurez les Identifiants par défaut de l'application. Pour en savoir plus, consultez Configurer l'authentification pour un environnement de développement local.
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"
}
}
]
}
}
}
...
Scénario de binning 2
Le binning peut également être appliqué sur des chaînes ou des valeurs désignées. Supposons que vous vouliez partager des données sur les salaires et inclure les fonctions. Cependant, certaines fonctions, tels que PDG ou ingénieur distingué, peuvent se rapporter à une personne ou à un petit groupe de personnes. Ces fonctions peuvent facilement être associées aux employés qui les occupent.
Le binning peut également vous être utile dans cette situation. Au lieu d'inclure les fonctions exactes, vous pouvez les généraliser et les placer dans un ensemble. Par exemple, les fonctions "ingénieur principal", "ingénieur junior" et "ingénieur distingué" sont généralisées dans la catégorie "ingénieur". Le tableau suivant illustre la manière dont les fonctions spécifiques sont regroupées dans des familles de fonctions.

Autres scénarios
Dans ces exemples, nous avons appliqué la transformation à des données structurées. Le binning peut également être utilisé avec des exemples non structurés, tant que la valeur peut être classée avec un infotype prédéfini ou personnalisé. Voici quelques exemples de scénarios :
- Classer des dates et les regrouper dans des plages d'années
- Classer des noms et les regrouper en fonction de la première lettre (A-M, N-Z)
Ressources
Pour en savoir plus sur la généralisation et le binning, consultez la page Supprimer l'identification de données sensibles dans du contenu textuel.
Pour consulter la documentation de l'API, consultez les pages suivantes :
- Méthode
projects.content.deidentify - Transformation
BucketingConfig: segmenter des valeurs en fonction de plages personnalisées - Transformation
FixedSizeBucketingConfig: segmenter des valeurs en fonction de plages de taille fixe