Tính auc bằng quy tắc hình thang python

Thử nghiệm này giả định rằng xác suất dự đoán của sự kiện và không phải sự kiện là hai biến ngẫu nhiên liên tục độc lập. Diện tích dưới đường cong = Xác suất mà Sự kiện tạo ra xác suất cao hơn Không phải Sự kiện. AUC=P(Sự kiện>=Không phải sự kiện)

AUC = U1/(n1 * n2) Ở đây U1 = R1 - (n1*(n1 + 1) / 2)

trong đó U1 là thống kê Mann Whitney U và R1 là tổng các bậc xác suất dự đoán của sự kiện thực tế. Nó được tính bằng cách xếp hạng các xác suất dự đoán và sau đó chỉ chọn những trường hợp có biến phụ thuộc là 1 rồi lấy tổng của tất cả các trường hợp này. n1 là số 1s (sự kiện) trong biến phụ thuộc. n2 là số lượng 0 (không phải sự kiện) trong biến phụ thuộc.

n1*n2 là tổng số cặp (hoặc tích chéo của số sự kiện và không phải sự kiện). Nó tương tự như những gì chúng ta đã làm trong phương pháp phù hợp để tính AUC.


Mã R

# AUC using Mann–Whitney test
auc_mannWhitney  <- function(y, pred){
  y  <- as.logical(y)
  n1 <- sum(y)
  n2 <- sum(!y)
  R1 <- sum(rank(pred)[y])
  U1 <- R1 - n1 * (n1 + 1)/2
  U1/(n1 * n2)
}

auc_mannWhitney(as.numeric(as.character(finaldata$admit)), finaldata$pred)

Mã SAS

ods select none;
ods output WilcoxonScores=WilcoxonScore;
proc npar1way wilcoxon data= estprob ;
where admit^=.;
class admit;
var  pred;
run;
ods select all;

data AUC;
set WilcoxonScore end=eof;
retain v1 v2 1;
if _n_=1 then v1=abs(ExpectedSum - SumOfScores);
v2=N*v2;
if eof then do;
d=v1/v2;
Gini=d * 2;
AUC=d+0.5;   
put AUC=  GINI=;
keep AUC Gini;
output;
end;
proc print noobs;
run;

Tính toán AUC bằng cách sử dụng Sự kiện tích lũy và Không phải sự kiện

Trong phương pháp này, chúng ta sẽ xem cách chúng ta có thể tính diện tích dưới đường cong bằng cách sử dụng dữ liệu thập phân vị (binned)
  1. Sắp xếp xác suất dự đoán theo thứ tự giảm dần. Điều đó có nghĩa là khách hàng có khả năng mua sản phẩm cao sẽ xuất hiện ở trên cùng (trong trường hợp mô hình xu hướng)
  2. Chia hoặc xếp hạng thành 10 phần. Nó tương tự như khái niệm tính thập phân vị
  3. Tính số trường hợp ở mỗi cấp độ thập phân vị. Nó sẽ giống nhau ở mỗi cấp độ khi chúng tôi chia dữ liệu thành 10 phần bằng nhau
  4. Tính số 1 giây (sự kiện) ở mỗi cấp độ thập phân vị. Tối đa 1 giây sẽ được ghi lại trong phần thập phân vị đầu tiên (nếu mô hình của bạn đang hoạt động tốt. )
  5. Tính phần trăm tích lũy của 1 giây ở mỗi cấp độ thập phân vị. Thập phân vị cuối cùng phải có 100% vì nó được tích lũy trong tự nhiên
  6. Tương tự như bước trên, chúng ta sẽ tính phần trăm tích lũy của các số 0 trong mỗi cấp thập phân vị
  7. AUC sẽ được tính bằng công thức tích phân số theo quy tắc hình thang. Trong trường hợp này, x là % tích lũy của 0 giây và y là % tích lũy của 1 giây

Tính auc bằng quy tắc hình thang python

Phương thức này trả về điểm AUC xấp xỉ vì chúng tôi đang sử dụng 10 thùng thay vì giá trị thô. Nói cách khác, số lượng quan sát lớn hơn số lượng thùng ở đây

Tính auc bằng quy tắc hình thang python

Học Python. 50 hướng dẫn Python hàng đầu

Truyền bá.
Chia sẻ Chia sẻ Tweet Đăng ký

bài viết liên quan

Giới thiệu tác giả.

Tính auc bằng quy tắc hình thang python

Deepanshu thành lập ListenData với mục tiêu đơn giản - Làm cho phân tích trở nên dễ hiểu và dễ theo dõi. Ông có hơn 10 năm kinh nghiệm trong lĩnh vực khoa học dữ liệu. Trong nhiệm kỳ của mình, ông đã làm việc với các khách hàng toàn cầu trong nhiều lĩnh vực khác nhau như Ngân hàng, Bảo hiểm, Cổ phần tư nhân, Viễn thông và Nhân sự.

