0

我有一个包含名称、交易金额和交易执行地点的精确经度和纬度的 csv。我希望将最终文档匿名化-为此,我需要将其更改为 CSV,其中名称被散列(这应该很容易),并且经度和纬度在 2 公里的半径内被掩盖。即,更改坐标,使其与原始位置的距离不超过 2 公里,但采用随机方式,使其无法通过公式恢复。有谁知道如何以这种方式使用坐标?

4

1 回答 1

0

您可以使用局部敏感散列 (LSH)将相似的坐标(即在 2 公里半径内)映射到相同的值,概率很高。因此,映射到同一个桶的坐标将在欧几里得空间中更靠近。

否则,另一种技术是使用任何标准散列函数 y = H(x),并以 N 为模计算 y,其中 N 是坐标范围。假设您的坐标是 P = (500,700),并且您希望从 P 返回 [-x,x] KM 范围内的随机值。

P = (500,700)
Range = 1000 #1000 meters for example
#Anonymize co-ordinates to within specified range
ANON_X = hash(P[0]) % Range
ANON_Y = hash(P[1]) % Range
#Randomly add/subtract range
P = (P + ANON_X*random.choice([-1,1]), P+ANON_Y*random.choice([-1,1]))
于 2018-03-21T07:54:11.653 回答