如何获得ROC曲线?

How to obtain an ROC Curve?

我是 Python 的新手。我需要在我的 pandas 数据框中获取具有两个值的 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

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