我有一个回归数据集,其中大约 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])
注意:我尝试了概率模型(泊松回归和离散逻辑混合分布回归),它们提供了很好的结果,但训练不稳定(损失经常发散)。