Khi nào tôi nên cân bằng các lớp trong một tập dữ liệu đào tạo?


29

Tôi đã có một khóa học trực tuyến, nơi tôi học được, rằng các lớp không cân bằng trong dữ liệu đào tạo có thể dẫn đến các vấn đề, bởi vì các thuật toán phân loại đi theo quy tắc đa số, vì nó mang lại kết quả tốt nếu sự mất cân bằng quá nhiều. Trong một bài tập, người ta phải cân bằng dữ liệu thông qua việc lấy mẫu lớp đa số.

Tuy nhiên, trong blog này, có người cho rằng dữ liệu cân bằng thậm chí còn tệ hơn:

https://matloff.wordpress.com/2015/09/29/unbal cân-data-is-a-pro Hiệu-no-bal cân-data-is-worse /

Vì vậy, đó là một trong nó? Có nên cân bằng dữ liệu hay không? Có phụ thuộc vào thuật toán được sử dụng không, vì một số có thể có khả năng tuân theo tỷ lệ không cân bằng của các lớp? Nếu vậy, cái nào đáng tin cậy trên dữ liệu không cân bằng?

Câu trả lời:


28

Lý luận trực quan đã được giải thích trong blogpost:

Nếu mục tiêu của chúng tôi là Dự đoán, điều này sẽ gây ra sai lệch nhất định. Và tệ hơn, nó sẽ là một thiên vị vĩnh viễn, theo nghĩa là chúng ta sẽ không có ước tính phù hợp khi kích thước mẫu tăng lên.

Vì vậy, có thể cho rằng vấn đề về dữ liệu cân bằng (giả tạo) còn tồi tệ hơn trường hợp không cân bằng.

Dữ liệu cân bằng là tốt để phân loại, nhưng rõ ràng bạn mất thông tin về tần số xuất hiện, điều này sẽ ảnh hưởng đến chính số liệu chính xác, cũng như hiệu suất sản xuất.

Giả sử bạn đang nhận ra các chữ viết tay từ bảng chữ cái tiếng Anh (26 chữ cái). Cân bằng mỗi lần xuất hiện chữ cái sẽ cho mỗi chữ cái xác suất được phân loại (chính xác hoặc không) khoảng 1/26, vì vậy phân loại sẽ quên phân phối thực tế của các chữ cái trong mẫu ban đầu. Và ổn khi phân loại có thể khái quát hóa và nhận ra mọi chữ cái với độ chính xác cao .

Nhưng nếu độ chính xác và quan trọng nhất là khái quát hóa không "cao" (tôi không thể đưa ra một định nghĩa - bạn có thể nghĩ nó giống như một "trường hợp xấu nhất") - các điểm được phân loại sai rất có thể sẽ phân phối đều giữa các chữ cái , cái gì đó như:

"A" was misclassified 10 times
"B" was misclassified 10 times
"C" was misclassified 11 times
"D" was misclassified 10 times
...and so on

Trái ngược với việc không cân bằng (giả sử rằng "A" và "C" có xác suất xuất hiện cao hơn nhiều trong văn bản)

"A" was misclassified 3 times
"B" was misclassified 14 times
"C" was misclassified 3 times
"D" was misclassified 14 times
...and so on

Vì vậy, các trường hợp thường xuyên sẽ nhận được ít phân loại sai. Cho dù nó tốt hay không phụ thuộc vào nhiệm vụ của bạn. Đối với nhận dạng văn bản tự nhiên, người ta có thể lập luận rằng các chữ cái có tần số cao hơn là khả thi hơn, vì chúng sẽ bảo tồn ngữ nghĩa của văn bản gốc, đưa nhiệm vụ nhận dạng đến gần hơn với dự đoán (trong đó ngữ nghĩa đại diện cho xu hướng ). Nhưng nếu bạn đang cố gắng nhận ra thứ gì đó như ảnh chụp màn hình của khóa ECDSA (entropy nhiều hơn -> ít dự đoán hơn) - giữ cho dữ liệu không cân bằng sẽ không giúp ích. Vì vậy, một lần nữa, nó phụ thuộc.

Điểm khác biệt quan trọng nhất là bản thân ước tính độ chính xác bị sai lệch (như bạn có thể thấy trong ví dụ bảng chữ cái cân bằng), vì vậy bạn không biết hành vi của mô hình bị ảnh hưởng bởi hầu hết các điểm hiếm gặp hoặc thường xuyên nhất.

PS Bạn luôn có thể theo dõi hiệu suất của phân loại không cân bằng với số liệu Chính xác / Thu hồi trước và quyết định xem bạn có cần thêm cân bằng hay không.


