【问题标题】:Can we build a model with different input vector size in training and testing data?我们可以在训练和测试数据中构建具有不同输入向量大小的模型吗?
【发布时间】:2019-07-31 12:10:31
【问题描述】:

我使用 keras 构建逻辑回归模型。我的输入训练向量的形状是 10。[var1,var2,var3,var4,var5,var6,var7,var8,var9,and var10] 是二分类,所以目标标签y为0或1。

有一次,我尝试了模型,我想用大小为 6 的输入向量进行预测?所以,训练和测试或预测数据的向量大小是有区别的。

这可能吗?有没有机器学习算法支持这样的功能?

代码如下:


classifier.add(Dense(units = 50, kernel_initializer = 'uniform', activation = 'relu', input_dim = 5))
classifier.add(Dense(units = 1, kernel_initializer = 'uniform', activation = 'sigmoid'))


# compile ANN
classifier.compile(optimizer = optimizer, loss = 'binary_crossentropy', metrics = ['accuracy'])

# Fitting the data
hisroy =classifier.fit(X_train, y_train, batch_size = 5, epochs = 100)

【问题讨论】:

  • 为什么训练和测试中向量的大小不同?
  • 因为这是我在测试数据中唯一可以拥有的向量
  • 是的,但是列的区别是什么?您是否生成了一些特征?训练集中和测试集中的列数应该相同。我不知道有任何方法可以将知识从 10 列训练的模型转移到 6 列预测模型...
  • 我认为最正确的处理方法是仅使用始终可用的 6 个功能重新训练模型。如果你打算在 6 个特征数据上使用这个模型,那么用剩下的 4 个来训练模型是没有意义的。

标签: python machine-learning keras logistic-regression


【解决方案1】:

如果您使用 6 个输入执行预测,但使用 10 个输入进行训练,那么您的模型很可能不会尽可能高效。您基本上将具有“死”相关性,因为您的输入将不存在 - 因此在使用新数据时无法很好地关联正确的输出。通过使用这十个输入进行训练,您还可以从您实际使用的六个输入中减少可能的依赖/相关行为,因为您的模型从所有十个输入中学习。从技术上讲,您可以使用您未使用的四个的默认值填充您的输入,但我再一次看到,用 10 个训练没有任何好处,但用 6 个进行预测。

【讨论】:

    猜你喜欢
    • 2021-10-30
    • 1970-01-01
    • 2011-01-04
    • 2023-03-12
    • 2020-05-06
    • 2020-06-07
    • 2017-04-05
    • 2019-11-27
    • 1970-01-01
    相关资源
    最近更新 更多