【发布时间】: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