我们如何使数据混淆或“去识别化”以使其匿名并公开共享?

数据挖掘 r 数据集 匿名化
2021-10-08 15:32:28

现在,我正在准备一个小数据集,通过删除敏感信息向公众发布。在研究它时,我想知道......在数据集中处理私有或敏感多项式属性的最佳实践是什么?(*)我听说创建匿名或置换是通过去标识化、模糊化、匿名化实现的。

但是,我想在数据科学/分析中了解有关此主题的更多信息。我对可以在 R 中使用的包和概念特别感兴趣。

(*)除了完全删除敏感属性或使用哈希码加密的明显解决方案之外。我有点熟悉如何通过关联属性的能力来复杂化这个问题

1个回答

我曾经对此进行过几次讨论,我认为您应该了解三个不同的概念。

不同的属性

属性可以分为三个不同的类别。硬标识符是指特定的人,例如全名或护照号码。软标识符的组合也可用于识别单个人,因为该组合是唯一的。敏感属性是侵犯隐私并且应该受到保护的属性。

衡量隐私

有几种衡量数据集匿名程度的方法。这些措施可帮助您专注于需要更改的属性。为了满足越来越强的要求,您有:

  1. 一个数据集是ķ-匿名,如果软标识符的每个组合至少出现ķ次。
  2. 一个数据集是一世-如果对于软标识符的每个组合至少有一世 敏感属性的不同值。
  3. 一个数据集是-如果对于软标识符的每个组合,敏感属性的分布不超过 (即KL-divergence)不同于敏感属性的全局分布。

隐私保护修改

硬标识符可以用掩码或假化来处理。屏蔽是指删除硬标识符。一种不太激烈的方法是 假名化,其中每个记录的硬标识符都有一个只有数据集创建者知道的假名(例如散列)。

软标识符可以通过抑制、泛化或随机化来处理。抑制软标识符的值是指将其替换为默认值(例如“*”或模式)。另一种称为泛化的策略是创建相似的变量组(例如,“10-20 岁”而不是 19 岁)。第三种方法是通过添加零均值噪声来为定量变量添加随机性。

敏感属性可以用排列或随机化来处理。排列是指在软标识符的每个组合中排列敏感属性(在一个至少为2-匿名的)。与软标识符一样,定量敏感属性也可以通过添加噪声来随机化。

附言。作为一个 R 包,你可以考虑sdcMicro,这个指南