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

4

我有一组X,Y坐标,需要使用梯形公式计算AUC,不能使用任何numpy或sklearn库。

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

下图所示:

enter image description here

不使用任何sklearn库,我理解我需要找到以下内容:

hi = ?
wi= ?
AUC = sum (hi * wi)

现在我不确定如何找到hi, wi。我认为我没有所有必要的数据来完成高中数学。我是否缺少什么?


2
看起来你正在尝试通过某个修改版的梯形法则计算两条曲线之间的面积,即顶部的分段线性函数和虚线红线之间的面积。你想要做的是相对于水平轴计算分段曲线的面积,这样所有蓝色线条都将成为真正的垂直线条。如果你确实需要它们之间的面积,你可以减去最后一个虚线三角形下方的简单面积。 - ely
1个回答

3

以下是以 (x1, y1)(x2, y2) 为对角线的矩形面积(垂直方向,不像你似乎试图计算对角线):

(x2 - x1) * (y1 + y2) / 2 

您可以使用for循环将其他连续索引的所有项相加,从而推广到其他情况。

通常AUC包含底部右半部分的面积(在您的红色虚线以下),但如果您需要去掉它,只需从最终结果中减去1/2即可。

您可能还需要考虑边缘情况......不确定您应该如何在0x0之间以及xn1之间考虑这些情况......


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接