如何获得ROC曲线?

时间:2019-01-28 20:25:31

标签: python pandas dataframe curve roc

我是Python的新手。我需要在我的熊猫数据框中获取带有两个值的ROC曲线,有什么解决方案或建议吗? 我需要使用以下公式:

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

我尝试使用sklearn库和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 :(得分:0)

这似乎是一个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