Модели кластеризации с дифференциальной приватностью

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

Rebeca Gonzalez

Data engineer

Сравнение моделей

Изображение 3 кластеров, полученных с помощью k-means без приватности

Изображение 3 кластеров, полученных с помощью k-means с приватностью

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

Сравнение моделей

Изображение разницы между двумя результатами кластеризации в виде розовых точек

  • Различия между кластерами двух моделей
  • Большинство результатов совпадает
Конфиденциальность данных и анонимизация в 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

Улучшение моделей кластеризации с ДП

  • Перед кластеризацией данные можно предварительно обработать.
  • Масштабирование признаков (StandardScaler) и методы снижения размерности, например PCA.
    • Для уменьшения инерции модели
    • Получение более точных групп сегментации
  • В diffprivlib это выполняется так же, как в моделях sklearn.
Конфиденциальность данных и анонимизация в Python

Улучшение моделей кластеризации с ДП

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

Улучшение моделей кластеризации с ДП

Изображение двух диаграмм рассеяния с кластерами

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

Улучшение моделей кластеризации с ДП

Изображение разницы между двумя результатами кластеризации в виде розовых точек

  • Результаты улучшились благодаря преобразованиям данных
Конфиденциальность данных и анонимизация в 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

Эпсилон

Изображение двух диаграмм рассеяния с кластерами

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

Давайте потренируемся!

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

Preparing Video For Download...