表格数据集的编制

Agumentation of Tabular Dataset

提问人:Asif 提问时间:5/16/2023 最后编辑:Asif 更新时间:5/17/2023 访问量:53

问:

我正在尝试增加我一直在使用的数值数据集的大小。数据集包含以下列:['Name', 'O3_1hr', 'O3_4hr', 'O3_8hr', 'PM10 1 hr', 'PM10', 'AQI_O3_1hr', 'AQI_O3_4hr', 'AQI_PM10', 'AQI_Site', 'Date', 'Time', 'Latitude', Longitude']

以前,我尝试使用 GAN(生成对抗网络)进行数据增强。GAN的架构是:

def build_generator(latent_dim):
  model = Sequential()
  model.add(Dense(128, input_dim=latent_dim))
  model.add(LeakyReLU(alpha=0.2))
  model.add(BatchNormalization(momentum=0.8))
  model.add(Dense(256))
  model.add(LeakyReLU(alpha=0.2))
  model.add(BatchNormalization(momentum=0.8))
  model.add(Dense(512))
  model.add(LeakyReLU(alpha=0.2))
  model.add(BatchNormalization(momentum=0.8))
  model.add(Dense(14, activation='sigmoid'))
  model.add(Reshape((14,)))
  noise = Input(shape=(latent_dim,))
  feature_gen = model(noise)
  return Model(noise, feature_gen)

def build_discriminator():
  model = Sequential()
  model.add(Dense(512, input_dim=14))
  model.add(LeakyReLU(alpha=0.2))
  model.add(Dropout(0.4))
  model.add(Dense(256))
  model.add(LeakyReLU(alpha=0.2))
  model.add(Dropout(0.4))
  model.add(Dense(128))
  model.add(LeakyReLU(alpha=0.2))
  model.add(Dropout(0.4))
  model.add(Dense(1, activation='sigmoid'))
  feature = Input(shape=(14,))
  validity = model(feature)
  return Model(feature, validity)


def build_gan(generator, discriminator):
  discriminator.trainable = False
  gan_input = Input(shape=(100,))
  generated_feature = generator(gan_input)
  gan_output = discriminator(generated_feature)
  gan = Model(gan_input, gan_output)
  gan.compile(loss='binary_crossentropy', optimizer=Adam(lr=0.0001, beta_1=0.5))
  return gan

其结果如下:

Epoch 999/1000 [Dis loss: 0.3747815638780594, acc real: 78.91%, acc fake: 82.81%] [Gen loss: 2.687302589416504. 

我做了很多参数调整工作。这个精度是不可接受的,非常低。 我将不胜感激这方面的任何指导或建议。具体来说,我对数据增强的替代方法或任何其他技术感兴趣,这些方法可以有效地扩展数字数据集,同时保留数据中已经存在的完整性和模式。

Python Keras 对抗-网络 数据生成

评论

0赞 Nick ODell 5/17/2023
为什么 87% 的准确率很差?这是什么准确性?鉴别器,还是在GAN数据和原始数据上训练的整体模型?
0赞 Asif 5/17/2023
对不起,有一个错别字。我更新了问题,并为GAN及其结果添加了代码。
0赞 Nick ODell 5/17/2023
GAN 是对抗性的。如果鉴别器在区分真实数据和假数据方面做得不好,这可能只是意味着生成器非常擅长制作合理的数据。
0赞 Asif 5/17/2023
让我们考虑一下,对于每个纪元,真实精度 = 0%,假精度 = 100%,并在每个纪元 14、18、23、28 等中合并鉴别器和生成器的损失增加。这是什么意思?

答: 暂无答案