当我们使用AdaBoost进行目标检测时,我们需要为每个阶段(AdaBoost的迭代)设置TPR和FPR。
我们需要高TPR和低FPR。
据我所知,结果是:
总TPR = (stage1 TPR)(stage2 TPR) .(StageN TPR)
例如,0.9*0.9*0.9~=0.729
总FPR = (stage1 FPR)(stage2 FPR) .(StageN FPR)
FPR 0.5*0.5*0.5= 0.125也是如此
所以你使用的阶段越多,你得到的FPR就越低,但TPR也会减少。
那么,为什么不在每个阶段使用TPR = 0.9999(9)和FPR = 0.00001,并且有少量的阶段呢?
如何选择每个阶段的TPR和FPR?它如何取决于阶段的数目?
发布于 2015-06-03 11:27:01
你是正确的,在如何计算总fpr和tpr,并观察到,随着更多的阶段,总fpr和tpr下降。我们不使用tpr为0.999999和fpr为0.000001的原因是,它将导致提升过程生成阶段,与许多弱分类器来实现这些速率。你的目标是一个高的tpr和一个低的整个级联,但如果你用这样的极端值训练阶段,你只需要一个阶段,因为它已经是一个很好的分类器与这些比率。
因此,我们通常使用像tpr = 0.99和fpr = 0.5这样的值的原因是为了保持阶段小和简单,并使用级联结构从错误的分类中恢复。实质上,tpr为0.99和fpr为0.5意味着任何阶段都必须检测99%的阳性样本,同时允许将50%的阴性样本分类为阳性。任何在第一阶段被归类为阳性的东西都会转移到第二阶段,然后再处理假阳性。其中,政府再接纳最多50%,然后转至第三阶段,以此类推。许多阶段的优点是,如果第一阶段拒绝一个样本,您不需要评估任何其他阶段,这将节省大量时间。
设fpr = 0.5,tpr = 0.99和20个阶段,则最终fpr为0.5^20 = 9.5*10e-7,最终tpr为0.99^20 = 0.82。
根据算法允许您选择的内容,您可以计算相应的fpr和tpr。例如,如果给出了阶段N和最终fpr的数目,您可以取最后fpr的第N根来得到阶段fpr。如果给出了舞台和最终的fpr,则可以使用log10并计算出至少要达到最终fpr (N = log10(final fpr)/log10(stage fpr) )所需的阶段数。
https://stackoverflow.com/questions/30487692
复制相似问题