Với bài viết này, chúng ta sẽ xem xét một số ví dụ về Tính diện tích dưới đường cong trong các bài toán Python trong lập trình

from __future__ import print_function
import numpy as np
from scipy.integrate import simps
from numpy import trapz
# The y values.  A numpy array is used here,
# but a python list could also be used.
y = np.array([5, 20, 4, 18, 19, 18, 7, 4])
# Compute the area using the composite trapezoidal rule.
area = trapz(y, dx=5)
print("area =", area)
# Compute the area using the composite Simpson's rule.
area = simps(y, dx=5)
print("area =", area)

Chúng tôi có thể hiểu cách khắc phục sự cố Tính diện tích dưới đường cong trong Python nhờ có nhiều ví dụ

Làm thế nào để bạn tìm thấy khu vực dưới một đường cong trong Python?

Cách tính AUC (Diện tích dưới đường cong) bằng Python

  • Bước 1. Gói nhập khẩu. Đầu tiên, chúng ta sẽ nhập các gói cần thiết để thực hiện hồi quy logistic trong Python. nhập gấu trúc dưới dạng pd nhập 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 tính diện tích dưới một đường cong?

Diện tích dưới một đường cong giữa hai điểm được tìm ra bằng cách thực hiện tích phân xác định giữa hai điểm. Để tìm diện tích dưới đường cong y = f(x) giữa x = a & x = b, lấy tích phân y = f(x) giữa các giới hạn của a và b. Khu vực này có thể được tính bằng cách sử dụng tích hợp với các giới hạn nhất định

Làm thế nào để bạn tính diện tích trong Python?

Chương trình Python tìm diện tích hình chữ nhật

  • Đầu tiên, chúng tôi sẽ lấy thông tin đầu vào từ người dùng về chiều dài và chiều rộng bằng cách sử dụng hàm input()
  • Bây giờ, chúng ta sẽ tính diện tích hình chữ nhật bằng công thức Diện tích = l * b
  • Cuối cùng, in diện tích hình chữ nhật để xem đầu ra

Làm cách nào để tính diện tích dưới đường cong trong Excel?

Chọn một ô trống, gõ công thức =SUM(D3. D16) để lấy tổng diện tích dưới khu vực được vẽ

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

Đường cong ROC và AUC trong Python AUC cho ROC có thể được tính bằng hàm roc_auc_score(). Giống như hàm roc_curve(), hàm AUC lấy cả kết quả thực (0,1) từ tập kiểm tra và xác suất dự đoán cho lớp 1. 31-Aug-2018

Làm cách nào để bạn tính toán TPR và FPR trong Python Sklearn?

trăn đường cong roc

  • nhập sklearn. số liệu như số liệu
  • # tính toán fpr và tpr cho tất cả các ngưỡng phân loại
  • thăm dò = mô hình. dự đoán_proba(X_test)
  • dự đoán = dự đoán [. ,1]
  • fpr, tpr, ngưỡng = số liệu. roc_curve(y_test, dự đoán)
  • roc_auc = số liệu. auc(fpr, tpr)
  • # phương pháp tôi. plt

Làm thế nào để bạn tìm thấy khu vực dưới một đường cong mà không tích hợp?

Đây là công thức cơ bản mà nó sẽ sử dụng

  • Quyết định xem bạn muốn chia đường cong thành bao nhiêu phần
  • Đặt khu vực thành 0 (gà²)
  • Bắt đầu với giá trị x ban đầu (trong ví dụ tôi đang sử dụng — đó là x = 1)
  • Tính chiều cao của hình chữ nhật
  • Tìm diện tích của hình chữ nhật này và thêm nó vào tổng diện tích

Tổng diện tích dưới đường cong T là gì?

Tổng diện tích dưới đường cong t bằng 1. Một đường cong chữ T kéo dài vô tận theo cả hai hướng, tiếp cận nhưng không bao giờ chạm vào trục hoành khi nó làm như vậy. Một đường cong t đối xứng khoảng 0. Khi số bậc tự do trở nên lớn hơn, các đường cong chữ T ngày càng giống đường cong pháp tuyến chuẩn

Tại sao chúng ta cần tìm diện tích dưới đường cong?

Bạn có thể sử dụng khu vực dưới đường cong để tìm tổng quãng đường đi được trong 8 giây đầu tiên. Vì bậc hai là một đường cong, bạn phải chọn số lượng khoảng con bạn muốn sử dụng và bạn muốn các hộp bên phải hay bên trái để ước tính. Giả sử bạn chọn 8 hộp thuận tay trái có chiều rộng là một. 11-Aug-2022

Là gì. 2f bằng Python?

Như mong đợi, số dấu phẩy động (1. 9876) được làm tròn đến hai chữ số thập phân – 1. 99. Vì thế %. 2f có nghĩa là làm tròn đến hai chữ số thập phân. Bạn có thể nghịch mã để xem điều gì sẽ xảy ra khi bạn thay đổi số trong trình định dạng. 22-Jun-2022