Hướng dẫn how does python calculate roc curve? - python làm thế nào để tính toán đường cong roc?


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 does python calculate roc curve? - python làm thế nào để tính toán đường cong roc?

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 does python calculate roc curve? - python làm thế nào để tính toán đường cong roc?

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 tạo ra một đường cong ROC trong Python?

Làm thế nào để vẽ một đường cong ROC trong Python ?..
Mục tiêu công thức ..
Bước 1 - Nhập thư viện - GridSearchCV ..
Bước 2 - Thiết lập dữ liệu ..
Bước 3 - Chia dữ liệu và đào tạo mô hình ..
Bước 5 - Sử dụng các mô hình trên bộ dữ liệu thử nghiệm ..
Bước 6 - Tạo tỷ lệ tích cực sai và thực sự và điểm in ..
Bước 7 - Cấu trúc đường cong ROC ..

Làm thế nào để bạn đọc một đường cong ROC trong Python?

Đường cong ROC trong học máy với Python..
Bước 1: Nhập thư viện ROC Python và sử dụng roc_curve () để lấy ngưỡng, TPR và FPR.....
Bước 2: Để sử dụng AUC ROC_AUC_SCORE () Chức năng Python cho ROC ..
Bước 3: Vẽ đường cong ROC ..
Bước 4: In xác suất dự đoán của lớp 1 (ung thư ác tính).

Các đường cong ROC được tính toán như thế nào?

Các đường cong ROC là các biểu diễn đồ họa của mối quan hệ hiện có giữa độ nhạy và độ đặc hiệu của một bài kiểm tra.Nó được tạo ra bằng cách vẽ một tỷ lệ tích cực thực sự trong tổng số dương tính thực tế so với tỷ lệ tích cực giả trong tổng số tiêu cực thực tế.plotting the fraction of true positives out of the total actual positives versus the fraction of false positives out of the total actual negatives.

ROC được tính toán như thế nào trong học máy?

Để tính toán AUC, chúng tôi cần một bộ dữ liệu với hai cột: điểm dự đoán và nhãn thực tế (tức là Bảng 1).Vì nhãn thực tế là nhị phân trong trường hợp này, chúng tôi sử dụng +1 và -1 để biểu thị các lớp tích cực và tiêu cực, tương ứng.we need a dataset with two columns: prediction score and actual label (i.e. Table 1). Since the actual label is binary in this case, we use +1 and -1 to denote the positive and negative classes, respectively.