【问题标题】:How to prepare data in the input format table and metadata for the Synthetic Data Vault (SDV) library如何为 Synthetic Data Vault (SDV) 库准备输入格式表和元数据中的数据
【发布时间】:2022-10-15 04:23:13
【问题描述】:

我想使用 Synthetic Data Vault (SDV) 库的合成数据生成方法(参考https://sdv.dev/SDV/index.html),但我不能。我认为我的问题是如何以“.fit()”方法所需的输入格式准备数据。

演示代码如下:

from sdv import SDV, load_demo

metadata, tables = load_demo(metadata=True)

SDV().fit(metadata, tables)

sampled = sdv.sample_all()

对象“元数据”是:

type(metadata) = <class 'sdv.metadata.dataset.Metadata'>

对象“表”是 3 个数据框的字典:

type(tables) = <class 'dict'>
type(tables['users']) = <class 'pandas.core.frame.DataFrame'>

我的案例研究从 Pandas 数据框开始:

df_input = pd.read_csv("file.csv")

所以我可以将“表”对象实例化为字典:

table_input={'input':df_input}

但我不确定如何实例化“元数据”对象。我努力了:

from sdv  import Table  
metadata_input=Table(name='input',
                     field_names =df_input.columns.tolist(),
                     field_types = {'ID':'int64',
                                    'Type':'object',
                                    'Air temperature [K]':'float64',
                                    'Rotational speed [rpm]':'int64',
                                    },
                     primary_key = 'ID')

但这不起作用:

sdv.fit(metadata=metadata_input, 
          tables= table_input) 

错误是:

TypeError: 'Table' object is not subscriptable

最后,我应该如何创建元数据对象?

【问题讨论】:

    标签: python pandas data-generation synthetic sdv


    【解决方案1】:

    自述文件中的SDV 案例是为multi-table 数据集设计的。为了使用 single-table 案例(这将是您的案例),您可以使用 GaussianCopula 模型并跳过您当前正在执行的一些步骤。

    这是使用您的数据框的示例:

    import pandas as pd
    from sdv.tabular import GaussianCopula
    
    df_input = pd.read_csv('file.csv')
    
    model = GaussianCopula()
    model.fit(df_input)
    synthetic_data = model.sample(100) # sample 100 new rows
    

    高级用法可以参考文档:https://sdv.dev/SDV/user_guides/single_table/gaussian_copula.html

    【讨论】:

      猜你喜欢
      • 2022-11-14
      • 2016-02-03
      • 2020-05-20
      • 1970-01-01
      • 2016-07-05
      • 1970-01-01
      • 2013-11-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多