Regroupements avec confidentialité différentielle

Confidentialité des données et anonymisation en Python

Rebeca Gonzalez

Data engineer

Comparer les modèles

Image montrant 3 grappes dans les données, après un regroupement k-moyennes non privé

Image montrant 3 grappes dans les données, après un regroupement k-moyennes privé

Confidentialité des données et anonymisation en Python

Comparer les modèles

Image montrant la différence entre les deux résultats de regroupement, en points roses

  • Différences entre les grappes des modèles
  • La majorité des résultats sont communs
Confidentialité des données et anonymisation en Python

Créer des modèles de regroupement avec confidentialité différentielle

from diffprivlib.models import KMeans

# Calculer les grappes avec le modèle DP model = KMeans(epsilon=1, n_clusters=3)
# Exécuter le modèle et obtenir les grappes clusters = model.fit_predict(X)
Confidentialité des données et anonymisation en Python

Améliorer les modèles DP de regroupement

  • On peut prétraiter les données avant le regroupement.
  • Mise à l'échelle des caractéristiques comme StandardScaler et réduction de dimension comme la PCA.
    • Réduire l'inertie du modèle
    • Obtenir des segments plus précis
  • On le fait avec diffprivlib comme avec les modèles sklearn.
Confidentialité des données et anonymisation en Python

Améliorer les modèles DP de regroupement

from sklearn.decomposition import PCA

# Initialiser la PCA pca = PCA()
# Ajuster et transformer les données avec la PCA X = pca.fit_transform(X)
# Calculer les grappes avec le modèle DP model = dp_Kmeans(epsilon=1, n_clusters=3)
# Exécuter le modèle et obtenir les grappes clusters = model.fit_predict(X)
Confidentialité des données et anonymisation en Python

Améliorer les modèles DP de regroupement

Image montrant deux nuages de points avec les grappes résultantes

Confidentialité des données et anonymisation en Python

Améliorer les modèles DP de regroupement

Image montrant la différence entre les deux résultats de regroupement, en points roses

  • Résultats améliorés grâce aux transformations de données
Confidentialité des données et anonymisation en Python

Méthode du coude

Image du tracé obtenu après application de la méthode du coude sur les données

Confidentialité des données et anonymisation en Python

Epsilon

from diffprivlib.models import KMeans as model

# Calculer les grappes avec le modèle DP model = dp_Kmeans(epsilon=0.2, n_clusters=3)
# Exécuter le modèle et obtenir les grappes clusters = model.fit_predict(X)
Confidentialité des données et anonymisation en Python

Epsilon

Image montrant deux nuages de points avec les grappes résultantes

Confidentialité des données et anonymisation en Python

Passons à la pratique !

Confidentialité des données et anonymisation en Python

Preparing Video For Download...