我正在尝试找到一种有效的方法来计算级联分类器的指标(TP,FP,TN,FN),每个分类器的输出浮点值得分都用于预测二进制。
例如,有两个分类器输出X_1
,X_2
(以该顺序层叠),并给定T_1
和T_2
,prediction = X_1 > T_1 or X_2 > T_2
的阈值。
因此,计算指标的暴力方式将是找到X_1和X_2的所有唯一值,然后使用这两个值的所有排列来计算预测和计算误差。
即像这样:
data = dict()
for t1 in np.unique(scores1):
for t2 in np.unique(scores2):
pred = np.where((scores1 > t1)|(scores2>t2))[0]
data[(t1,t2)] = dict(tp=gt[pred].sum(),
fp=(~gt)[pred].sum(),
tn=(~gt)[~pred].sum(),
fn=gt[~pred].sum())
此方法显然要花很长时间,我正在尝试寻找一种更有效的方法,类似于how sci-kit learn does this for binary classifiers。
必须有一种更有效的方法来计算这些指标,但是我还没有找到它。