EDIT : Có thêm sự nhầm lẫn nằm trong lý thuyết ước tính chính xác về sự khác biệt giữa trung bình mẫu và trung bình dân số. Chẳng hạn, bạn có thể biết (có thể) phân phối thực tế các chữ cái tiếng Anh trong bảng chữ cái , nhưng mẫu của bạn (tập huấn luyện) không đủ lớn để ước tính chính xác (với ). Vì vậy, để bù cho , đôi khi chúng tôi khuyên bạn nên cân bằng lại các lớp theo chính dân số hoặc tham số được biết từ một mẫu lớn hơnp(xtôi|θ)p(xtôi|θ^)θ^tôi-θtôi(do đó ước tính tốt hơn). Tuy nhiên, trong thực tế, không có gì đảm bảo rằng "mẫu lớn hơn" được phân phối chính xác do rủi ro nhận được dữ liệu sai lệch trên mỗi bước (giả sử các chữ cái tiếng Anh được thu thập từ tài liệu kỹ thuật so với tiểu thuyết so với toàn bộ thư viện) vì vậy việc cân bằng vẫn có thể gây hại.

Câu trả lời này cũng cần làm rõ các tiêu chí áp dụng để cân bằng:

Vấn đề mất cân bằng lớp là do không có đủ các mẫu thuộc về nhóm thiểu số, không phải do tỷ lệ của các mẫu tích cực và tiêu cực trên mỗi se. Nói chung nếu bạn có đủ dữ liệu, "vấn đề mất cân bằng lớp" sẽ không phát sinh

Kết luận, cân bằng nhân tạo hiếm khi hữu ích nếu tập huấn luyện đủ lớn. Sự vắng mặt của dữ liệu thống kê từ một mẫu phân phối giống hệt lớn hơn cũng cho thấy không cần phải cân bằng nhân tạo (đặc biệt là dự đoán), nếu không, chất lượng của công cụ ước tính cũng tốt như "xác suất gặp khủng long":

Xác suất để gặp một con khủng long ngoài đường là gì?

1/2 bạn gặp một con khủng long hoặc bạn không gặp một con khủng long


5
Tôi nghĩ bên cạnh lời giải thích về vấn đề, vấn đề quan trọng của câu trả lời này là người ta nên thử mất cân bằng trước và kiểm tra kết quả của nó và chỉ khi cần thiết mới thực hiện việc cân bằng và kiểm tra kết quả của nó. +1
Zelphir Kaltstahl

Vì vậy, nói cách khác, với các lớp phân bố đồng đều cho tập con đào tạo, mô hình sẽ mất đi độ chính xác của nó trong dữ liệu không nhìn thấy, phải không? Nhưng, trong trường hợp ngược lại, khi bạn cố gắng trích xuất ngẫu nhiên các mục của bộ dữ liệu cho các tập con thử nghiệm / kiểm tra của mình, liệu trình phân loại của bạn có hoạt động tốt hơn không?
Christos K.

@ChristosK. Như nhiều người đã nói, khi bạn xem vấn đề là phân loại, thật khó để suy luận về dự đoán. Trong mọi trường hợp, nếu bạn loại bỏ sự thiên vị (mẫu ngẫu nhiên, một cách ngẫu nhiên) - bạn cần một mẫu lớn hơn để cải thiện hiệu suất. Nó chỉ là một mẫu thông thường, đủ lớn để bảo tồn ngữ nghĩa, do đó, việc mất cân bằng sẽ chỉ làm tổn thương và hành động giống như búa thường xuyên mà không làm phẳng mọi thứ mà không có sự cân nhắc đúng đắn. Ngoài ra, như phép ẩn dụ của khủng long gợi ý, sự cân bằng của Hồi giáo không có nghĩa là thậm chí còn có nghĩa là bạn - bạn chỉ cân bằng đúng cách khi bạn biết rằng một số xác suất được trình bày sai trong một mẫu ngẫu nhiên.
dk14

1
@ChristosK. Cảm ơn cho một số làm rõ. Nó không giống với những gì tôi muốn nói nhưng cách tiếp cận rất giống nhau. Khuyến nghị thông thường cho khả năng áp dụng của k-Fold là thực hiện khi mẫu ban đầu của bạn là loại nhỏ. Không chắc chắn, nhưng gấp không nên làm tổn thương dù sao đi nữa - chỉ cần nó chạy nhiều hơn và bạn càng ít quan tâm đến dự đoán, bạn càng không quan tâm đến việc khái quát hóa / hiệu suất như tautological như nó có vẻ :). Nhưng nhìn chung - k-Fold có nghĩa là ít sai lệch về cơ bản.
dk14

