Tại sao xuống mẫu?


42

Giả sử tôi muốn tìm hiểu một trình phân loại dự đoán nếu một email là thư rác. Và giả sử chỉ có 1% email là thư rác.

Cách dễ nhất để làm là tìm hiểu trình phân loại tầm thường nói rằng không có email nào là thư rác. Trình phân loại này sẽ cung cấp cho chúng tôi độ chính xác 99%, nhưng nó sẽ không học được điều gì thú vị và sẽ có tỷ lệ âm tính giả 100%.

Để giải quyết vấn đề này, mọi người đã bảo tôi "xuống mẫu" hoặc tìm hiểu về một tập hợp con của dữ liệu trong đó 50% ví dụ là thư rác và 50% không phải là thư rác.

Nhưng tôi lo lắng về cách tiếp cận này, vì một khi chúng tôi xây dựng trình phân loại này và bắt đầu sử dụng nó trên một kho email thực sự (trái ngược với bộ kiểm tra 50/50), có thể dự đoán rằng rất nhiều email là thư rác khi chúng ' lại thực sự không. Chỉ vì nó thường thấy nhiều thư rác hơn so với thực tế trong bộ dữ liệu.

Vậy làm thế nào để chúng tôi khắc phục vấn đề này?

("Upsampling" hoặc lặp lại các ví dụ đào tạo tích cực nhiều lần để 50% dữ liệu là các ví dụ đào tạo tích cực, dường như gặp phải vấn đề tương tự.)

Câu trả lời:


37

Trên thực tế, hầu hết các mô hình phân loại không mang lại quyết định nhị phân, mà thay vào đó là giá trị quyết định liên tục (ví dụ: mô hình hồi quy logistic đưa ra xác suất, các SVM đưa ra một khoảng cách đã ký cho siêu phẳng, ...). Sử dụng các giá trị quyết định, chúng tôi có thể xếp hạng các mẫu thử nghiệm, từ 'gần như chắc chắn dương tính' đến 'gần như chắc chắn âm tính'.

Dựa trên giá trị quyết định, bạn luôn có thể chỉ định một số điểm cắt cấu hình bộ phân loại theo cách sao cho một phần dữ liệu nhất định được gắn nhãn là dương. Xác định ngưỡng thích hợp có thể được thực hiện thông qua các đường cong ROC hoặc PR của mô hình . Bạn có thể chơi với ngưỡng quyết định bất kể số dư được sử dụng trong tập huấn luyện. Nói cách khác, các kỹ thuật như up -or downsampling là trực giao với điều này.

Giả sử mô hình tốt hơn ngẫu nhiên, bạn có thể thấy bằng trực giác rằng việc tăng ngưỡng phân loại tích cực (dẫn đến dự đoán ít tích cực hơn ) làm tăng độ chính xác của mô hình với chi phí thu hồi thấp hơn và ngược lại.

Hãy xem xét SVM như một ví dụ trực quan: thách thức chính là tìm hiểu định hướng của siêu phẳng tách biệt. Up -or downsampling có thể giúp với điều này (tôi khuyên bạn nên ưu tiên upampling hơn downsampling). Khi định hướng của siêu phẳng tốt, chúng ta có thể chơi với ngưỡng quyết định (ví dụ: khoảng cách đã ký với siêu phẳng) để có được một phần dự đoán tích cực mong muốn.


Cảm ơn, điều đó rất hữu ích. Làm thế nào để bạn biết ngưỡng nên là gì? Bạn có muốn đặt ngưỡng sao cho tỷ lệ dự đoán tích cực bằng tỷ lệ của các ví dụ tích cực trong dân số không?
Jessica

2
@Jessica Như tôi đã đề cập, một cách thuận tiện để chọn ngưỡng là thông qua các đường cong đặc tính vận hành máy thu (ROC). Mỗi ngưỡng tương ứng với một điểm trong không gian ROC. Khi bạn vẽ đường cong, bạn có thể chọn ngưỡng dựa trên những gì phù hợp với nhu cầu cụ thể của bạn. (bạn cũng có thể sử dụng các đường cong gợi nhớ chính xác thay thế)
Marc Claesen

