我正在使用https://www.tensorflow.org/api_docs/python/tf/estimator/DNNClassifier
假设我有一个分类问题。试图对 2 件事进行分类。Class1是Happy Face,Class2不是Happy Face。在这个特定的场景中,每天查看 1,000 多个样本时,我只想抓住前 10 个快乐面孔。所以说真的,我只是想非常有信心,前 10 个面孔是快乐面孔。因此,如果它将一张快乐的脸归类为一张不快乐的脸,我可以接受。它可能会错过一些(或者说实话,它会在每天审查的 1000 多个中的 100 个)。但是,如果它错误地将一张不开心的脸归类为开心的脸……我不会对结果感到满意。
So we could say that: GOOD = TP = (truth) Happy Face, (prediction) Happy Face BAD = FP = (truth) Not Happy Face, (prediction) Happy Face GOOD = TN = (truth) Not Happy Face, (prediction) Not Happy Face OK = FN = (truth) Happy Face, (prediction) Not Happy Face
几乎,我可以忍受偶尔的 FN(假阴性)。但我真的不想要 FP(误报)
我有兴趣使用权重列来“减重”一个类的所有内容,并“增重”另一个类。
最后,我想要某种有偏的损失/成本函数。训练时,FP 应该“花费”更多,FN 应该仍然花费,但要少一些。查看 DNNClassifier,似乎 weight_column 可能是答案。
训练时,我可以将所有 Happy Faces 的权重设置为 1.5+(或其他东西,需要进行实验)。我可以将所有 Not Happy Faces 设置为 0.5(或其他值)。
所以,归结为几个问题:
这就是重量列的用途吗?
我看到权重列应该是一个特征/输入。在这种情况下,我不希望将权重列用作特征,因为我假设模型会了解权重与分类的相关性,并严重依赖该输入作为预测变量。那么,tensorflow 是否使用权重列作为输入?我希望它不会。
假设/希望 TF 不使用权重列作为输入,在预测/评估时,我应该为权重列传入什么?1?
如果 weight_column 不是答案,那么处理这种情况的推荐解决方案是什么(一个特定类的有偏成本函数)?我不需要模型在所有分类上都是 100% 准确的。但是对于一个类,当它说它是一张快乐的脸时,我希望它非常自信地认为它是一张快乐的脸。如果它漏掉了几张Happy Faces,它就会认为它们不是Happy Faces。没关系。只要我每天得到我的前 10 个“最快乐”的面孔,我就很高兴 :)
谢谢你的帮助。我很感激。