从数据集中删除敏感信息,同时保留其对机器学习任务的有用性?

数据挖掘 机器学习 数据集 数据清理
2022-02-18 11:45:45

我有一个数据集,可用于训练未来的机器学习模型。

但是,它包含敏感信息(姓名和地址等个人标识符),难以长期存储或保留。

我想知道是否可以应用一些转换来删除敏感信息,同时保留它的有用性?

该数据集对于训练 NLP 相关模型特别有用,但我也对通用机器学习任务的通用解决方案(如果存在)感兴趣。

1个回答

这个问题有很多解决方案,它们都可以让你发布数据集。一般来说,有两个重要的因素,第一,该方法是否容易出错,第二,是否耗时。

第一个,是一个更简单和依赖的解决方案。如果你有一个你维护的名字字典,在你的数据库中,你可以做的是搜索给定的单词是否是一个名字的子字符串(可能通过 trie 搜索),然后检查它是否是一个名字你的数据库。如果是,用一些字符串替换它,即使像“Name101”这样简单的东西也很容易完成。对于地理位置和其他可能的敏感数据也可以这样做。这是一种不易出错且节省时间的方法。

如果您还没有做过前者,有一个解决方案,但是,它是一种称为命名实体识别 ( https://en.wikipedia.org/wiki/Named-entity_recognition ) 的自然语言处理技术,您可以在其中检测是否存在给定的单词是名称、位置或任何可能值得隐藏的东西。但是,请理解此方法不保证成功,它可能会隐藏您的大部分数据,但不能保证将其全部隐藏。这样可以节省时间,但肯定容易出错。

最后一种可能的选择是自己实际梳理数据并确保您已更改所有名称。这是一种容易出错且耗时的技术。

最终,您可以使用其中任何一种来完成任务,但根据您的数据收集方法或数据管道,其中一些是可能的。