Tôi có một bộ dữ liệu với các thông số kỹ thuật sau:
- Tập dữ liệu đào tạo với 193.176 mẫu với 2.821 dương
- Kiểm tra bộ dữ liệu với 82.887 mẫu với 673 kết quả dương tính
- Có 10 tính năng.
Tôi muốn thực hiện phân loại nhị phân (0 hoặc 1). Vấn đề tôi gặp phải là dữ liệu rất mất cân đối. Sau khi chuẩn hóa và nhân rộng dữ liệu cùng với một số kỹ thuật tính năng và sử dụng một vài thuật toán khác nhau, đây là những kết quả tốt nhất tôi có thể đạt được:
mean square error : 0.00804710026904
Confusion matrix : [[82214 667]
[ 0 6]]
tức là chỉ có 6 lượt truy cập tích cực đúng. Đây là sử dụng hồi quy logistic. Dưới đây là những điều tôi đã thử với điều này:
- Các thuật toán khác nhau như RandomForest, ReasonTree, SVM
- Thay đổi giá trị tham số để gọi hàm
- Một số kỹ thuật tính năng dựa trên trực giác để bao gồm các tính năng gộp
Bây giờ, câu hỏi của tôi là:
- Tôi có thể làm gì để cải thiện số lượt truy cập tích cực?
- Làm thế nào người ta có thể xác định nếu có một overfit trong trường hợp như vậy? (Tôi đã thử vẽ, v.v.)
- Tại thời điểm nào người ta có thể kết luận nếu có thể đây là phù hợp nhất có thể tôi có thể có? (có vẻ buồn khi chỉ xem 6 hit trong số 673)
- Có cách nào để tôi có thể làm cho các trường hợp mẫu dương tính nặng hơn để nhận dạng mẫu được cải thiện dẫn đến nhiều lần truy cập hơn không?
- Những sơ đồ đồ họa nào có thể giúp phát hiện các ngoại lệ hoặc một số trực giác về mẫu nào sẽ phù hợp nhất?
Tôi đang sử dụng thư viện scikit-learn với Python và tất cả các cài đặt là các hàm thư viện.
biên tập:
Dưới đây là kết quả với một vài thuật toán khác:
Phân loại rừng ngẫu nhiên (n_estimators = 100)
[[82211 667]
[ 3 6]]
Cây quyết định:
[[78611 635]
[ 3603 38]]