Ví dụ về trăn Roc_auc_score
Một cách thực sự hiệu quả để đánh giá khả năng dự đoán của bộ phân loại là vẽ đồ thị Đường cong ROC (Đặc điểm hoạt động của máy thu) Show
Điều này ai cũng biết, nhưng bạn có biết cách diễn giải Đường cong ROC không? Trực giác đường cong ROCĐường cong này cho chúng ta thấy hành vi của bộ phân loại đối với mọi ngưỡng bằng cách vẽ hai biến. tỷ lệ tích cực thực sự (TPR) và tỷ lệ tích cực sai (FPR) Tỷ lệ tích cực thực sự thường được gọi là Thu hồi / Độ nhạy và được định nghĩa là Trong khi Tỷ lệ dương tính giả được định nghĩa là Trên hình ảnh bên dưới, chúng tôi minh họa đầu ra của mô hình Hồi quy logistic cho một tập dữ liệu nhất định. Khi chúng tôi xác định ngưỡng ở mức 50%, không có quan sát tích cực thực tế nào sẽ được phân loại là tiêu cực, vì vậy FN = 0 và TP = 11, nhưng 4 ví dụ tiêu cực sẽ được phân loại là tích cực, vì vậy FP = 4 và 15 quan sát tiêu cực được phân loại là Chuyển thể từ Google DevelopersKhi chúng tôi chuyển ngưỡng lên 75%, chỉ những quan sát tích cực sẽ được phân loại là tích cực, vì vậy TP = 7 và FP = 0, trong khi tất cả các quan sát tiêu cực sẽ được phân loại là tiêu cực và TN = 19. Chúng tôi vẫn có 4 quan sát tích cực được phân loại là tiêu cực, vì vậy FN = 4 Chúng ta có thể tính toán TPR và FPR cho từng ngưỡng này và so sánh chúng Ngưỡng tốt nhất phụ thuộc vào mục tiêu của mô hình. Nếu điều quan trọng hơn là phải phân loại tất cả các mặt tích cực là tích cực, ngay cả khi điều đó có nghĩa là phân loại một số mặt tiêu cực là tích cực, thì ngưỡng 50% sẽ tốt hơn (xem ví dụ bên dưới)
Bây giờ nếu chúng ta muốn có một mô hình với độ tin cậy cao trên mọi quan sát được phân loại là tích cực, ngay cả khi điều đó có nghĩa là phân loại sai một số quan sát tích cực thành tiêu cực, thì ngưỡng 75% là lựa chọn tốt nhất (xem ví dụ chọn cổ phiếu bên dưới) Giải thích đường cong ROC Mục đích của Đường cong ROC là cho thấy mô hình hoạt động tốt như thế nào đối với mọi ngưỡng có thể, dưới dạng mối quan hệ giữa TPR và FPR. Vì vậy, về cơ bản để vẽ đồ thị đường cong, chúng ta cần tính toán các biến này cho từng ngưỡng và vẽ đồ thị trên mặt phẳng Trên các ô bên dưới, đường màu xanh lá cây biểu thị vị trí TPR = FPR, trong khi đường màu xanh lam biểu thị đường cong ROC của bộ phân loại. Nếu đường cong ROC nằm chính xác trên đường màu xanh lá cây, điều đó có nghĩa là bộ phân loại có khả năng dự đoán giống như tung đồng xu Hình ảnh của tác giảTrên biểu đồ bên trái, đường màu xanh lam tương đối gần với đường màu xanh lá cây, điều đó có nghĩa là trình phân loại không tốt. Biểu đồ ngoài cùng bên phải cho thấy một bộ phân loại tốt, với đường cong ROC gần các trục hơn và “khuỷu tay” gần với tọa độ (0,1). Cái ở giữa là một bộ phân loại đủ tốt, gần với những gì có thể nhận được từ dữ liệu trong thế giới thực Một cách khác để giải thích đường cong ROC là suy nghĩ về sự phân tách của các lớp và chúng ta có thể minh họa điều đó bằng biểu đồ, như bên dưới Hình ảnh của tác giảBộ phân loại kém (trái) có quá nhiều lớp trùng lặp và do đó không thể đưa ra dự đoán tốt và không có ngưỡng nào có thể tách các lớp. Đúng như dự đoán, bộ phân loại tốt (bên phải) hầu như không có sự trùng lặp, vì vậy chúng ta có thể dễ dàng tìm thấy một ngưỡng tốt để tách các dự đoán trong các lớp bên phải của chúng. Cuối cùng cái ở giữa nằm ở giữa. có một số chồng chéo, nhưng có thể đạt được kết quả tốt bằng cách đặt ngưỡng phù hợp ROC AUCBây giờ bạn đã biết ROC Curves hữu ích như thế nào, nhưng làm thế nào để đánh giá chúng? . Khu vực dưới đường cong (AUC) Đường cong AUROC (Khu vực dưới đường cong ROC) hay đơn giản là Điểm AUC của ROC, là số liệu cho phép chúng tôi so sánh các Đường cong ROC khác nhau Đường màu xanh lá cây là giới hạn dưới và khu vực dưới đường đó là 0. 5 và Đường cong ROC hoàn hảo sẽ có diện tích là 1. ROC AUC của mô hình của chúng tôi càng gần từ 1 thì càng tốt trong việc phân tách các lớp và đưa ra dự đoán tốt hơn Chúng ta có thể sử dụng sklearn để dễ dàng tính toán ROC AUC from sklearn.metrics import roc_auc_score đầu ra là ROC AUC: 0.8720 Khi sử dụng ROC AUC: 0.8720 0, Đường cong ROC sẽ chỉ có các số “1” và “0” để tính toán các biến, do đó, Đường cong ROC sẽ là một giá trị gần đúng. Để tránh hiệu ứng này và nhận được kết quả chính xác hơn, nên sử dụng ROC AUC: 0.8720 1 và lấy xác suất của loại “1”, khi tính ROC AUCscore = roc_auc_score(y_real, y_proba[:, 1) đầu ra là ROC AUC: 0.9271 Vẽ đường cong ROC từ đầuTôi tin rằng cách tốt nhất để hiểu một khái niệm là thử nghiệm với khái niệm đó, vì vậy hãy tìm hiểu cách vẽ đồ thị Đường cong ROC từ đầu. Sau này tôi sẽ chỉ cho bạn cách dễ dàng thực hiện điều đó với thư viện sklearn Bạn có thể tìm thấy mã có sẵn trên kho lưu trữ github của tôi, vì vậy vui lòng bỏ qua phần này Bài viết/Đường cong ROC và ROC AUC tại chính · vinyluis/Bài viếtĐiều 1. Giải thích Đường cong ROC và ROC AUC để Đánh giá Phân loại (TBD) [EN] Đường cong ROC là gì, cách…github. com Đầu tiên chúng ta cần đào tạo một mô hình phân loại trong tập dữ liệu from sklearn.model_selection import train_test_split Sau đó, chúng tôi xác định một hàm để tính toán TPR và FPR cho từng trường hợp, dựa trên các phương trình được trình bày trước đây from sklearn.metrics import confusion_matrixdef calculate_tpr_fpr(y_real, y_pred): Chúng tôi muốn đánh giá TPR và FPR cho mọi ngưỡng, vì vậy chúng tôi xác định một hàm sẽ tạo ngưỡng “n” và lặp lại chúng để tính toán các biến và lưu trữ chúng trong danh sách. Đó sẽ là tọa độ của các điểm Đường cong ROC Trong bộ phân loại nhị phân, các dự đoán có thể là “0” hoặc “1” và việc di chuyển ngưỡng sẽ không có hiệu lực. Để đảm bảo chúng tôi có thể có đường cong chính xác, chúng tôi cần sử dụng xác suất phân loại từng quan sát trong lớp “1”, và chúng tôi nhận được các xác suất đó bằng phương pháp ROC AUC: 0.8720 2def get_n_roc_coordinates(y_real, y_proba, n = 50): Cuối cùng, chúng ta có thể sử dụng seaborn để vẽ các điểm và đường cong, bằng cách chuyển danh sách tpr và fpr cho hàm bên dưới import seaborn as sns Kết quả là một Đường cong ROC khá tốt, sử dụng các đường gần đúng cho các phân đoạn mà không cần tính tọa độ # Calculates 10 coordinates of the ROC Curve Vẽ đường cong ROC bằng Scikit-LearnChắc chắn bạn sẽ không xây dựng Đường cong ROC từ đầu mỗi khi bạn cần điều đó, vì vậy tôi sẽ chỉ cách vẽ biểu đồ đó bằng scikit-learning Kiểm tra xem nó đơn giản như thế nào from sklearn.metrics import roc_curve Hàm ROC AUC: 0.8720 3 tính toán tất cả các tọa độ FPR và TPR, trong khi hàm ROC AUC: 0.8720 4 sử dụng chúng làm tham số để vẽ đường cong. Dòng ROC AUC: 0.8720 5 vẽ đường màu xanh lá cây và là tùy chọnNếu bạn sử dụng đầu ra của ROC AUC: 0.8720 6 làm tham số y_pred, kết quả sẽ là một đường cong ROC tuyệt đẹpNhưng nếu bạn sử dụng trực tiếp đầu ra của ROC AUC: 0.8720 7, thì phương thức sẽ không có tất cả thông tin cần thiết để xây dựng tất cả các điểm và biểu đồ sẽ là một xấp xỉ của hai đoạn thẳngPhần kết luận Kết luận của bài viết này là. ROC AUC cuối cùng là thước đo sự phân tách giữa các lớp trong bộ phân loại nhị phân. Tôi ước đây là cách nó được giải thích cho tôi khi bắt đầu hành trình trở thành một nhà khoa học dữ liệu và tôi hy vọng điều này sẽ tạo ra sự khác biệt cho tất cả những người đọc bài viết này Nếu bạn thích bài đăng này…Ủng hộ mình 1 ly cafe Mua cho tôi một ly cà phêVà nếu bạn thích chủ đề này, hãy xem bài viết của tôi giải thích việc sử dụng Đường cong ROC để phân loại đa lớp roc_auc_score trong Python là gì?roc_auc_score được định nghĩa là khu vực bên dưới đường cong ROC , là đường cong có Tỷ lệ dương tính giả trên trục x và Tỷ lệ dương tính thật . Nhưng không thể tính FPR và TPR cho các phương pháp hồi quy, vì vậy chúng tôi không thể đi theo con đường này.
Làm cách nào để sử dụng điểm ROC AUC trong Python?Đường cong ROC và AUC trong Python
. 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. The AUC for the ROC can be calculated using the roc_auc_score() function. Like the roc_curve() function, the AUC function takes both the true outcomes (0,1) from the test set and the predicted probabilities for the 1 class.
Điểm ROC AUC tốt là gì?Kết quả diện tích dưới đường cong ROC (AUC) được coi là xuất sắc đối với các giá trị AUC trong khoảng từ 0. 9-1, phù hợp với các giá trị AUC trong khoảng 0. 8-0. 9 , hợp lý cho các giá trị AUC trong khoảng từ 0. 7-0. 8, kém đối với các giá trị AUC trong khoảng 0. 6-0. 7 và không thành công đối với các giá trị AUC trong khoảng từ 0. 5-0. 6.
Điểm ROC AUC được sử dụng để làm gì?AUC - Đường cong ROC là phép đo hiệu suất cho các vấn đề phân loại ở các cài đặt ngưỡng khác nhau . ROC là một đường cong xác suất và AUC biểu thị mức độ hoặc thước đo khả năng phân tách. Nó cho biết mức độ mô hình có khả năng phân biệt giữa các lớp. |