Tôi không đồng ý rằng khoảng cách của điểm kiểm tra đến siêu phẳng được học bởi một SVM là bất kỳ thước đo nào về độ tin cậy của dự đoán. Đã có những nỗ lực để làm cho những tâm sự dự đoán đầu ra SVM. Tra cứu tỉ lệ Platt chẳng hạn. Nhưng nó không làm tốt như phân loại quy trình Gaussian (độ tin cậy dự đoán wrt).
Seeda

1
R[0,1]

@MarcClaesen Tôi không gợi ý sử dụng Platt scale; đó là một "nỗ lực" để tạo ra những tâm sự dự đoán nhưng có những lựa chọn thay thế tốt hơn. Tất cả những gì tôi đang nói là việc sử dụng khoảng cách đến siêu phẳng không có ý nghĩa và xem xét tài liệu, tôi chưa bao giờ bắt gặp nó mặc dù đó là điều đầu tiên xuất hiện trong tâm trí của một người khi cố gắng tạo ra những tâm sự từ một SVM.
Seeda

14

Vấn đề thực sự ở đây là sự lựa chọn số liệu của bạn:% độ chính xác là thước đo kém về thành công của một mô hình trên bộ dữ liệu không cân bằng (vì lý do chính xác mà bạn đề cập: thật tầm thường để đạt được độ chính xác 99% trong trường hợp này).

Cân bằng dữ liệu của bạn trước khi lắp mô hình là một giải pháp tồi vì nó làm sai lệch mô hình của bạn và (thậm chí tệ hơn) ném ra dữ liệu có thể hữu ích.

Bạn nên cân bằng số liệu chính xác của mình hơn là cân bằng dữ liệu của mình. Ví dụ: bạn có thể sử dụng độ chính xác cân bằng khi đánh giá mô hình của mình : (error for the positive class + error for the negative class)/2. Nếu bạn dự đoán tất cả tích cực hoặc tất cả tiêu cực, số liệu này sẽ 50%là một tài sản tốt.

Theo tôi, lý do duy nhất để giảm mẫu là khi bạn có quá nhiều dữ liệu và không thể phù hợp với mô hình của bạn. Nhiều phân loại (ví dụ hồi quy logistic) sẽ làm tốt trên dữ liệu không cân bằng.


Tôi có thể hỏi làm thế nào phân loại có thể làm tốt trên dữ liệu mất cân bằng? Có lẽ đó chỉ là dữ liệu của tôi nhưng tôi đã thử đào tạo hồi quy logistic, các mô hình rừng ngẫu nhiên và mô hình C5.0 trên dữ liệu đào tạo của mình, cả mất cân bằng và cân bằng bằng cách sử dụng hỗn hợp / gạch dưới. Các mô hình được đào tạo về dữ liệu mất cân bằng thực hiện kém hơn nhiều trong bộ thử nghiệm của tôi so với các mô hình được đào tạo về dữ liệu cân bằng.
Seanosapien

13

Như luôn luôn @Marc Claesenlà một câu trả lời tuyệt vời.

Tôi chỉ nói thêm rằng khái niệm chính dường như còn thiếu là khái niệm về hàm chi phí . Trong bất kỳ mô hình nào, bạn có một chi phí ngầm định hoặc rõ ràng của âm tính giả với dương tính giả (FN / FP). Đối với dữ liệu không cân bằng được mô tả, người ta thường sẵn sàng có tỷ lệ 5: 1 hoặc 10: 1. Có nhiều cách giới thiệu các hàm chi phí vào các mô hình. Một phương pháp truyền thống là áp đặt giới hạn xác suất đối với các xác suất được tạo ra bởi một mô hình - điều này hoạt động tốt cho hồi quy logistic.

