我在R/Python中有一个dataframe对象,它看起来像:
df columns:
fraud = [1,1,0,0,0,0,0,0,0,1]
score = [0.84, 1, 1.1, 0.4, 0.6, 0.13, 0.32, 1.4, 0.9, 0.45]
当我在Python中使用roc_curve
时,我得到fpr
、fnr
和{}。在
我有两个问题,可能有点理论,但请解释给我听:
这些门槛值是实际计算出来的吗?我手动计算了fpr
和fnr
,但是这些阈值是否等于上面的分数?
如何在R
中生成相同的fpr
、fnr
和{}?
Tags:
阈值通常对应于最大化tpr+tnr(灵敏度+特异性)的值,这被称为youdenj指数(tpr+tnr-1),但也有其他几个名称。在
以声纳数据集为例:
让我们在部分声纳数据上拟合模型,并在另一部分进行预测:
^{pr2}$根据列车数据拟合模型:
因此,如果将阈值设置为0.578,那么将使值
tpr + tnr
最大化,图中括号内的值是tpr和tnr。验证:您可以在许多可能的阈值上创建预测:
现在:
您也可以查看:
这就是说,通常在考虑财务数据时,不只是班上的人不感兴趣,而且还有与错误预测相关的成本,而假阴性和假阳性通常是不一样的。因此,这些模型适用于成本敏感分类。More on the mater。 另一方面,在决定阈值时,应该对交叉验证的数据或为任务专门指定的验证集执行。如果你使用它一个测试集,不可避免地会导致过于乐观的预测。在
相关问题 更多 >
编程相关推荐