1
@ChristosK. Ồ, và như một cảnh báo, tỷ lệ thư rác / không phải thư rác có thể là một biến ngẫu nhiên không cố định. Với tất cả những tin tức giả mạo của người Hồi giáo, người Nga, những người trolls người Nga và những thứ khác tôi sẽ cẩn thận với những giả định như vậy - tỷ lệ cũng có thể bị sai lệch. Bạn có thể muốn ước tính PrecisionRecall trên các trình phân loại của mình trước, nếu có thứ gì đó được lấy mẫu thấp - tôi muốn thu thập / tạo (?) Nhiều dữ liệu hơn.
dk14

17

Phù hợp với nhận xét của @ kjetil-b-halvorsen, việc áp dụng học máy nhanh chóng đã khiến các nhà nghiên cứu bối rối về dự đoán so với phân loại. Như tôi đã mô tả chi tiết hơn ở đây , phân loại chỉ thích hợp trong một số ít trường hợp. Khi kết quả là hiếm (hoặc quá phổ biến), xác suất là tất cả bởi vì trong trường hợp đó, người ta chỉ có thể nói một cách hợp lý về xu hướng , chứ không phải về dự đoán sự xuất hiện của từng cá nhân.

Trong thống kê, chúng tôi đã học được một thời gian trước rằng bất kỳ phương pháp nào yêu cầu một phương pháp để loại trừ một số dữ liệu đều rất đáng ngờ. Vì vậy, mục tiêu cân bằng kết quả bị đặt không đúng chỗ. Dự đoán về xu hướng (xác suất) không yêu cầu nó. Và một khi bạn ước tính xác suất, bạn có thể đưa ra quyết định tối ưu bằng cách áp dụng hàm tiện ích / chi phí / tổn thất cho rủi ro dự đoán.


1

Phụ thuộc vào những gì bạn muốn đạt được từ phân loại?

Nói rằng đó là ung thư v / s không phải ung thư, sau đó phát hiện ung thư là vấn đề sống còn. Tuy nhiên, vì không phải là ung thư sẽ hình thành phần lớn dữ liệu của bạn, nên về cơ bản, bộ phân loại có thể gửi tất cả các trường hợp đến lớp không ung thư và có độ chính xác rất cao. Nhưng chúng tôi không đủ khả năng đó, vì vậy về cơ bản chúng tôi đã loại bỏ các trường hợp không phải là ung thư, về cơ bản là chuyển ranh giới quyết định ra khỏi khu vực ung thư sang khu vực không ung thư.

Ngay cả trong các trường hợp sử dụng mà độ chính xác là mục tiêu duy nhất của chúng tôi, việc cân bằng có thể là điều cần thiết nếu cân bằng thời gian thử nghiệm được dự kiến ​​sẽ khác với thời gian tàu.

Ví dụ: bạn muốn phân loại xoài và cam, bạn có một tập dữ liệu huấn luyện với 900 quả xoài và 30 quả cam, nhưng bạn dự kiến ​​sẽ triển khai nó trong một thị trường với xoài và cam bằng nhau, lý tưởng nhất là bạn nên lấy mẫu theo tỷ lệ mẫu dự kiến ​​để tối đa hóa độ chính xác.


Đó là những gì tôi hiểu từ các bài giảng tôi đã có. Tuy nhiên, tôi không hiểu khi cân bằng có thể xấu, như bài đăng trên blog này cho thấy. Tại sao việc cân bằng lại trở nên tồi tệ, nếu vẫn còn đủ điểm dữ liệu cho mỗi lớp?
Zelphir Kaltstahl

Xin lỗi, nhưng trong sự tương tự của bạn, phân phối trái cây thị trường có liên quan gì đến độ chính xác của mô hình? Bạn có học cách tách xoài ra khỏi cam hay không. Nói cách khác, bạn sẽ có thể triển khai cùng một mô hình trên thị trường chỉ có màu cam hoặc chỉ có xoài.
Fernando

3
Nhưng vấn đề với ví dụ về ung thư là xem nó như là phân loại , nó nên được coi là ước tính rủi ro . Sau đó, vấn đề rõ ràng với các lớp không cân bằng biến mất, xem số liệu thống kê.stackexchange.com/questions/127042 / 21
kjetil b halvorsen

1

Khi dữ liệu của bạn được cân bằng, bạn có thể muốn kiểm tra độ chính xác của số liệu. Nhưng khi tình huống như vậy, dữ liệu của bạn bị mất cân bằng, độ chính xác của bạn không nhất quán cho các lần lặp khác nhau. Bạn cần tập trung nhiều số liệu hơn như Độ chính xác (PPR), Nhớ lại (độ nhạy). Hai số liệu này nên được cân bằng khi so sánh. Ngoài ra, bạn nên kiểm tra F1-Score, nghĩa là hài hòa của Độ chính xác và thu hồi. Điều này có thể áp dụng cho tất cả các thuật toán học máy

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.