Hướng dẫn how do you plot the roc auc curve in python? - làm thế nào để bạn vẽ đường cong roc auc trong python?


Hồi quy logistic là một phương pháp thống kê mà chúng tôi sử dụng để phù hợp với mô hình hồi quy khi biến phản hồi là nhị phân.

  • Độ nhạy: & nbsp; xác suất mà mô hình dự đoán kết quả tích cực cho một quan sát khi thực sự kết quả là tích cực. Đây cũng được gọi là tỷ lệ tích cực thực sự của người Viking.The probability that the model predicts a positive outcome for an observation when indeed the outcome is positive. This is also called the “true positive rate.”
  • Tính đặc hiệu: & nbsp; xác suất mà mô hình dự đoán kết quả tiêu cực cho một quan sát khi thực sự kết quả là tiêu cực. Điều này cũng được gọi là tỷ lệ âm thực sự của người Viking.The probability that the model predicts a negative outcome for an observation when indeed the outcome is negative. This is also called the “true negative rate.”

Một cách để trực quan hóa hai số liệu này là bằng cách tạo ra một đường cong ROC, viết tắt của đường cong đặc trưng của máy thu. Đây là một âm mưu hiển thị độ nhạy và độ đặc hiệu của mô hình hồi quy logistic.ROC curve, which stands for “receiver operating characteristic” curve. This is a plot that displays the sensitivity and specificity of a logistic regression model.

Ví dụ từng bước sau đây cho thấy cách tạo và giải thích một đường cong ROC trong Python.

Bước 1: Nhập các gói cần thiết

Đầu tiên, chúng tôi sẽ nhập các gói cần thiết để thực hiện hồi quy logistic trong Python:

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
import matplotlib.pyplot as plt

Bước 2: Phù hợp với mô hình hồi quy logistic

Tiếp theo, chúng tôi sẽ nhập một bộ dữ liệu và phù hợp với mô hình hồi quy logistic với nó:

#import dataset from CSV file on Github
url = "https://raw.githubusercontent.com/Statology/Python-Guides/main/default.csv"
data = pd.read_csv(url)

#define the predictor variables and the response variable
X = data[['student', 'balance', 'income']]
y = data['default']

#split the dataset into training (70%) and testing (30%) sets
X_train,X_test,y_train,y_test = train_test_split(X,y,test_size=0.3,random_state=0) 

#instantiate the model
log_regression = LogisticRegression()

#fit the model using the training data
log_regression.fit(X_train,y_train)

Bước 3: Vẽ đường cong ROC

Tiếp theo, chúng tôi sẽ tính toán tốc độ dương thực sự và tốc độ dương tính giả và tạo đường cong ROC bằng cách sử dụng gói trực quan hóa dữ liệu matplotlib:

#define metrics
y_pred_proba = log_regression.predict_proba(X_test)[::,1]
fpr, tpr, _ = metrics.roc_curve(y_test,  y_pred_proba)

#create ROC curve
plt.plot(fpr,tpr)
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.show()

Hướng dẫn how do you plot the roc auc curve in python? - làm thế nào để bạn vẽ đường cong roc auc trong python?

Càng nhiều đường cong ôm lấy góc trên cùng bên trái của cốt truyện, mô hình càng tốt trong việc phân loại dữ liệu thành các danh mục.

Như chúng ta có thể thấy từ cốt truyện trên, mô hình hồi quy logistic này thực hiện một công việc khá kém trong việc phân loại dữ liệu thành các danh mục.

Để định lượng điều này, chúng ta có thể tính toán khu vực AUC - dưới đường cong - cho chúng ta biết bao nhiêu lô được đặt dưới đường cong.

AUC càng gần với 1, mô hình càng tốt. Một mô hình có AUC bằng 0,5 không tốt hơn một mô hình tạo ra các phân loại ngẫu nhiên.

Bước 4: Tính AUC

Chúng ta có thể sử dụng mã sau để tính toán AUC của mô hình và hiển thị nó ở góc dưới bên phải của biểu đồ ROC:

#define metrics
y_pred_proba = log_regression.predict_proba(X_test)[::,1]
fpr, tpr, _ = metrics.roc_curve(y_test,  y_pred_proba)
auc = metrics.roc_auc_score(y_test, y_pred_proba)

#create ROC curve
plt.plot(fpr,tpr,label="AUC="+str(auc))
plt.ylabel('True Positive Rate')
plt.xlabel('False Positive Rate')
plt.legend(loc=4)
plt.show()

Hướng dẫn how do you plot the roc auc curve in python? - làm thế nào để bạn vẽ đường cong roc auc trong python?

AUC cho mô hình hồi quy logistic này hóa ra là & nbsp; 0,5602. Vì điều này gần 0,5, điều này xác nhận rằng mô hình thực hiện một công việc kém để phân loại dữ liệu.0.5602. Since this is close to 0.5, this confirms that the model does a poor job of classifying data.

Liên quan: Cách vẽ nhiều đường cong ROC trong Python How to Plot Multiple ROC Curves in Python

Làm thế nào để bạn vẽ một đường cong ROC AUC?

Để vẽ đường cong ROC, chúng ta cần tính toán TPR và FPR cho nhiều ngưỡng khác nhau (bước này được bao gồm trong tất cả các thư viện có liên quan là Scikit-learn). Đối với mỗi ngưỡng, chúng tôi vẽ giá trị FPR trong trục x và giá trị TPR trong trục y. Sau đó chúng tôi tham gia các dấu chấm với một dòng. Đó là nó!calculate the TPR and FPR for many different thresholds (This step is included in all relevant libraries as scikit-learn ). For each threshold, we plot the FPR value in the x-axis and the TPR value in the y-axis. We then join the dots with a line. That's it!

Làm thế nào để bạn làm AUC trong Python?

Cách tính AUC (khu vực dưới đường cong) trong Python..
Bước 1: Nhập gói. Đầu tiên, chúng tôi sẽ nhập các gói cần thiết để thực hiện hồi quy logistic trong Python: nhập pandas dưới dạng nhập khẩu PD NUMPY dưới dạng NP từ Sklearn. ....
Bước 2: Phù hợp với mô hình hồi quy logistic. ....
Bước 3: Tính AUC ..

Làm thế nào để bạn viết kết quả đường cong ROC?

Tạo một đường cong ROC Một đường cong ROC được xây dựng bằng cách vẽ tốc độ dương thực (TPR) thực sự so với tỷ lệ dương tính giả (FPR).Tỷ lệ tích cực thực sự là tỷ lệ của các quan sát được dự đoán chính xác là tích cực trong tất cả các quan sát tích cực (TP/(TP + FN)).plotting the true positive rate (TPR) against the false positive rate (FPR). The true positive rate is the proportion of observations that were correctly predicted to be positive out of all positive observations (TP/(TP + FN)).

Làm thế nào để bạn vẽ một đường cong thu hồi chính xác trong Python?

Đặt kích thước hình và điều chỉnh phần đệm giữa và xung quanh các ô phụ ..
Tạo R, P và thu hồi trùng lặp, I Điểm dữ liệu bằng cách sử dụng Numpy ..
Tạo một con số và một tập hợp các ô con ..
Vẽ ma trận thu hồi trong phạm vi của r.....
Vẽ các điểm dữ liệu R và DUP_R bằng phương thức Plot () ..
Để hiển thị hình, sử dụng phương thức show () ..