差分プライバシー対応のクラスタリングモデル

Pythonで学ぶデータプライバシーと匿名化

Rebeca Gonzalez

Data engineer

モデルの比較

非プライベートk-meansでクラスタリング後の3つのクラスタを示す画像

プライベートk-meansでクラスタリング後の3つのクラスタを示す画像

Pythonで学ぶデータプライバシーと匿名化

モデルの比較

2つのクラスタリング結果の差分をピンクの点で示す画像

  • モデル間のクラスタ差分
  • 多くは共通の結果
Pythonで学ぶデータプライバシーと匿名化

差分プライバシー対応クラスタリングの構築

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)
Pythonで学ぶデータプライバシーと匿名化

DPクラスタリングの改善

  • クラスタリング前に前処理できます。
  • 特徴量のスケーリング(StandardScaler)、次元削減(PCA)など。
    • モデルの慣性を低減
    • セグメントの精度向上
  • diffprivlibでもsklearn同様に実施します。
Pythonで学ぶデータプライバシーと匿名化

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)
Pythonで学ぶデータプライバシーと匿名化

DPクラスタリングの改善

クラスタの散布図が2つ並んだ画像

Pythonで学ぶデータプライバシーと匿名化

DPクラスタリングの改善

2つのクラスタリング結果の差分をピンクの点で示す画像

  • データ変換で結果が改善
Pythonで学ぶデータプライバシーと匿名化

エルボー法

エルボー法を適用した結果のプロット画像

Pythonで学ぶデータプライバシーと匿名化

イプシロン(ε)

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)
Pythonで学ぶデータプライバシーと匿名化

イプシロン(ε)

クラスタの散布図が2つ並んだ画像

Pythonで学ぶデータプライバシーと匿名化

練習してみましょう!

Pythonで学ぶデータプライバシーと匿名化

Preparing Video For Download...