【问题标题】:Tensorflow model architecture for sparse dataset稀疏数据集的 TensorFlow 模型架构
【发布时间】:2021-05-31 18:03:50
【问题描述】:

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

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

n = 10000
zero_percentage = 0.95
zeros = np.zeros(round(n * zero_percentage))
non_zeros = np.random.randint(1,30,size=round(n * (1- zero_percentage)))
y = np.concatenate((zeros,non_zeros))
np.random.shuffle(y)
a = 50
b = 10
x =  np.array([np.random.randint(31,60) if element == 0 else  (element - b) / a for element in y])
y_classification = np.array([0 if element == 0 else 1 for element in y])

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

【问题讨论】:

    标签: python tensorflow functional-api


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2016-10-15
      • 2015-06-10
      • 2016-01-15
      • 2019-04-11
      • 2020-03-14
      • 2012-12-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多