Рассчитайте AUC вручную без использования какой-либо библиотеки Numpy или Sklearn.

Я дал набор координат X, Y, и мне нужно найти AUC, используя трапециевидную формулу, без использования какой-либо библиотеки numpy или sklearn.

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

Ниже схема

введите здесь описание изображения

Без использования какой-либо библиотеки sklearn я понимаю, что мне нужно найти ниже

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

Теперь я не уверен, как найти hi, wi. Я не думаю, что у меня есть все необходимые данные, чтобы заниматься математикой в ​​средней школе. Я что-то упускаю?


person nad    schedule 03.12.2018    source источник
comment
Похоже, вы пытаетесь вычислить площадь между двумя кривыми, а именно между кусочно-линейной функцией вдоль верхней и пунктирной красной линией, с помощью некоторой модифицированной версии правила трапеций. Что вы хотите сделать, так это вычислить площадь кусочной кривой относительно горизонтальной оси, чтобы все синие линии были действительно вертикальными линиями. Если вам действительно нужна площадь между ними, вы можете вычесть простую область под пунктирным треугольником в самом конце.   -  person ely    schedule 04.12.2018


Ответы (1)


Область ниже (x1, y1) и (x2, y2) (как показано ниже по вертикали, а не «по диагонали», как вы, кажется, пытаетесь вычислить) просто:

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

Затем вы можете обобщить другие последовательные индексы и добавить все термины с помощью цикла for.

Обычно AUC содержит площадь нижней правой половины (ниже красной пунктирной линии), но если вам нужно ее убрать, просто вычтите 1/2 из итогового результата.

И вам также может понадобиться рассмотреть крайний случай... не уверен, как вы должны рассматривать перед разделами между 0 и x0 и между xn и 1...

person Julien    schedule 03.12.2018