跳转到主要内容

可逆数据转换

项目描述


此仓库是合成数据仓库项目的一部分,该项目由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年首次在麻省理工学院的数据到人工智能实验室创建。经过4年的企业研究和推广,我们于2020年创建了DataCebo,旨在扩大该项目。今天,DataCebo是SDV的骄傲开发者,SDV是最大的合成数据生成和评估生态系统。它拥有多个支持合成数据的库,包括

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

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

项目详情


发布历史 发布通知 | RSS订阅

下载文件

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

源代码分发

rdt-1.12.4.tar.gz (56.7 kB 查看哈希值)

上传时间 源代码

构建分发

rdt-1.12.4-py3-none-any.whl (65.3 kB 查看哈希值)

上传时间 Python 3

支持

AWSAWS 云计算和安全赞助商 DatadogDatadog 监控 FastlyFastly CDN GoogleGoogle 下载分析 MicrosoftMicrosoft PSF赞助商 PingdomPingdom 监控 SentrySentry 错误日志 StatusPageStatusPage 状态页面