我正在处理高度偏斜的计数数据集,该数据集通常适合负二项式。我想使用负二项式作为前馈神经网络上Keras或Tensorflow中的损失函数。
据我所知,在查看了可用的损失函数后,此类函数对于keras或tensorflow不存在(尽管我希望我错了,但我只是错过了一些东西)。
我环顾四周,我看到一些帖子建议仅将损失换成负二项式,但是在张量流中创建自定义损失似乎不只是将其替换为tf.contrib.distributions。负二项式
有几篇文章谈论为Tensorflow / keras创建自定义损失函数,例如:https://datascience.stackexchange.com/questions/25029/custom-loss-function-with-additional-parameter-in-keras 看完之后,我正在努力弄清楚如何编写代码。
我想知道是否1)有人已经使用负二项式创建了损失函数并愿意分享其编码方式,还是2)关于如何实现此功能的技巧。
我在这个项目上专门从事python工作。
提前了解所有帮助。
答案 0 :(得分:0)
我不知道负二项式损失,但是我知道如何实现自定义损失函数
def custom_loss(y_true, y_pred):
...
loss = ...
return loss
将y_true和y_pred视为张量。 (这意味着您无需使用np.pow(y_true,2)之类的功能,而应使用tensorflow或keras.backend中的功能)
通过自定义损失函数作为编译参数
model.compile(loss=custom_loss, optimizer='your favorite optimizer')