Tensorflow 适用于大量if/else条件的最佳神经网络模型

Tensorflow 适用于大量if/else条件的最佳神经网络模型,tensorflow,machine-learning,neural-network,deep-learning,autoencoder,Tensorflow,Machine Learning,Neural Network,Deep Learning,Autoencoder,我有大量的数据。数据有13个参数,这些参数相互依赖,依赖关系由一些规则建立 示例:-如果说参数_-one是“A”,参数_-two是“B”,并且有规则说明参数_-one==A和参数_-two==B=>参数_-two==C,那么参数_-two应该是C(理想情况下)。所以,基本上有很多if/else语句 现在,我只有数据,我们必须让机器学习模型学习规则,这样无论何时出现任何不符合规则的数据:-如上面的例子,如果参数_三是“D”而不是“C”,那么它就是违反规则的。如何让模型学习这些规则 此外,这些规则不

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

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

现在,我只有数据,我们必须让机器学习模型学习规则,这样无论何时出现任何不符合规则的数据:-如上面的例子,如果参数_三是“D”而不是“C”,那么它就是违反规则的。如何让模型学习这些规则

此外,这些规则不能手动编写,因为有很多规则,而且不可伸缩

我的尝试

我想使用一个自动编码器并通过它传递训练数据。之后,对于每个数据,我们将使用重建损失来检查它是否是违规案例。然而,这是过度拟合,不能很好地处理测试数据

我以前也尝试过使用深度神经网络,但没有用。有人能帮我吗


提前感谢。

您可以使用Apriori或FP Growth之类的关联规则挖掘算法来生成频繁项目集

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

拥有关联规则后,可以为每个规则指定权重(或使用某些参数,如规则的置信度/提升度)

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

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


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

您可以使用关联规则挖掘算法(如Apriori或FP Growth)来生成频繁项目集

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

拥有关联规则后,可以为每个规则指定权重(或使用某些参数,如规则的置信度/提升度)

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

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


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

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