2013-02-13 48 views
16

Tôi đang giải quyết một vấn đề phân loại với hồi quy logistic của sklearn trong python.sklearn logistic hồi quy với các lớp không cân bằng

Vấn đề của tôi là vấn đề chung/chung. Tôi có một tập dữ liệu với hai lớp/kết quả (tích cực/tiêu cực hoặc 1/0), nhưng thiết lập là không cân bằng cao. Có ~ 5% dương tính và ~ 95% âm.

Tôi biết có một số cách để đối phó với một vấn đề không cân bằng như thế này, nhưng chưa tìm thấy giải thích tốt về cách triển khai đúng cách bằng gói sklearn.

Điều tôi đã làm từ trước đến nay là xây dựng một bộ huấn luyện cân bằng bằng cách chọn các mục có kết quả dương và số lượng mục nhập âm đã chọn ngẫu nhiên bằng nhau. Sau đó tôi có thể đào tạo mô hình cho bộ này, nhưng tôi bị mắc kẹt với cách sửa đổi mô hình để làm việc trên tập hợp/tập hợp không cân bằng gốc.

Các bước cụ thể để thực hiện việc này là gì? Tôi đã đổ qua tài liệu và ví dụ về sklearn và không tìm thấy lời giải thích tốt.

Trả lời

16

Bạn đã cố gắng chuyển đến trình phân loại class_weight="auto" của mình chưa? Không phải tất cả các trình phân loại trong sklearn đều hỗ trợ điều này, nhưng một số thì có. Kiểm tra các tài liệu. Ngoài ra, bạn có thể cân bằng lại tập dữ liệu của mình bằng cách thả các ví dụ tiêu cực một cách ngẫu nhiên và/hoặc lấy mẫu các ví dụ tích cực quá mức (+ có khả năng thêm một số nhiễu tính năng gaussian nhẹ).

+0

Có, class_weight = 'auto' hoạt động tốt. Có lợi thế nào để không sử dụng trọng lượng tự động được xây dựng trong hộp đen hay không nhưng thay vào đó để cân bằng lại tập huấn luyện (như ban đầu tôi đã làm)? Bất kể, nếu tôi sử dụng phương pháp cân bằng tập huấn luyện, làm cách nào để điều chỉnh mô hình phù hợp/được đào tạo để áp dụng cho một bộ kiểm tra không cân bằng? – agentscully

+7

Nó không phải là hộp đen: nó chỉ tái trọng lượng các mẫu trong chức năng mục tiêu thực nghiệm được tối ưu hóa bởi các thuật toán. Các lớp học được trình bày quá mức là tốt vì đào tạo nhanh hơn :) nhưng bạn đang bỏ dữ liệu xấu, đặc biệt nếu mô hình của bạn đã ở chế độ ghi đè (khoảng cách đáng kể giữa điểm đào tạo và điểm kiểm tra). Lấy mẫu quá mức thường tương đương về mặt toán học với trọng số lại nhưng chậm hơn do các hoạt động trùng lặp. – ogrisel

0

@agentscully Bạn đã đọc bài báo sau chưa,

[SMOTE] (https://www.jair.org/media/953/live-953-2037-jair.pdf). Tôi đã tìm thấy cùng một thông tin rất giống nhau. Đây là liên kết đến số Repo. Tùy thuộc vào cách bạn đi về cân bằng lớp mục tiêu của bạn, hoặc bạn có thể sử dụng

  • 'auto': (được tán thành trong phiên bản mới hơn 0,17) hoặc 'cân bằng' hoặc xác định tỷ lệ lớp mình { 0: 0,1, 1: 0,9}.
  • 'cân bằng': Chế độ này điều chỉnh trọng lượng tỉ lệ nghịch với tần số lớp n_samples/(n_classes * np.bincount(y)

Hãy cho tôi biết, nếu cái nhìn sâu sắc hơn là cần thiết.

Các vấn đề liên quan