Xgboost ROC đường cong trăn
Tôi đang đào tạo BDT bằng XGBoost để thực hiện phân loại nhị phân trên 22 tính năng. Tôi có 18 triệu mẫu. (60% cho đào tạo, 40% cho kiểm tra) Show ROC AUC mà tôi nhận được trong quá trình đào tạo không phù hợp với kết quả cuối cùng mà tôi nhận được và tôi không hiểu điều này có thể xảy ra như thế nào. Ngoài ra, ROC AUC cho thấy tập luyện quá sức nhiều hơn bất kỳ số liệu nào khác và dường như nó có mức tối đa trên dữ liệu thử nghiệm Có ai từng gặp sự cố tương tự trước đây hoặc có bất kỳ ý tưởng nào về vấn đề xảy ra với mô hình của tôi hay cách tôi có thể tìm ra lỗi không? Đường cong ROC và AUC (Diện tích dưới đường cong) là những cách đơn giản để xem kết quả của bộ phân loại Đường cong ROC rất hữu ích khi xem mô hình của bạn hoạt động như thế nào ở các mức tỷ lệ dương tính giả khác nhau và AUC rất hữu ích khi bạn cần báo cáo một con số duy nhất để cho biết mô hình của bạn hoạt động tốt như thế nào Kết quả có thể khác nhau, đặc biệt là trong các vấn đề thực tế. Đây là tập dữ liệu giả. Kết quả tìm kiếm ô lướiSẽ rất hữu ích khi xem kết quả cho tất cả các lần chạy tìm kiếm dạng lưới
Đây là một cách để làm điều đó. tạo nhiều ô bằng cách sử dụng
Khi đường ống và lưới tham số được tạo (khối mã trước đó), hãy tiến hành như sau
Kết quả sẽ như thế này Lưu ý rằng tiêu đề của mỗi ô là cấu hình của lưới ở bước đó. Sơ đồ tầm quan trọng của tính năng XGBoost
Sử dụng 0 để tạo từ điển liên kết tên biến (trong khung dữ liệu gấu trúc) và tầm quan trọng của biến
Sơ đồ tầm quan trọng của tính năng cho một mô hình chỉ sử dụng hai tính năngVẽ biểu đồ tầm quan trọng của tính năng phân loại
Như trên, chúng tôi xây dựng các mức độ quan trọng của biến nhưng chúng tôi cũng hợp nhất với nhau trong khung dữ liệu XGBoost xử lý các biến được mã hóa một lần một cách riêng biệt, nhưng có thể bạn muốn xem toàn bộ tầm quan trọng của từng biến phân loại nói chung
tại thời điểm này, chúng tôi sẽ sửa đổi lệnh quan trọng của tính năng để chúng tôi nhận được tổng các mức độ quan trọng cho từng biến phân loại Khi chúng tôi phân loại mã hóa một lần nóngvà sử dụng chúng trong Tăng cường độ dốc, tầm quan trọng được tính riêng for each possible category value. This làm cho khó thấy tầm quan trọng của từng biến phân loại. Chúng ta có thể thay đổi tầm quan trọng các giá trị sao cho tổng của tất cả các giá trị trong một danh mục được hiển thị. (Dễ hình dung hơn nhiều) Vẽ ma trận nhầm lẫn
Ma trận nhầm lẫn rất hữu ích để thông báo những loại lỗi mà mô hình của bạn có xu hướng mắc phải Chúng hoạt động để phân loại nhị phân và phân loại nhiều lớp Thí dụ. Huấn luyện trình phân loại xgboost trên dữ liệu đa lớp giả và ma trận nhầm lẫn biểu đồ, với nhãn và thanh màu ở bên phải của biểu đồ Làm cách nào để tính toán đường cong ROC 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. 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.
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.
Roc_curve trong Python là gì?Đặc tính vận hành của Máy thu tính toán (ROC). Ghi chú. việc triển khai này bị hạn chế đối với nhiệm vụ phân loại nhị phân. Đọc thêm trong Hướng dẫn sử dụng.
Làm cách nào để nhập xgboost bằng Python?Như thường lệ, bạn bắt đầu bằng cách nhập thư viện xgboost và các thư viện quan trọng khác mà bạn sẽ sử dụng để xây dựng mô hình . Lưu ý rằng bạn có thể cài đặt các thư viện python như xgboost trên hệ thống của mình bằng cách sử dụng pip install xgboost trên cmd. Tách biến mục tiêu và phần còn lại của các biến bằng cách sử dụng. iloc để tập hợp con dữ liệu. |