Как получить кривую ROC? - PullRequest
0 голосов
/ 28 января 2019

Я новичок в Python.Мне нужно получить кривую ROC с двумя значениями в моем фрейме данных панд, какое-либо решение или рекомендацию?Мне нужно использовать эту формулу:

    x = (1-dfpercentiles['acum_0%'])
    y = (1-dfpercentiles['acum_1%'])

Я пытаюсь использовать sklearn libs и matplotlib, но я не нашел решения.Это мой DF:

    In [109]: dfpercentiles['acum_0%']
    Out[110]: 
    0     10.89
    1     22.93
    2     33.40
    3     44.83
    4     55.97
    5     67.31
    6     78.15
    7     87.52
    8     95.61
    9    100.00
    Name: acum_0%, dtype: float64

и

    In [111]:dfpercentiles['acum_1%']
    Out[112]: 
    0      2.06
    1      5.36
    2      8.30
    3     13.49
    4     18.98
    5     23.89
    6     29.72
    7     42.87
    8     62.31
    9    100.00
    Name: acum_1%, dtype: float64

1 Ответ

0 голосов
/ 29 января 2019

Похоже, это вопрос matplotlib.

Прежде всего, ваш процентиль находится в диапазоне 0-100, но ваша корректировка равна 1 - percentile_value, поэтому вам нужно изменить масштаб ваших значений до 0-1.

Я просто использовал pyplot.plot для генерации кривой ROC

import matplotlib.pyplot as plt

plt.plot([1-(x/100) for x in [10.89, 22.93, 33.40, 44.83, 55.97, 67.31, 78.15, 87.52, 95.61, 100.00]],
         [1-(x/100) for x in [2.06, 5.36, 8.30, 13.49, 18.98, 23.89, 29.72, 42.87, 62.31, 100.0]])

Используя ваш фрейм данных, это будет

plt.plot((1-(dfpercentiles['acum_0%']/100)), (1-(dfpercentiles['acum_1%']/100))

ROC

...