我正在为学术研究准备一份数据集。原始数据集中包含了交易中的敏感信息,例如Credit card no
(信用卡号)、Customer email
(客户邮箱)、client ip
(客户端IP)、origin country
(来源国家)等。在这些数据离开我的原始数据源之前,我必须对这些敏感信息进行模糊处理,并将它们存储起来以供我的分析算法使用。数据中的一些字段是分类数据,模糊处理起来并不困难。问题在于非分类数据字段,如何最好地对它们进行模糊处理,以保持数据的基本统计特征,同时使其无法(至少在数学上非常困难)恢复到原始数据。
编辑:我使用Java作为前端来准备数据。准备好的数据随后将由Python处理,用于机器学习。
编辑2:为了解释我的情景,作为评论的跟进。我有如下数据字段:
'CustomerEmail', 'OriginCountry', 'PaymentCurrency', 'CustomerContactEmail','CustomerIp', 'AccountHolderName', 'PaymentAmount', 'Network','AccountHolderName', 'CustomerAccountNumber', 'AccountExpiryMonth','AccountExpiryYear'
我必须对这些字段中的数据(数据样本)进行模糊处理。我计划将这些字段视为特征(使用模糊处理后的数据),并针对一个二元类别标签(我有用于训练和测试样本的标签)训练我的模型。
回答:
对于非分类数据,没有通用的模糊处理方法,因为任何处理都会导致信息丢失。你能做的唯一事情是尝试列出哪些类型的信息是最重要的,并设计出保留这些信息的转换。例如,如果你的数据是Lat/Lng地理位置标签,你可以执行任何保持距离的转换,如平移、旋转等。如果这还不够,你可以将数据嵌入到较低维度的空间中,同时保持成对距离(有许多这样的方法)。总的来说,每种类型的非分类数据都需要不同的处理,每种处理都会破坏信息——你需要列出重要的属性,并找到保留这些属性的转换方法。