3. Hồi quy logistic
3.3.1. Gini (Somers ’D)
Trước khi bắt đầu cung cấp mã cho Gini (Somers’ D), chúng tôi sẽ giới thiệu thêm một vài khái niệm ROC (Đặc tính hoạt động của máy thu) và AUC (Vùng dưới đường cong).
Khi chúng ta thử và dự đoán một kết quả nhị phân (ví dụ: có / không, bán / không bán), sẽ xem xét tỷ lệ dương tính thực sự (TPR) và tỷ lệ dương tính giả (FPR). Tiếp theo sau một cách tiếp cận rất đơn giản của một tập dữ liệu giả lập
137
Từ bảng trên, chúng ta có thể thấy cách chúng ta có thể tính toán TPR và FPR
+ Sắp xếp dữ liệu theo xác suất giảm dần; + Cộng dồn mục tiêu;
+ Cộng dồn tích lũy các mục tiêu;
+ TPR là mục tiêu tích lũy chia cho tổng mục tiêu;
+ FPR là mục tiêu không phải mục tiêu tích lũy chia cho tổng số mục tiêu không phải mục tiêu.
Càng nhiều mục tiêu ở cuối cao hơn của phạm vi xác suất và càng có nhiều mục tiêu không phải là mục tiêu ở cuối phạm vi xác suất thấp hơn, thì mô hình càng mạnh.
Sử dụng dữ liệu này, chúng ta có thể xây dựng biểu đồ ROC của mình.
Đưa dữ liệu này vào Excel, sau đó xây dựng biểu đồ phân tán trên các cột TPR, FPR với nhau. Hình 10.5: Dữ liệu TPR và FPR trong Exel.
138
Tiếp theo, thêm một cơ sở vào biểu đồ, với cơ sở là cả trục X và Y.
Bao gồm các số 0, trên biểu đồ để xây dựng biểu đồ để mọi thứ bắt đầu từ 0, 0 trên biểu đồ.
Đây là một ví dụ về biểu đồ ROC. ROC được sử dụng để đánh giá hiệu suất của một mô hình hậu cần. Trong ví dụ này, TPR nằm trên trục x. Nó là một trường hợp hiếm khi xây dựng biểu đồ ROC với ít quan sát (hàng) như vậy, vì chúng ta nhận được một đường cong lung lay.
Nếu biểu đồ đi theo đường thẳng từ phía dưới bên trái đến phía trên bên phải (đường cơ sở), thì mô hình không thể phân biệt giữa mục tiêu và không mục tiêu, vì vậy nó không có sức mạnh. Từ biểu đồ, chúng ta có thể thấy rằng có không gian giữa cơ sở (AUC) và đường cong, do đó, có sức mạnh trong mô hình này.
Hiệu suất sau đó được tính bằng cách tính Diện tích dưới đường cong (AUC). Điều này mang lại cho bạn điểm từ 0 đến 1. Điểm 0,5 có nghĩa là không
139
có sức mạnh nào, với bất kỳ giá trị nào gần với một giá trị tiên đoán hơn, điều này sẽ dẫn chúng ta tính toán Gini (hoặc Somers ’D).
Gini cho chúng ta biết mô hình phân tách mục tiêu và không mục tiêu tốt như thế nào bằng cách sử dụng xác suất. Python có thể cho phép chúng ta tính toán Gini bằng cách sử dụng nó để tính Diện tích dưới đường cong (AUC).
Trước hết, hãy lưu bảng dưới dạng tệp CSV, (trong ví dụ này, nó được gọi là roc.csv).
Bảng 10.3: Roc.csv.
Chương trình 10-6: Tính AUC và Gini bằng Python
1. AUC = roc_auc_score (roc.Target, roc.Probability) a. AUC là tệp đầu ra của chúng ta;
140
c. roc.Target, roc.Probability, điều này cho Python biết trường với xác suất và những gì chúng ta đang cố gắng dự đoán
2. Gini = (2 * AUC) -1
a. Phép tính Gini của chúng ta. 3. AUC = 0,68 4. Gini = 0,36.
Ở giai đoạn này, mọi người có xu hướng hỏi, "Gini tốt là gì?" Rất tiếc, không có câu trả lời chắc chắn, vì nó phụ thuộc vào chất lượng dữ liệu, ngành bạn đang tham gia và mô hình mới có thực hiện tốt mô hình trước đó không. Nếu bạn tạo một mô hình mới và nó không hoạt động tốt hơn mô hình cũ, thì các câu hỏi sẽ được đưa ra về lý do tại sao họ nên sử dụng mô hình mới.