Кластери з диференційною приватністю

Конфіденційність даних і анонімізація в Python

Rebeca Gonzalez

Data engineer

Порівняння моделей

Зображення: 3 кластери в даних після кластеризації звичайним k-means

Зображення: 3 кластери в даних після кластеризації приватним k-means

Конфіденційність даних і анонімізація в Python

Порівняння моделей

Зображення різниці між двома результатами кластеризації, показано рожевими точками

  • Різниця між отриманими кластерами моделей
  • Більшість точок збігаються
Конфіденційність даних і анонімізація в Python

Побудова кластеризації з диференційною приватністю

from diffprivlib.models import KMeans

# Обчислення кластерів за допомогою DP-моделі model = KMeans(epsilon=1, n_clusters=3)
# Запустіть модель і отримайте кластери clusters = model.fit_predict(X)
Конфіденційність даних і анонімізація в Python

Покращення DP-кластеризації

  • Дані можна попередньо опрацювати перед кластеризацією.
  • Масштабування ознак, як-от StandardScaler, і зменшення розмірності, наприклад PCA.
    • Щоб зменшити інерцію моделі
    • Щоб отримати точніші сегменти
  • У diffprivlib це робиться так само, як у моделях sklearn.
Конфіденційність даних і анонімізація в 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)
Конфіденційність даних і анонімізація в Python

Покращення DP-кластеризації

Зображення: два розсіювальні графіки з кластерами

Конфіденційність даних і анонімізація в Python

Покращення DP-кластеризації

Зображення різниці між двома результатами кластеризації, показано рожевими точками

  • Кращі результати завдяки трансформаціям даних
Конфіденційність даних і анонімізація в Python

Метод ліктя

Зображення підсумкового графіка після застосування методу ліктя

Конфіденційність даних і анонімізація в Python

Епсілон

from diffprivlib.models import KMeans as model

# Обчислення кластерів за допомогою DP-моделі model = dp_Kmeans(epsilon=0.2, n_clusters=3)
# Запустіть модель і отримайте кластери clusters = model.fit_predict(X)
Конфіденційність даних і анонімізація в Python

Епсілон

Зображення: два розсіювальні графіки з кластерами

Конфіденційність даних і анонімізація в Python

Давайте потренуємось!

Конфіденційність даних і анонімізація в Python

Preparing Video For Download...