差分隱私的分群模型

Data Privacy and Anonymization in Python

Rebeca Gonzalez

Data engineer

模型比較

以非隱私 k-means 分群後的 3 個叢集示意圖

以隱私 k-means 分群後的 3 個叢集示意圖

Data Privacy and Anonymization in Python

模型比較

兩種分群結果的差異(粉紅色點)

  • 兩種模型的叢集差異
  • 多數結果是一致的
Data Privacy and Anonymization in Python

建立差分隱私分群模型

from diffprivlib.models import KMeans

# 以 DP 模型計算叢集 model = KMeans(epsilon=1, n_clusters=3)
# 執行模型並取得叢集 clusters = model.fit_predict(X)
Data Privacy and Anonymization in Python

改進 DP 分群模型

  • 你可以在分群前先做資料前處理。
  • 特徵縮放如 StandardScaler,以及像 PCA 的降維方法。
    • 可降低模型的慣性(inertia)
    • 取得更精準的分群
  • 使用 diffprivlib 的方式與 sklearn 模型相同。
Data Privacy and Anonymization in Python

改進 DP 分群模型

from sklearn.decomposition import PCA

# 初始化 PCA pca = PCA()
# 以 PCA 擬合並轉換資料 X = pca.fit_transform(X)
# 以 DP 模型計算叢集 model = dp_Kmeans(epsilon=1, n_clusters=3)
# 執行模型並取得叢集 clusters = model.fit_predict(X)
Data Privacy and Anonymization in Python

改進 DP 分群模型

兩個分群結果的散佈圖比較

Data Privacy and Anonymization in Python

改進 DP 分群模型

兩種分群結果的差異(粉紅色點)

  • 透過資料轉換可提升結果
Data Privacy and Anonymization in Python

Elbow 方法

在資料上套用 elbow 方法後的結果圖

Data Privacy and Anonymization in Python

Epsilon

from diffprivlib.models import KMeans as model

# 以 DP 模型計算叢集 model = dp_Kmeans(epsilon=0.2, n_clusters=3)
# 執行模型並取得叢集 clusters = model.fit_predict(X)
Data Privacy and Anonymization in Python

Epsilon

兩個分群結果的散佈圖比較

Data Privacy and Anonymization in Python

一起來練習吧!

Data Privacy and Anonymization in Python

Preparing Video For Download...