Làm thế nào để khắc phục sự mất cân bằng lớp học trong mẫu đào tạo?


7

Gần đây tôi đã được hỏi trong một cuộc phỏng vấn việc làm về các giải pháp để khắc phục sự mất cân bằng của các lớp trong bộ dữ liệu đào tạo. Hãy tập trung vào một trường hợp phân loại nhị phân.

Tôi đã đưa ra hai giải pháp: chồng chéo lớp thiểu số bằng cách cung cấp các lô dữ liệu cân bằng phân loại hoặc phân vùng lớp phong phú như đào tạo nhiều phân loại với tập huấn luyện cân bằng, tập con duy nhất của nhóm thiểu số và cùng nhóm thiểu số. Những người phỏng vấn gật đầu, nhưng sau đó tôi đã bị cắt và một trong những lỗ hổng kiến ​​thức mà họ đề cập là câu trả lời này. Bây giờ tôi biết rằng tôi có thể đã thảo luận về việc thay đổi số liệu ..

Nhưng câu hỏi hiện lên trong đầu tôi là: có thực sự là vấn đề khi đào tạo một bộ phân loại với 80% loại A nếu bộ thử nghiệm sẽ có cùng tỷ lệ không? Nguyên tắc cơ bản của học máy dường như là tập huấn luyện cần phải giống nhất có thể với thử nghiệm để có hiệu suất dự đoán tốt nhất.

Không phải chỉ trong các trường hợp không có ý tưởng (không có trước) về việc phân phối thử nghiệm mà chúng ta cần để cân bằng các lớp học? Có lẽ tôi nên nêu quan điểm này trong cuộc phỏng vấn ..

Câu trả lời:


4

Thật ra những gì họ đề cập là đúng. Ý tưởng về oversampling là đúng và nói chung, là một trong những phương pháp Resampling để đối phó với vấn đề như vậy. Lấy mẫu lại có thể được thực hiện thông qua việc chồng chéo các nhóm thiểu số hoặc nhấn mạnh các đa số. Bạn có thể xem thuật toán SMOTE như một phương pháp lấy mẫu được thiết lập tốt.

Nhưng về câu hỏi chính của bạn: Không chỉ là về tính nhất quán của phân phối giữa tập kiểm tra và tập huấn. Nó là một chút nữa.

Như bạn đã đề cập về số liệu, chỉ cần tưởng tượng điểm chính xác. Nếu tôi có một vấn đề phân loại nhị phân với 2 lớp, một 90% dân số và 10% khác, thì không cần Machine Learning, tôi có thể nói dự đoán của tôi luôn là lớp đa số và tôi có độ chính xác 90%! Vì vậy, nó chỉ không hoạt động bất kể tính nhất quán giữa các bản phân phối thử nghiệm tàu. Trong những trường hợp như vậy, bạn có thể chú ý nhiều hơn đến Chính xác và Thu hồi. Thông thường, bạn muốn có một bộ phân loại giúp giảm thiểu giá trị trung bình (thường là trung bình hài hòa) của Chính xác và Thu hồi, tức là tỷ lệ lỗi là trong đó FP và FN khá nhỏ và gần nhau.

Giá trị trung bình hài được sử dụng thay cho trung bình số học vì nó hỗ trợ điều kiện là các lỗi đó càng bằng nhau càng tốt. Ví dụ: nếu Chính xác là1 và Nhớ lại là 0 trung bình số học là 0,5mà không minh họa thực tế bên trong kết quả. Nhưng điều hòa có nghĩa là0 Tuy nhiên, một trong những số liệu là tốt, một trong những số liệu khác là siêu xấu, vì vậy nói chung kết quả là không tốt.

Nhưng có những tình huống trong thực tế mà bạn KHÔNG muốn giữ các lỗi bằng nhau. Tại sao? Xem ví dụ dưới đây:

Một điểm bổ sung

Đây không phải là chính xác về câu hỏi của bạn nhưng có thể giúp hiểu.

nhập mô tả hình ảnh ở đây

Trong thực tế, bạn có thể hy sinh một lỗi để tối ưu hóa lỗi khác. Ví dụ, chẩn đoán HIV có thể là một trường hợp (tôi chỉ là một ví dụ). Đây là sự phân loại rất mất cân bằng vì dĩ nhiên, số người không nhiễm HIV cao hơn đáng kể so với những người mang mầm bệnh. Bây giờ hãy xem xét các lỗi:

Dương tính giả: Người không nhiễm HIV nhưng xét nghiệm cho biết họ có.

Âm tính giả: Người bị nhiễm HIV nhưng xét nghiệm cho biết họ không bị.

Nếu chúng ta cho rằng việc nói sai với ai đó rằng anh ta bị nhiễm HIV chỉ đơn giản là dẫn đến một xét nghiệm khác, chúng ta có thể quan tâm nhiều đến việc không nói sai rằng ai đó anh ta không phải là người mang mầm bệnh vì nó có thể dẫn đến việc lan truyền virus. Ở đây, thuật toán của bạn phải nhạy cảm với Sai âm và trừng phạt nó nhiều hơn so với Sai tích cực, tức là theo hình trên, bạn có thể có tỷ lệ Sai dương cao hơn.

Điều tương tự cũng xảy ra khi bạn muốn tự động nhận diện khuôn mặt của mọi người bằng camera để cho phép họ vào một trang web cực kỳ bảo mật. Bạn không phiền nếu cửa không được mở một lần cho người có quyền (Sai ​​âm) nhưng tôi chắc chắn bạn không muốn cho người lạ vào! (Sai tích cực)

Hy vọng nó sẽ giúp.


Rất cám ơn câu trả lời chi tiết. Vì vậy, nếu tôi hiểu đúng, nếu chi phí phân loại sai là như nhau cost(false positive) = cost(false negative), thì tôi có thể sử dụng độ chính xác như số liệu và chỉ nên cân bằng lại để phù hợp với phân phối mẫu thử. Có đúng không?
Học tập là một mớ hỗn độn

1
Rất vui vì nó đã giúp :) Thực sự thay đổi kích thước (cân bằng lại) là cách để giữ cho các lỗi đó khá nhỏ. Bạn đã nhìn thấy nó từ cách khác xung quanh. Nếu các lớp của bạn được cân bằng thì bạn sẽ có được Độ chính xác và Thu hồi tốt hơn. Và về phân phối: Thông thường, giả định trong học máy là đào tạo và kiểm tra là từ các bản phân phối tương tự, vì vậy đừng dành nhiều thời gian cho việc đó. Tình huống trong đó chúng không giống nhau là một nhánh trong Machine Learning được gọi là "Thích ứng miền" hoặc "Học chuyển"
Kasra Manshaei

1

Đối với câu hỏi của bạn "có thực sự là một vấn đề khi đào tạo một bộ phân loại với 80% loại A nếu bộ kiểm tra sẽ có cùng tỷ lệ không?", Câu trả lời là "nó phụ thuộc vào chi phí phân loại sai", nhưng thông thường nó chắc chắn là một vấn đề , bởi vì trình phân loại của bạn sẽ được thiên vị để phân loại một cá nhân vào lớp được đại diện quá mức bất kể các giá trị của các tính năng của nó bởi vì, trung bình , làm như vậy làm tăng cơ hội phân loại chính xác trong quá trình đào tạo.

Có các chiến lược oversampling và underampling khác nhau . Có lẽ phổ biến nhất là SMote (Kỹ thuật lấy mẫu quá mức tổng hợp), tạo ra dữ liệu đào tạo tổng hợp dựa trên các nước láng giềng k gần nhất.

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.