Hàm mất nào để sử dụng cho các lớp mất cân bằng (sử dụng PyTorch)?


16

Tôi có một bộ dữ liệu với 3 lớp với các mục sau:

  • Lớp 1: 900 phần tử
  • Lớp 2: 15000 phần tử
  • Lớp 3: 800 yếu tố

Tôi cần dự đoán lớp 1 và lớp 3, báo hiệu những sai lệch quan trọng so với định mức. Lớp 2 là trường hợp bình thường của người Viking mà tôi không quan tâm.

Loại chức năng mất nào tôi sẽ sử dụng ở đây? Tôi đã nghĩ đến việc sử dụng CrossEntropyLoss, nhưng vì có sự mất cân bằng về lớp học, điều này sẽ cần phải được cân nhắc? Làm thế nào mà nó hoạt động trong thực tế? Như thế này (sử dụng PyTorch)?

summed = 900 + 15000 + 800
weight = torch.tensor([900, 15000, 800]) / summed
crit = nn.CrossEntropyLoss(weight=weight)

Hoặc nên giảm cân? tức là 1 / trọng lượng?

Đây có phải là cách tiếp cận phù hợp để bắt đầu hoặc có phương pháp nào khác / tốt hơn mà tôi có thể sử dụng không?

Cảm ơn

Câu trả lời:


11

Loại chức năng mất nào tôi sẽ sử dụng ở đây?

Cross-entropy là hàm mất mát cho các nhiệm vụ phân loại, cân bằng hoặc mất cân bằng. Đó là lựa chọn đầu tiên khi chưa có ưu tiên nào được xây dựng từ kiến ​​thức tên miền.

Điều này sẽ cần phải được cân tôi giả sử? Làm thế nào mà nó hoạt động trong thực tế?

cc

Ví dụ: Nếu lớp 1 có 900, lớp 2 có 15000 và lớp 3 có 800 mẫu thì trọng lượng của chúng sẽ lần lượt là 16,67, 1,0 và 18,75.

Bạn cũng có thể sử dụng lớp nhỏ nhất làm người đề cử, lần lượt cung cấp 0.889, 0.053 và 1.0. Đây chỉ là một tỷ lệ lại, trọng lượng tương đối là như nhau.

Đây có phải là cách tiếp cận phù hợp để bắt đầu hoặc có phương pháp nào khác / tốt hơn mà tôi có thể sử dụng không?

Vâng, đây là cách tiếp cận đúng.

CHỈNH SỬA :

Nhờ @Muppet, chúng tôi cũng có thể sử dụng lấy mẫu quá mức, tương đương với việc sử dụng trọng số lớp . Điều này được thực hiện bằng WeightedRandomSamplertrong PyTorch, sử dụng các trọng số đã nói ở trên.


1
Tôi chỉ muốn thêm rằng việc sử dụng WeightedRandomSampler từ PyTorch cũng có ích, trong trường hợp người khác đang xem xét điều này.
Muppet

0

Khi bạn nói: Bạn cũng có thể sử dụng lớp nhỏ nhất làm người đề cử, lần lượt đưa ra 0.889, 0.053 và 1.0. Đây chỉ là một tỷ lệ lại, trọng lượng tương đối là như nhau.

Nhưng giải pháp này mâu thuẫn với giải pháp đầu tiên bạn đưa ra, nó hoạt động như thế nào?

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.