Dữ liệu đào tạo bị mất cân bằng - nhưng bộ xác nhận của tôi cũng nên?


9

Tôi đã gắn nhãn dữ liệu gồm 10000 ví dụ tích cực và 50000 ví dụ tiêu cực, đưa ra tổng số 60000 ví dụ. Rõ ràng dữ liệu này là mất cân bằng.

Bây giờ hãy để chúng tôi nói rằng tôi muốn tạo bộ xác thực của mình và tôi muốn sử dụng 10% dữ liệu của mình để làm như vậy. Câu hỏi của tôi như sau:

Tôi có nên đảm bảo rằng bộ xác thực của mình C ALNG bị mất cân bằng, (như một cái gật đầu với phân phối thực sự của tập huấn luyện), hay tôi nên đảm bảo rằng bộ xác thực của mình được cân bằng? Vì vậy, ví dụ, bộ xác thực của tôi nên được thực hiện từ:

  • 10% ví dụ tích cực + 10% tiêu cực, đưa ra 1000+ và 5000- ví dụ. (Bộ xác nhận này phản ánh sự mất cân bằng dữ liệu gốc).
  • Hoặc bộ xác thực có nên được thực hiện từ 10% dương, cho 1000+ và (10/5 = 2%) phủ định, cũng đưa ra 1000- ví dụ không?

(Câu hỏi tương tự cho bộ kiểm tra).

Dường như có rất nhiều phương pháp về cách huấn luyện với dữ liệu mất cân bằng, nhưng không nơi nào tôi có thể thấy để tìm ra các thực tiễn tốt nhất về việc liệu bộ xác thực của tôi có nên phản ánh sự mất cân bằng ban đầu hay không. Cuối cùng, tôi KHÔNG thực hiện xác nhận chéo, tôi sẽ sử dụng một bộ xác thực duy nhất và một mạng lưới thần kinh.

Cảm ơn!


Tôi không có tài liệu tham khảo cụ thể cho vấn đề này nhưng tôi đoán có một tài liệu vì: a) Tôi đã xuất bản các bài báo liên quan đến phân tách đào tạo / xác nhận và tôi luôn xây dựng phần tách để tỷ lệ dương chung là tương đương trong cả hai bộ ; b) Tôi nhớ lại ý kiến ​​của người đánh giá cho biết đây là điều bạn nên làm.
game thủ

@gammer Xin lỗi, ý bạn là bạn đã chọn phương thức (1) trong bài viết của tôi?
Spacey

Vâng, người đầu tiên
game thủ

@gammer Vâng, hãy xem đó là những gì tôi nghĩ lúc đầu, nhưng có vẻ hơi kỳ lạ khi tôi nghĩ về nó, vì nếu chúng ta tin tưởng vào tập huấn luyện của mình, thì chắc chắn chúng ta cũng nên tôn trọng phân phối của nó và cố gắng sao chép nó trong tập xác thực quá ...
Spacey

Tôi đoán có lẽ nó phụ thuộc vào cách tập hợp dữ liệu gốc được thu thập. Có phải là một mẫu ngẫu nhiên? Nếu vậy, sự phân chia cân bằng có ý nghĩa bởi vì nó làm cho việc xác thực thiết lập nhiều đại diện hơn cho dân số. Nếu nó hồi cứu (ví dụ kiểm soát trường hợp), thì nó có thể khác. Tôi không chắc. Tôi đã nói với bạn kinh nghiệm của tôi. Hy vọng bạn nhận được một câu trả lời dứt khoát. Nếu bạn tìm ra nó, gửi một câu trả lời.
game thủ

Câu trả lời:


8

Điểm của bộ xác thực là chọn epoch / lặp trong đó mạng thần kinh có khả năng thực hiện tốt nhất trên bộ kiểm tra. Sau đó, tốt hơn là phân phối các lớp trong bộ xác thực phản ánh phân phối các lớp trong bộ kiểm tra, do đó các số liệu hiệu suất trên bộ xác thực là một xấp xỉ tốt của các số liệu hiệu suất trên bộ kiểm tra. Nói cách khác, bộ xác nhận sẽ phản ánh sự mất cân bằng dữ liệu gốc.


Tôi nghi ngờ cùng Franck. Bây giờ với điều đó đã nói, (bộ xác thực đó sẽ phản ánh phân phối dữ liệu sai lệch ban đầu), bạn có đồng ý rằng trong tập huấn luyện, chúng tôi sẽ khử dữ liệu không?
Spacey

1

Sử dụng dữ liệu kiểm tra và huấn luyện không cân bằng một cách tự nhiên, tôi đã gặp phải một kịch bản trong đó mô hình của tôi dường như được cải thiện theo thời gian nhưng thực ra chỉ là ghi nhớ các mẫu lớp thiểu số trong tập huấn luyện và học cách luôn dự đoán lớp đa số cho mọi thứ khác.

Tôi đã chẩn đoán vấn đề này bằng cách cân bằng dữ liệu thử nghiệm của mình và quan sát rằng độ chính xác và mất dữ liệu thử nghiệm trở nên tồi tệ hơn với nhiều kỷ nguyên hơn (không phải là trường hợp với dữ liệu thử nghiệm không cân bằng).

Một cách khác để chẩn đoán các vấn đề như thế này là sử dụng các số liệu như độ nhạy, độ đặc hiệu hoặc độ chính xác cho một lớp duy nhất thay vì nhìn vào độ chính xác / tổn thất chung. Bài đăng trên blog này đi sâu vào chi tiết hơn về vấn đề này và đưa ra cách triển khai mẫu của các số liệu này trong Keras http://www.deepideas.net/unbal cân-classes-machine-learning/

Tôi nghĩ rằng giải pháp phù hợp phụ thuộc vào ứng dụng trong thế giới thực của mô hình của bạn và mức độ chính xác của các lớp thiểu số quan trọng như thế nào. Ví dụ, nếu bạn đang đào tạo một cái gì đó như fantenet và nhận thấy rằng nó có độ chính xác thấp cho lớp "sên biển" có lẽ là ok. Nhưng nếu bạn đang đào tạo một mô hình để dự đoán nếu ai đó bị ung thư thì độ chính xác của nhóm thiểu số sẽ rất quan trọng.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.