稀疏数据集的 Tensorflow 模型架构

问题描述

我有一个回归数据集,其中大约 95% 的目标变量为零(另外 5% 在 1 到 30 之间),我正在尝试设计一个 Tensorflow 模型来对这些数据进行建模。我正在考虑实现一个结合了分类器和回归器的模型(检查分类器子模型的输出,如果它小于阈值,则将其传递给回归子模型)。我的直觉是这应该使用函数式 API 构建,但我找不到有用的资源。有什么想法吗?

这是生成我用来复制问题的数据的代码

import main
import values

def printValExp():
    print(main.expr)
    print(values.userDict)
    # print(main.Test.name)

注意:我试验了概率模型(泊松回归和离散逻辑混合分布回归),它们提供了良好的结果,但训练不稳定(损失经常发散)。

解决方法

与其尝试寻找一些启发式方法来平衡零值和其他值之间的训练,您可能想尝试一些可以更好地处理不平衡训练集的输入预处理方法(通常通过在运行模型之前映射到另一个空间,然后对结果进行逆运算);例如,embedding 层。或者,将值归一化到一个小范围(如 [-1,1])并在对数据评估模型之前应用激活函数。