KDnuggets

Anonymizing Production Data for Data Science with Mimesis

8.5内容质量
Anonymizing Production Data for Data Science with Mimesis

TL;DR · AI 摘要

This article demonstrates how to anonymize sensitive production data for data science using the Mimesis library in Python. It provides a step-by-step guide to install Mimesis, generate synthetic data for personal identifiable information (PII), and replace real PII in a dataset with anonymized data, ensuring data privacy and compliance.

核心要点

  • Mimesis is an open-source Python library that generates realistic fake data efficiently.
  • Anonymizing production data is crucial for privacy and compliance in data science projects.
  • Using Mimesis, sensitive data like names, emails, and phone numbers can be replaced with synthetic data, maintaining the structure and utility of the dataset for analysis.

结构提纲

按章节快速跳转。

  1. Explains the importance of anonymizing production data in data science projects and introduces Mimesis as a tool for generating realistic fake data.

  2. Guides through installing Mimesis, creating a mock dataset, initializing a person provider, replacing sensitive data with synthetic data, and verifying the results.

思维导图

用一张图看清主题之间的关系。

查看大纲文本(无障碍 / 无 JS 友好)
  • Anonymizing Production Data with Mimesis

金句 / Highlights

值得收藏与分享的关键句。

  • Mimesis is an open-source Python library that stands out for its ability to generate realistic 'fake' data in a high-performance fashion.

    Introduction

    ⬇︎ 下载 PNG𝕏 分享到 X
  • Assuming you are new to Mimesis, you may need to install it in your Python environment with a command like: pip install mimesis

    Step-by-Step Procedure

    ⬇︎ 下载 PNG𝕏 分享到 X
  • From this point onwards, the process to anonymize personally identifiable information (PII) is quite simple. All it takes is replacing the sensitive columns — specified by us — with freshly generated

    Step-by-Step Procedure

    ⬇︎ 下载 PNG𝕏 分享到 X
#Data Anonymization#Mimesis#Python#Data Science
打开原文

#介绍

生产数据通常受到显著的隐私和合规性约束。因此,在几乎每一个涉及推出数据驱动的产品、服务或解决方案的现实世界数据科学项目中,对生产数据进行匿名化处理变得至关重要。

[Mimesis](https://mimesis.name/master/) 是一个开源的 Python 库,以其能够以高性能的方式生成现实的“假”数据而脱颖而出。Mimesis 在本地运行,并提供了一个免费、强大的数据管道解决方案。本文将向您展示如何使用此库来匿名化敏感的生产数据,并基于一个您可以轻松在 IDE 或笔记本环境中尝试的分步示例。

#分步过程

假设您是 Mimesis 的新手,您可能需要在 Python 环境中安装它,使用如下命令:

pip install mimesis

如果您在 Google Colab 笔记本环境或其他类似环境中工作,请在 pip 命令前面加上 !

现在我们准备开始了!我们将考虑一个围绕软件产品的分层订阅系统的场景。为了简单起见,我们将合成一个模拟的客户数据集,其中包含关于客户及其订阅类型的数据。数据集中的某些变量包含高度敏感的数据,如下所示:

code
import pandas as pd

# 创建模拟的“生产”客户数据集
production_data = {
    'user_id': [101, 102, 103, 104],
    'real_name': ['Alice Smith', 'Bob Jones', 'Charlie Brown', 'Diana Prince'],
    'email': ['[email protected]', '[email protected]', '[email protected]', '[email protected]'],
    'phone': ['555-0100', '555-0101', '555-0102', '555-0103'],
    'subscription_tier': ['Premium', 'Basic', 'Basic', 'Enterprise']
}

df = pd.DataFrame(production_data)
print("--- 原始敏感数据 ---")
print(df.head())

虽然在我们的示例中,订阅等级可能不一定是敏感数据,但用户姓名、电子邮件和电话号码是敏感的。借助 Mimesis,我们可以初始化一个提供者:一种定制的数据匿名化模板,适用于我们所拥有的数据类型。由于我们的数据观察与人员相关,我们可以导入并使用 Person 类——一个提供者,它给定特定的语言(如英语)并借助随机种子,可以用来生成真实个人数据的假替代品:

code
from mimesis import Person
from mimesis.locales import Locale

# 为英语地区初始化 Person 提供者
person = Person(locale=Locale.EN, seed=42)

从这一点开始,匿名化个人身份信息(PII)的过程非常简单。只需替换敏感的列——由我们指定——用 Mimesis 人地区生成器新鲜生成的数据即可。这是通过遍历包含整个数据集的 DataFrame 对象,并为每个给定属性调用合适的 Mimesis 函数来现实地创建数据替代品来实现的:

code
# 1. 用假的、现实的名字替换真实名字
df['real_name'] = [person.full_name() for _ in range(len(df))]

# 2. 用假的电子邮件替换真实的电子邮件
df['email'] = [person.email() for _ in range(len(df))]

# 3. 替换真实的电话号码
df['phone'] = [person.telephone() for _ in range(len(df))]

# 4. 重命名列以反映它不再是一个真实的名字
df.rename(columns={'real_name': 'anon_name'}, inplace=True)

请注意,Mimesis 的 Person 类提供了专门的函数来生成全名、电子邮件和电话号码等。此外,将列重命名为 anon_name,以反映数据集中的名字现在不再是真实的,而是匿名化的。

现在,我们验证结果,查看转换后的 DataFrame。敏感的 PII 字段已经完全改变:它们现在被合法看起来的合成数据所覆盖,同时保持整个数据集的结构,并且对于下游分析的重要信息,如 subscription_tier 完全保持不变。

code
print("\n--- 用于数据科学分析的匿名化数据 ---")
print(df.head())

输出:

code
--- 用于数据科学分析的匿名化数据 ---
   user_id         anon_name                    email            phone  \
0      101    Anthony Reilly    [email protected]     +13312271333   
1      102           Kai Day    [email protected]  +1-205-759-3586   
2      103  Cleveland Osborn     [email protected]     +13691067988   
3      104       Zack Holder  [email protected]  +1-574-481-3676   

  subscription_tier  
0           Premium  
1             Basic  
2             Basic  
3        Enterprise

太棒了!我们刚刚通过几个简单的步骤,对在现实世界的数据科学项目和分析中通常发现的几个敏感数据字段进行了匿名化处理——所有这些都得益于 Mimesis 是开源的,无需任何费用。

最后,这里有一些关于我们在本教程中涵盖的匿名化过程的最佳实践观察

  • 我们直接在 DataFrame 中替换列。根据您的上下文,考虑这是否是正确的方法,或者在某些情况下,如果您有丢失原始数据的风险,是否希望将新信息存储在单独的 DataFrame 中。
  • Mimesis 以数据一致的方式运行,因此生成的数据符合预期的数据类型。
  • 种子有助于保持生成信息在不同运行之间的 consistency,并促进可重复性。

#总结

在本文中,我们展示了如何使用 Mimesis——一个强大的 Python 库,用于生成匿名和虚假数据——将敏感的生产数据集转换为可以安全用于进一步分析的版本,而不会泄露如真实人物的个人身份信息(PII)等私人信息。

[](https://www.linkedin.com/in/ivanpc/)**[Iván Palomares Carrascosa](https://www.linkedin.com/in/ivanpc/)** 是人工智能、机器学习、深度学习和大语言模型领域的领导者、作家、演讲者和顾问。他培训和指导他人在现实世界中利用人工智能。