【问题标题】:Best neural network model for lot of if/else conditions许多 if/else 条件的最佳神经网络模型
【发布时间】:2020-03-21 14:43:38
【问题描述】:

我有大量数据。数据有 13 个参数,这些参数相互依赖,并且通过一些规则建立依赖关系。

示例:- 如果说 parameter_one 是“A”,parameter_two 是“B”,并且有规定 parameter_one==A 和 parameter_two==B=>parameter_three==C,那么 parameter_three 应该是 C(理想情况下)。所以,基本上是很多 if/else 语句。

现在,我只有数据,我们必须让机器学习模型学习规则,这样每当有任何不符合规则的数据出现时:- 如上例,如果 parameter_three 将是 ' D'而不是'C',则违反规则。如何让模型学习这些规则?

此外,规则不能手动编写,因为规则很多且无法缩放。

我的尝试

我想过使用自动编码器并通过它传递训练数据。之后,对于每个数据,我们将使用重建损失来检查它是否是违规案例。但是,它过度拟合并且在测试数据上效果不佳。

我之前也尝试过使用深度神经网络,但在那里没有帮助。有人可以帮我从这里出去吗?

提前致谢。

【问题讨论】:

  • 自动编码器不是一个坏主意。数据集有多大?你是如何对特征进行编码的?也许像 Apriori 这样的关联规则挖掘算法可以帮助您明确地找到规则。
  • @marcoromelli 训练数据集为 300 万。它只有不同的数据。为了验证,我有 150 万条数据。对于编码,我们将其转换为 one-hot 编码向量并使用它。我将检查 Apriori 算法。
  • 这么大的数据集过拟合应该不是问题。尝试调整自动编码器架构。如果您发布一些代码,人们可以更轻松地为您提供帮助。
  • 不,我们已经删除了重复的行。所有训练行都是不同的。

标签: tensorflow machine-learning neural-network deep-learning autoencoder


【解决方案1】:

您可以使用 Apriori 或 FP-Growth 等关联规则挖掘算法来生成频繁项集。

您可以从频繁项集中生成关联规则。

拥有关联规则后,您可以为每个规则分配权重(或使用一些参数,例如规则的置信度/提升)。

当您想在新数据条目上对其进行测试时,请进行加权求和(如果新条目满足规则,则使用规则的权重来计算新条目的得分/总和)。

如果为新条目生成的分数大于所选阈值,您可以说新条目通过了预设规则,否则它违反了规则。

加权求和使您可以灵活地分配关联规则的重要性。你也可以这样做,如果新条目不满足任何一个关联规则,那么它就违反了预设规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-25
    相关资源
    最近更新 更多