Làm cách nào để tính toán đường cong ROC trong Python?
Tạo một vấn đề phân loại n lớp ngẫu nhiên. Điều này ban đầu tạo ra các cụm điểm được phân phối bình thường (std=1) xung quanh các đỉnh của một siêu khối ``n_thông tin`` chiều với các cạnh có độ dài ``2*class_sep`` và gán một số cụm bằng nhau cho mỗi lớp Show
Nó giới thiệu sự phụ thuộc lẫn nhau giữa các tính năng này và thêm nhiều loại nhiễu hơn nữa vào dữ liệu. Sử dụng phương thức make_classification() Đường cong đặc tính vận hành máy thu, hoặc đường cong ROC, là một biểu đồ đồ họa minh họa khả năng chẩn đoán của hệ thống phân loại nhị phân khi ngưỡng phân biệt của nó thay đổi Một mô tả phổ biến khác là Đường cong ROC phản ánh độ nhạy của mô hình qua các ngưỡng phân loại khác nhau. Khi tôi bắt đầu học Machine Learning, những định nghĩa này luôn làm tôi bối rối Trong bài viết này, tôi sẽ chia sẻ cách tôi học cách tháo gỡ những nhầm lẫn “giống như người mới bắt đầu” của mình và phát triển một trực giác đủ tốt về đường cong ROC Đường cong ROC là cái quái gì vậy? Một cách để hiểu đường cong ROC là nó mô tả mối quan hệ giữa độ nhạy của mô hình (tỷ lệ dương tính thật hoặc TPR) so với tính đặc hiệu của mô hình (được mô tả liên quan đến tỷ lệ dương tính giả). 1-FPR) Bây giờ, hãy giải quyết từng khái niệm ở đây TPR, được gọi là độ nhạy của mô hình, là tỷ lệ phân loại chính xác của lớp “tích cực” chia cho tất cả các lớp tích cực có sẵn trong tập dữ liệu, theo toán học hình ảnh của tác giảtrong khi FPR là tỷ lệ giữa các kết quả dương tính giả (số lượng dự đoán được phân loại sai thành tích cực) và tất cả các lớp phủ định có sẵn, về mặt toán học Vì vậy, về bản chất, bạn đang so sánh độ nhạy của mô hình thay đổi như thế nào đối với tỷ lệ dương tính giả trên các điểm ngưỡng khác nhau phản ánh ranh giới quyết định của mô hình để phân loại đầu vào là dương tính Tách riêng vấn đề với Điểm ngưỡng Ngay từ đầu, linh tính mách bảo tôi là phải nắm bắt được vai trò của ngưỡng điểm số. Một điểm khởi đầu tốt là xây dựng một bức tranh tinh thần Với hình dung cổ điển này, người ta có thể học được trực giác đầu tiên, đó là mô hình lý tưởng là mô hình có tỷ lệ dương tính thật càng cao càng tốt trong khi giữ tỷ lệ dương tính giả càng thấp càng tốt Ngưỡng tương ứng với một số giá trị T (chẳng hạn như giá trị từ 0 đến 1) đóng vai trò là ranh giới quyết định cho bộ phân loại và nó ảnh hưởng đến sự đánh đổi giữa TPR và FPR Hãy viết một số mã để có hình ảnh trực quan về tất cả các thành phần này Hình dung đường cong ROC Các bước để hình dung điều này sẽ là
1. Nhập phụ thuộc của chúng tôifrom drawdata import draw_scatter 2. Vẽ một số dữ liệu giả với gói drawdata cho sổ ghi chép Jupyterdraw_scatter() đầu ra 3. Nhập dữ liệu giả vào khung dữ liệu gấu trúcdf = pd.read_csv("./data.csv") 4. Điều chỉnh mô hình hồi quy logistic trên dữ liệudef get_fp_tp(y, proba, threshold): 5. Nhận dự đoán của mô hình hồi quy logistic ở dạng giá trị xác suấty_hat = lgr.predict_proba(X_test)[:,1] 6. Đặt các điểm ngưỡng khác nhauthresholds = np.linspace(0,1,100) 7. Hình dung biểu đồ đường cong roc# defining fpr and tpr 8. Rút ra một số kết luận cuối cùngBằng cách thay đổi điểm ngưỡng, chúng tôi nhận được các giá trị ngày càng tăng của cả tỷ lệ dương tính thực và dương tính giả. Một mô hình tốt là mô hình trong đó điểm ngưỡng đặt tỷ lệ dương thực càng gần 1 càng tốt trong khi giữ tỷ lệ dương tính giả càng thấp càng tốt Nhưng, làm thế nào chúng ta có thể chọn ngưỡng phân loại tốt nhất? Một phương pháp đơn giản là lấy một phương pháp có tổng tỷ lệ dương tính thật và âm tính giả lớn nhất (1- FPR) Một tiêu chí khác có thể là chỉ cần chọn điểm gần góc trên cùng bên trái của không gian ROC của bạn. Tuy nhiên, điều đó ngụ ý rằng tỷ lệ dương tính thực sự và tỷ lệ âm tính thực sự có cùng trọng số (), điều này không nhất thiết đúng trong các trường hợp như phân loại ung thư trong đó tác động tiêu cực của dương tính giả lớn hơn tác động của dương tính thật Suy nghĩ cuối cùng về đường cong ROC Tôi nghĩ rằng việc dành một chút thời gian để hiểu các chỉ số đánh giá là cực kỳ có lợi về lâu dài cho hành trình học máy của bạn. Trong bài này bạn đã học
Nếu bạn muốn tìm hiểu thêm về Python cho Machine Learning, hãy xem các khóa học này
Nếu bạn thích bài đăng này, hãy theo dõi tôi trên Medium, đăng ký nhận bản tin của tôi, kết nối với tôi trên Twitter, LinkedIn, Instagram hoặc tham gia Medium. Cảm ơn và hẹn gặp lại lần sau. . ) Công thức tính ROC là gì?Trong tài chính, phép tính cho ROC cũng có thể được tính là hoàn vốn theo thời gian, theo đó nó có thể lấy giá trị hiện tại của một cổ phiếu hoặc chỉ số và chia cho giá trị từ một khoảng thời gian trước đó. Trừ một và nhân số kết quả với 100 để biểu diễn phần trăm
Làm cách nào để diễn giải một đường cong ROC Python?Một cách để hiểu đường cong ROC là nó mô tả mối quan hệ giữa độ nhạy của mô hình (tỷ lệ dương tính thật hoặc TPR) so với độ đặc hiệu của mô hình (được mô tả đối với tỷ lệ dương tính giả). . 1-FPR) .
Python tính điểm AUC ROC như thế nào?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 ROC trong Python là gì?Một chỉ số phổ biến khác là AUC, khu vực bên dưới đường cong đặc tính hoạt động của bộ thu (ROC). Đường cong đặc tính hoạt động của Máy thu biểu thị tỷ lệ dương thực (TP) so với tỷ lệ dương tính giả (FP) ở các ngưỡng phân loại khác nhau. |