Как рассчитать TPR и FPR в Python без использования sklearn? - PullRequest
0 голосов
/ 20 апреля 2020

Инициализация списка списков:

data = [[1.0, 0.635165,0.0], [1.0, 0.766586,1.0], [1.0, 0.724564,1.0],
        [1.0, 0.766586,1.0],[1.0, 0.889199,1.0],[1.0, 0.966586,1.0],
        [1.0, 0.535165,0.0],[1.0, 0.55165,0.0],[1.0, 0.525165,0.0],
        [1.0, 0.5595165,0.0] ]

Создание Pandas Фрейма данных:

df = pd.DataFrame(data, columns = ['y', 'prob','y_predict']) 

Печать фрейма данных.

print(df)

Для этого набора данных я хочу найти:

  1. Матрица смешения без использования Sklearn
  2. Numpy массив TPR и FPR без использования Склеарн, для построения RO C.

Как это сделать в python?

Ответы [ 2 ]

1 голос
/ 20 апреля 2020
import numpy as np

def roc_curve(y_true, y_prob, thresholds):

    fpr = []
    tpr = []

    for threshold in thresholds:

        y_pred = np.where(y_prob >= threshold, 1, 0)

        fp = np.sum((y_pred == 1) & (y_true == 0))
        tp = np.sum((y_pred == 1) & (y_true == 1))

        fn = np.sum((y_pred == 0) & (y_true == 1))
        tn = np.sum((y_pred == 0) & (y_true == 0))

        fpr.append(fp / (fp + tn))
        tpr.append(tp / (tp + fn))

    return [fpr, tpr]
0 голосов
/ 20 апреля 2020

... без sklearn python модуль:

  1. Путаница с матрицей без использования Sklearn

    • Вы можете используйте pandas_ml

      из pandas_ml import ConfusionMatrix

    • Вы можете построить свою математическую формулу для матрицы Confusion
  2. О RO C вы

    • см. Пример python MatLab, решающий эту проблему ;
    • , который может построить ваш массив и использовать np и создайте свой исходный код, используя математическую формулу.

Вы можете понять больше, если вы посмотрите на эти статьи:

logisti c -регрессия-использование- numpy - python примеры регрессии;

what-is-the-ro c -кривая - теория;

ro c -curve-part-2-numeric-example - python практика;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...