手动计算 AUC
Manually calculate AUC
如何获取具有fpr和tpr的AUC值? Fpr 和 tpr 只是从这些公式中获得的 2 个浮点数:
my_fpr = fp / (fp + tn)
my_tpr = tp / (tp + fn)
my_roc_auc = auc(my_fpr, my_tpr)
我知道这不可能,因为 fpr 和 tpr 只是一些浮点数,它们需要是数组,但我不知道该怎么做。我也知道我可以这样计算 AUC:
y_predict_proba = model.predict_proba(X_test)
probabilities = np.array(y_predict_proba)[:, 1]
fpr, tpr, _ = roc_curve(y_test, probabilities)
roc_auc = auc(fpr, tpr)
但出于某些原因我想避免使用 predict_proba。所以我的问题是:如何获得具有 fp, tp, fn, tn, fpr, tpr
的 AUC?也就是说,没有roc_curve
是否可以得到AUC?
您可以将 space 分成两部分:三角形和梯形。三角形的面积为 TPR*FRP/2
,梯形的面积为 (1-FPR)*(1+TPR)/2 = 1/2 - FPR/2 + TPR/2 - TPR*FPR/2
。总面积1/2 - FPR/2 + TPR/2
。这就是获得方式,只需2分
是的,不调用roc_curve也可以获得AUC。
您首先需要创建 ROC(受试者工作特征)曲线。为了能够使用 ROC 曲线,您的分类器应该能够对示例进行排名,使得排名较高的示例更有可能是正面的(例如欺诈)。例如,逻辑回归输出概率,这是一个可用于排名的分数。
ROC 曲线是通过在各种阈值设置下绘制真阳性率 (TPR) 与假阳性率 (FPR) 来创建的。例如:
模型性能是通过查看 ROC 曲线(或 AUC)下的面积来确定的
你可以找到here更详细的解释。
如何获取具有fpr和tpr的AUC值? Fpr 和 tpr 只是从这些公式中获得的 2 个浮点数:
my_fpr = fp / (fp + tn)
my_tpr = tp / (tp + fn)
my_roc_auc = auc(my_fpr, my_tpr)
我知道这不可能,因为 fpr 和 tpr 只是一些浮点数,它们需要是数组,但我不知道该怎么做。我也知道我可以这样计算 AUC:
y_predict_proba = model.predict_proba(X_test)
probabilities = np.array(y_predict_proba)[:, 1]
fpr, tpr, _ = roc_curve(y_test, probabilities)
roc_auc = auc(fpr, tpr)
但出于某些原因我想避免使用 predict_proba。所以我的问题是:如何获得具有 fp, tp, fn, tn, fpr, tpr
的 AUC?也就是说,没有roc_curve
是否可以得到AUC?
您可以将 space 分成两部分:三角形和梯形。三角形的面积为 TPR*FRP/2
,梯形的面积为 (1-FPR)*(1+TPR)/2 = 1/2 - FPR/2 + TPR/2 - TPR*FPR/2
。总面积1/2 - FPR/2 + TPR/2
。这就是获得方式,只需2分
是的,不调用roc_curve也可以获得AUC。
您首先需要创建 ROC(受试者工作特征)曲线。为了能够使用 ROC 曲线,您的分类器应该能够对示例进行排名,使得排名较高的示例更有可能是正面的(例如欺诈)。例如,逻辑回归输出概率,这是一个可用于排名的分数。 ROC 曲线是通过在各种阈值设置下绘制真阳性率 (TPR) 与假阳性率 (FPR) 来创建的。例如:
模型性能是通过查看 ROC 曲线(或 AUC)下的面积来确定的
你可以找到here更详细的解释。