我有三级分类问题。我训练分类器,然后绘制不同类别的ROC。
我需要获得每个类的阈值,以最大化TPR并最小化FPR。在Matlab中,这是返回的。有没有办法在python / sklearn中检索它?
感谢。
答案 0 :(得分:1)
所以我的想法是这样的:
import numpy as np
idx = np.linalg.norm(
(np.array([[0, 1]]) -np.stack([fpr, tpr], axis=1)),
axis=1).argmax()
max_thresh = thresholds[idx]
这里做了什么:将FPR和TPR堆叠在一起作为2D矢量。减去向量的每一行的左上角并采用标准。这计算距离。拿argmax知道最大值出现在哪一行。最后,返回该索引的阈值