如何在Tensorflow中针对单个类别进行高特异性培训?

如何在Tensorflow中针对单个类别进行高特异性培训?,tensorflow,machine-learning,neural-network,time-series,recurrent-neural-network,Tensorflow,Machine Learning,Neural Network,Time Series,Recurrent Neural Network,我有一个GRU网络,它接收一系列数据,并将其标记为0类或1类。我希望该模型对类0具有高度的特异性(至少>=0.8),同时确保它仍然具有良好的灵敏度(希望达到接近0.5) 如何在Tensorflow中执行此操作?是否有一种方法可以让损失通过单一类别的特异性和敏感性的组合来确定?我并不真正关心类1预测的准确性,但是,在这种情况下,当预测类0时,预测是正确的非常重要,同时仍然有相当数量的类0预测(至少预测类0的时间是标签预测类0的时间的一半) 任何帮助都将不胜感激 以下是迄今为止我掌握的相关代码: s

我有一个GRU网络,它接收一系列数据,并将其标记为0类或1类。我希望该模型对类0具有高度的特异性(至少>=0.8),同时确保它仍然具有良好的灵敏度(希望达到接近0.5)

如何在Tensorflow中执行此操作?是否有一种方法可以让损失通过单一类别的特异性和敏感性的组合来确定?我并不真正关心类1预测的准确性,但是,在这种情况下,当预测类0时,预测是正确的非常重要,同时仍然有相当数量的类0预测(至少预测类0的时间是标签预测类0的时间的一半)

任何帮助都将不胜感激

以下是迄今为止我掌握的相关代码:

states_concat = tf.concat(axis=1, values=states)
logits = tf.layers.dense(states_concat, n_outputs)
softmax = tf.nn.softmax(logits=logits)
xentropy = tf.nn.sparse_softmax_cross_entropy_with_logits(labels=y, logits=logits)
loss = tf.reduce_mean(xentropy)

#Set up the optimizer with gradient clipping to minimize the chance of exploding values
optimizer = tf.train.MomentumOptimizer(learning_rate=learning_rate, momentum=0.9, use_nesterov=True)

我回答了我自己的问题

对于其他遇到这种麻烦的人来说,其他有用的术语是精确性和召回率,其中精确性衡量的是:真阳性/(真阳性+假阳性),召回率衡量的是敏感性

帮助我的链接有: