Modele klastrowania z dyferencjalną prywatnością

Prywatność danych i anonimizacja w Pythonie

Rebeca Gonzalez

Data engineer

Porównanie modeli

Obraz przedstawiający 3 klastry po zastosowaniu nieprywanego k-means

Obraz przedstawiający 3 klastry po zastosowaniu prywatnego k-means

Prywatność danych i anonimizacja w Pythonie

Porównanie modeli

Obraz pokazujący różnicę między wynikami klastrowania jako różowe punkty

  • Różnica między klastrami obu modeli
  • Większość wyników jest wspólna
Prywatność danych i anonimizacja w Pythonie

Budowanie modeli klastrowania z DP

from diffprivlib.models import KMeans

# Computing the clusters with the DP model model = KMeans(epsilon=1, n_clusters=3)
# Run the model and obtain clusters clusters = model.fit_predict(X)
Prywatność danych i anonimizacja w Pythonie

Ulepszanie modeli klastrowania DP

  • Dane można wstępnie przetworzyć przed klastrowaniem.
  • Skalowanie cech, np. StandardScaler, oraz redukcja wymiarowości, np. PCA.
    • Aby zmniejszyć inercję modelu
    • Uzyskać dokładniejsze grupy segmentacji
  • Używamy diffprivlib tak samo jak modeli sklearn.
Prywatność danych i anonimizacja w Pythonie

Ulepszanie modeli klastrowania DP

from sklearn.decomposition import PCA

# Initialize PCA pca = PCA()
# Fit transform data with PCA X = pca.fit_transform(X)
# Computing the clusters with the DP model model = dp_Kmeans(epsilon=1, n_clusters=3)
# Run the model and obtain clusters clusters = model.fit_predict(X)
Prywatność danych i anonimizacja w Pythonie

Ulepszanie modeli klastrowania DP

Obraz przedstawiający dwa wykresy punktowe z klastrami

Prywatność danych i anonimizacja w Pythonie

Ulepszanie modeli klastrowania DP

Obraz pokazujący różnicę między wynikami klastrowania jako różowe punkty

  • Lepsze wyniki dzięki transformacjom danych
Prywatność danych i anonimizacja w Pythonie

Metoda łokcia

Obraz wynikowego wykresu po zastosowaniu metody łokcia na danych

Prywatność danych i anonimizacja w Pythonie

Epsilon

from diffprivlib.models import KMeans as model

# Computing the clusters with the DP model model = dp_Kmeans(epsilon=0.2, n_clusters=3)
# Run the model and obtain clusters clusters = model.fit_predict(X)
Prywatność danych i anonimizacja w Pythonie

Epsilon

Obraz przedstawiający dwa wykresy punktowe z klastrami

Prywatność danych i anonimizacja w Pythonie

Czas na ćwiczenia!

Prywatność danych i anonimizacja w Pythonie

Preparing Video For Download...