如何在Synthcity库的TimeGAN模型中无结果变量完成训练?
解决Synthcity TimeGAN无结果特征的训练问题
要在没有结果特征的情况下训练TimeGAN,你可以通过以下两种方式处理TimeSeriesDataLoader的outcome参数:
方法一:显式传入outcome=None
TimeSeriesDataLoader的outcome参数支持传入None来表示没有结果特征,只需在实例化时明确指定该参数即可,无需省略:
# instantiate time series data loader loader = TimeSeriesDataLoader( temporal_data=temporal_dataframes, observation_times=observation_data, static_data=static_data, outcome=None # 明确声明无结果特征 ) plugin_params = dict( n_iter = 20, batch_size = 100, lr = 0.001, generator_n_layers_hidden = 2, generator_n_units_hidden = 2, discriminator_n_layers_hidden = 2, discriminator_n_units_hidden = 2 ) syn_model = Plugins().get("timegan", **plugin_params) syn_model.fit(loader)
方法二:构造空的结果特征集合
如果传入None仍报错,可以构造一个空的结果数据结构(比如空DataFrame或空数组),确保样本数量与其他数据匹配:
import pandas as pd # 创建空的结果特征DataFrame outcome_data = pd.DataFrame() # instantiate time series data loader loader = TimeSeriesDataLoader( temporal_data=temporal_dataframes, observation_times=observation_data, static_data=static_data, outcome=outcome_data ) plugin_params = dict( n_iter = 20, batch_size = 100, lr = 0.001, generator_n_layers_hidden = 2, generator_n_units_hidden = 2, discriminator_n_layers_hidden = 2, discriminator_n_units_hidden = 2 ) syn_model = Plugins().get("timegan", **plugin_params) syn_model.fit(loader)
TimeGAN的核心训练逻辑依赖时间序列和静态特征,空的结果特征不会对模型训练产生影响,仅用于满足加载器的参数格式要求。
内容的提问来源于stack exchange,提问作者Leyla Elkhamlichi
相关产品推荐
相关产品推荐

