Постройте кривую ROC на Python
- Определение кривой ROC в Python
- Библиотека Scikit-Learn на Python
- Код Python для построения кривой ROC
- Код Пояснение

В этом руководстве мы поможем вам узнать больше об этой функции Python и о методе, который вы можете использовать для построения кривой ROC в качестве вывода программы.
Определение кривой ROC в Python
Термин кривая ROC
обозначает кривую рабочих характеристик приемника. Эта кривая в основном является графическим представлением эффективности любой модели классификации при всех порогах классификации.
У этой кривой два параметра:
- True Positive Rate (TPR) - означает реальную, то есть истинную чувствительность
- Уровень ложноположительных результатов (FPR) - означает псевдо, то есть ложную чувствительность
Оба параметра известны как рабочие характеристики и используются в качестве факторов для определения кривой ROC.
В Python эффективность модели определяется по площади под кривой (AUC). Таким образом, наиболее эффективная модель имеет AUC, равную 1, а наименее эффективная модель имеет AUC, равную 0,5.
Библиотека Scikit-Learn на Python
Библиотека Scikit-learn
- одна из самых важных библиотек с открытым исходным кодом, используемых для машинного обучения на Python. Эта библиотека состоит из множества инструментов для таких задач, как классификация, кластеризация и регрессия.
В этом руководстве используется несколько функций из этой библиотеки, которые помогут построить кривую ROC. Эти функции:
make_classification
- эта функция импортируется, потому что она помогает генерировать случайную задачу классификации n-классов, создавая кластеры точек.RandomForestClassifier
- эта функция импортируется какRandom Forest Classifier
и используется в качестве образца модели в этом руководстве, на котором строится кривая ROC.train_test_split
- эта функция используется для разделения всех данных на два подмножества (Train
иTest
), которые используются для обучения и тестирования данных.roc_curve
- эта функция используется для возврата кривой ROC данной модели.
Код Python для построения кривой ROC
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import make_classification
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
from sklearn.metrics import roc_curve
def plot_roc_curve(fper, tper):
plt.plot(fper, tper, color='red', label='ROC')
plt.plot([0, 1], [0, 1], color='green', linestyle='--')
plt.xlabel('False Positive Rate')
plt.ylabel('True Positive Rate')
plt.title('Receiver Operating Characteristic Curve')
plt.legend()
plt.show()
data_X, cls_lab = make_classification(n_samples=2100, n_classes=2, weights=[1,1], random_state=2)
train_X, test_X, train_y, test_y = train_test_split(data_X, cls_lab, test_size=0.5, random_state=2)
model =RandomForestClassifier()
model.fit(train_X, train_y)
prob = model.predict_proba(test_X)
prob = probs[:, 1]
fper, tper, thresholds = roc_curve(test_y, prob)
plot_roc_curve(fper, tper)
Выход:
Код Пояснение
Сначала импортируются все библиотеки и функции, необходимые для построения кривой ROC. Затем определяется функция под названием plot_roc_curve
, в которой все критические факторы кривой, такие как цвет, метки и заголовок, упоминаются с использованием библиотеки Matplotlib
. После этого с помощью функции make_classification
создаются случайные выборки, а затем они разделяются на train
и test
наборы с помощью функции train_test_split
. Здесь соотношение данных train-test
составляет 0.50
. Затем используется алгоритм RandomForestClassifier
для подгонки данных train_X
и train_y
. Наконец, функция roc_curve
используется для построения кривой ROC.
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn