Tôi đang sử dụng hồi quy logistic để phân loại nhị phân. Tôi có một bộ dữ liệu lớn (xảy ra rất mất cân bằng: 19: 1). Vì vậy, tôi sử dụng scikit-learn LogisticRegression()
để đào tạo 80% dữ liệu được dán nhãn của mình và sau đó tôi xác nhận với 20% khác (Tôi đã xem xét khu vực theo ROC cũng như thu hồi chính xác vì dữ liệu rất mất cân bằng; Tôi cũng đã sử dụng mô hình với class_weight='auto'
).
Câu hỏi chính của tôi là như sau: một khi tôi bắt đầu tạo dự đoán về các vectơ đầu vào không ghi nhãn (sử dụng predict_proba()
), làm thế nào tôi có thể biết tính năng nào đóng góp nhiều nhất vào dự đoán của đầu vào cụ thể đó ? Tôi tưởng tượng rằng điều này có thể khác với "các tính năng quan trọng nhất" như được xác định chung cho mô hình dựa trên dữ liệu đào tạo được dán nhãn (ví dụ: cường độ hệ số).
Tôi đã có một ý tưởng rất cơ bản:
Lấy sản phẩm thành phần của các giá trị tính năng đầu vào của tôi với giá trị tuyệt đối của các hệ số tính năng của tôi. Tính năng đóng góp nhiều nhất sau đó là tính năng tương ứng với mục có giá trị lớn nhất.
Làm (1) nhưng sử dụng điểm z cho mọi thứ (tính năng đào tạo và nhập liệu). Tôi nghĩ rằng điều này sẽ rất quan trọng vì tôi lo lắng rằng một số phạm vi tính năng có thể rất khác so với các phạm vi khác và chỉ lấy sản phẩm có thể không nắm bắt được điều này; nhưng tôi đoán các hệ số sẽ phản ánh phạm vi nên có thể điều này không thành vấn đề.
Mọi suy nghĩ sẽ được đánh giá rất cao vì tôi mới biết điều này. Những điều cụ thể đối với hồi quy logistic (nghĩa là sigmoid thay vì chỉ là hàm tuyến tính) và bất kỳ tham chiếu nào về cách thực hiện các hành động cụ thể (ví dụ: biến đổi) trong scikit-learn sẽ được đánh giá rất cao khi tôi thực sự đang thực hiện một dự án với dữ liệu thực.