Một phương pháp được sử dụng cho các phân loại nghiêm ngặt không ước tính xác suất đầu ra một cách tự nhiên là lấy mẫu lớp đa số theo tỷ lệ sẽ tạo ra hàm chi phí mà bạn quan tâm. Lưu ý rằng nếu bạn lấy mẫu ở mức 50/50, bạn sẽ tạo ra hàm chi phí tùy ý. Hàm chi phí là khác nhau nhưng chỉ là tùy ý như thể bạn lấy mẫu ở tỷ lệ phổ biến. Bạn thường có thể dự đoán tỷ lệ lấy mẫu thích hợp tương ứng với hàm chi phí của bạn (thường không phải là 50/50), nhưng hầu hết các học viên mà tôi đã nói chỉ thử một vài tỷ lệ lấy mẫu và chọn một tỷ lệ gần nhất với hàm chi phí của họ.


2
Cảm ơn vì đã đưa nó lên, đó là một ý tưởng thú vị mà tôi đã không cân nhắc. Làm thế nào bạn có thể cho biết tỷ lệ lấy mẫu nào tương ứng với hàm chi phí của bạn?
Jessica

8

Trả lời trực tiếp câu hỏi của Jessica - một lý do cho việc lấy mẫu xuống là khi bạn làm việc với một tập dữ liệu lớn và đối mặt với giới hạn bộ nhớ trên máy tính của bạn hoặc chỉ đơn giản là muốn giảm thời gian xử lý. Downsampling (nghĩa là lấy một mẫu ngẫu nhiên mà không thay thế) từ các trường hợp tiêu cực làm giảm tập dữ liệu xuống kích thước dễ quản lý hơn.

Bạn đã đề cập bằng cách sử dụng "trình phân loại" trong câu hỏi của mình nhưng không chỉ định cái nào. Một phân loại bạn có thể muốn tránh là cây quyết định. Khi chạy một cây quyết định đơn giản trên dữ liệu sự kiện hiếm gặp, tôi thường thấy cây chỉ xây dựng một gốc duy nhất do nó gặp khó khăn khi chia rất ít trường hợp tích cực thành các loại. Có thể có các phương pháp tinh vi hơn để cải thiện hiệu suất của cây cho các sự kiện hiếm gặp - tôi không biết về bất kỳ thứ gì ngoài đỉnh đầu của mình.

β0

βc=β0log(p+1p+)

p+

nnnNn


3

Tất nhiên, phân loại mọi thứ là 'không phải thư rác' cho phép bạn nói rằng, được cung cấp 100 thư, nó sẽ phân loại chính xác 99 trong số đó, nhưng nó cũng phân loại là 'không phải thư rác', chỉ có một nhãn là thư rác (100% Sai tích cực). Nó chỉ ra rằng số liệu bạn chọn để đánh giá thuật toán không thích ứng. Video này minh họa khái niệm.

Nói một cách đơn giản, việc cân bằng bộ dữ liệu cho phép bạn cân nhắc các lỗi phân loại sai. Một thuật toán sử dụng tập huấn luyện không cân bằng có lẽ sẽ không học cách phân biệt các tính năng, bởi vì nó sẽ không quan trọng lắm với thực tế là phân loại sai dữ liệu của lớp ít ỏi.


0

Tuy nhiên, tôi sẽ không chọn lấy mẫu xuống hoặc lấy mẫu vì cả hai thủ thuật thuật toán học, tuy nhiên, nếu dữ liệu bị mất cân bằng, độ chính xác trở nên không hợp lệ hoặc không chính xác, do đó, tốt hơn là sử dụng các biện pháp chính xác và thu hồi, cả hai đều phụ thuộc chủ yếu vào TP ( các thư rác được phân loại chính xác trong trường hợp của bạn) điều này cho một ý tưởng tốt về hiệu suất thực sự của hệ thống của bạn trong việc phát hiện các thư rác bất kể số lượng các ví dụ tiêu cực.

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.