def find_f_measure_threshold2(probs, labels, num_iters=100, seed=0.21):
_, num_classes = labels.shape[0:2]
best_thresholds = [seed] * num_classes
best_scores = [0] * num_classes
for t in range(num_classes):
thresholds = list(best_thresholds) # [seed]*num_classes
for i in range(num_iters):
th = i / float(num_iters)
thresholds[t] = th
f2 = fbeta_score(labels, probs > thresholds, beta=2, average='samples')
if f2 > best_scores[t]:
best_scores[t] = f2
best_thresholds[t] = th
print('\t(t, best_thresholds[t], best_scores[t])=%2d, %0.3f, %f' % (t, best_thresholds[t], best_scores[t]))
print('')
return best_thresholds, best_scores
评论列表
文章目录