跳转到主要内容

可逆数据转换

项目描述


此存储库是The Synthetic Data Vault Project的一部分,来自DataCebo

Development Status PyPi Shield Unit Tests Downloads Coverage Status Slack

概述

RDT(可逆数据转换)是一个Python库,将原始数据转换为完全数值数据,准备进行数据科学。这些转换是可逆的,允许您将数值数据转换回原始格式。

安装

使用pipconda安装RDT。我们建议使用虚拟环境以避免与设备上的其他软件冲突。

pip install rdt
conda install -c conda-forge rdt

有关使用可逆数据转换的更多信息,请访问RDT文档

快速入门

在这篇简短教程系列中,我们将引导您通过一系列步骤,帮助您开始使用 RDT 转换列、表格和数据集。

加载演示数据

安装 RDT 后,您可以开始使用演示数据集。

from rdt import get_demo

customers = get_demo()

此数据集包含一些随机生成的值,描述了一个在线市场的客户。

  last_login email_optin credit_card  age  dollars_spent
0 2021-06-26       False        VISA   29          99.99
1 2021-02-10       False        VISA   18            NaN
2        NaT       False        AMEX   21           2.50
3 2020-09-26        True         NaN   45          25.00
4 2020-12-22         NaN    DISCOVER   32          19.99

让我们转换这些数据,使每列都转换为全数值数据,以便进行数据科学。

创建 HyperTransformer 和配置

HyperTransformer 能够转换多列数据集。

from rdt import HyperTransformer

ht = HyperTransformer()

HyperTransformer 需要知道您的数据集中的列以及要应用于每列的转换器。这些由配置描述。我们可以要求 HyperTransformer 根据我们计划使用的数据进行自动检测。

ht.detect_initial_config(data=customers)

这将创建并设置配置。

Config:
{
    "sdtypes": {
        "last_login": "datetime",
        "email_optin": "boolean",
        "credit_card": "categorical",
        "age": "numerical",
        "dollars_spent": "numerical"
    },
    "transformers": {
        "last_login": "UnixTimestampEncoder()",
        "email_optin": "BinaryEncoder()",
        "credit_card": "FrequencyEncoder()",
        "age": "FloatFormatter()",
        "dollars_spent": "FloatFormatter()"
    }
}

sdtypes 字典描述了每列的语义数据类型,而 transformers 字典描述了每列要使用的转换器。您可以自定义转换器和它们的设置。(有关更多信息,请参阅转换器词汇表)。

拟合和使用 HyperTransformer

fit 阶段学习数据时,HyperTransformer 会引用配置。

ht.fit(customers)

转换器拟合后,即可使用。使用 transform 方法一次转换数据集的所有列。

transformed_data = ht.transform(customers)
   last_login.value  email_optin.value  credit_card.value  age.value  dollars_spent.value
0      1.624666e+18                0.0                0.2         29                99.99
1      1.612915e+18                0.0                0.2         18                36.87
2      1.611814e+18                0.0                0.5         21                 2.50
3      1.601078e+18                1.0                0.7         45                25.00
4      1.608595e+18                0.0                0.9         32                19.99

HyperTransformer 将分配的转换器应用于每个单独的列。现在,每个列都包含完全数值化的数据,您可以将其用于您的项目!

当您完成项目后,您还可以使用 reverse_transform 方法将数据转换回原始格式。

original_format_data = ht.reverse_transform(transformed_data)
  last_login email_optin credit_card  age  dollars_spent
0        NaT       False        VISA   29          99.99
1 2021-02-10       False        VISA   18            NaN
2        NaT       False        AMEX   21            NaN
3 2020-09-26        True         NaN   45          25.00
4 2020-12-22       False    DISCOVER   32          19.99

接下来是什么?

要了解更多关于可逆数据转换的信息,请访问 RDT 文档




合成数据宝库项目 首次于 2016 年在麻省理工学院的 数据到 AI 实验室 创建。经过 4 年的企业研究和推广,我们于 2020 年创建了 DataCebo,目标是扩大项目。如今,DataCebo 是 SDV 的自豪的开发者,SDV 是合成数据生成和评估最大的生态系统。它拥有多个支持合成数据的库,包括

  • 🔄 数据发现与转换。反转转换以重现真实数据。
  • 🧠 多种机器学习模型 -- 从 Copulas 到深度学习 -- 用于创建表格、多表格和时间序列数据。
  • 📊 测量合成数据的质量和隐私,并比较不同的合成数据生成模型。

开始使用 SDV 软件包 -- 一个完全集成的解决方案,您的合成数据一站式商店。或者,使用独立的库以满足特定需求。

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适合您平台的项目文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

rdt_identity-1.9.2.tar.gz (119.9 kB 查看哈希值)

上传时间

构建分发

rdt_identity-1.9.2-py2.py3-none-any.whl (11.9 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持