Python 不使用任何Numpy或Sklearn库手动计算AUC

Python 不使用任何Numpy或Sklearn库手动计算AUC,python,machine-learning,auc,Python,Machine Learning,Auc,我已经给出了一组X,Y坐标,我需要使用梯形公式来找到AUC,而不使用任何numpy或sklearn库 (x0,y0) is always (0,0) (xn,yn) is always (1,1) 下图 在不使用任何sklearn库的情况下,我理解我需要找到以下内容 hi = ? wi= ? AUC = sum (hi * wi) 现在我不知道如何找到你好,wi。我认为我没有做高中数学所需的所有数据。我遗漏了什么吗?下面的区域(x1,y1)和(x2,y2)(如下垂直方向,而不是你试图计算的

我已经给出了一组X,Y坐标,我需要使用梯形公式来找到AUC,而不使用任何numpy或sklearn库

(x0,y0) is always (0,0)
(xn,yn) is always (1,1)
下图

在不使用任何sklearn库的情况下,我理解我需要找到以下内容

hi = ?
wi= ?
AUC = sum (hi * wi)
现在我不知道如何找到你好,wi。我认为我没有做高中数学所需的所有数据。我遗漏了什么吗?

下面的区域
(x1,y1)
(x2,y2)
(如下垂直方向,而不是你试图计算的“对角线方向”)就是:

(x2 - x1) * (y1 + y2) / 2 
然后,您可以推广到其他连续索引,并使用
for
循环添加所有术语

通常情况下,AUC包含右下半部分的区域(在红色虚线下方),但如果需要去掉该区域,只需减去
1/2
即可得出最终结果

你可能还需要考虑边缘情况…不确定在<>代码> 0 和<代码> X0之间以及<代码> XN< /代码>之前应如何考虑


1

看起来您正试图通过梯形规则的某些修改版本来计算两条曲线之间的面积,即沿顶部的分段线性函数和红色虚线之间的面积。你要做的是计算分段曲线相对于水平轴的角,所以所有的蓝线都是真正的垂直线。如果你真的需要它们之间的面积,你可以减去最末端的虚线三角形下面的简单面积。