Làm thế nào để phân loại được hợp nhất trong một bộ phân loại đồng bộ?


8

Làm thế nào để một bộ phân loại đồng bộ hợp nhất các dự đoán của các bộ phân loại cấu thành của nó? Tôi đang gặp khó khăn trong việc tìm kiếm một mô tả rõ ràng. Trong một số ví dụ mã tôi đã tìm thấy, toàn bộ chỉ tính trung bình các dự đoán, nhưng tôi không thấy làm thế nào điều này có thể làm cho độ chính xác tổng thể "tốt hơn".

Hãy xem xét trường hợp sau đây. Một bộ phân loại tập hợp bao gồm 10 phân loại. Một bộ phân loại có độ chính xác 100% thời gian trong tập hợp dữ liệu X và 0% tất cả các lần khác. Tất cả các phân loại khác có độ chính xác 0% trong tập hợp dữ liệu X và 100% tất cả các lần khác.

Sử dụng một công thức tính trung bình, trong đó độ chính xác của bộ phân loại bị bỏ qua, bộ phân loại đồng bộ sẽ có độ chính xác cao nhất là 50%. Điều này có đúng không, hay tôi đang thiếu thứ gì đó? Làm thế nào có thể lấy dự đoán trung bình từ N phân loại có khả năng không biết gì có thể tạo ra dự đoán tốt hơn sau đó một phân loại duy nhất đó là một chuyên gia trong một miền cụ thể?

Câu trả lời:


5

Tôi đọc một ví dụ rõ ràng từ Giới thiệu về Khai thác dữ liệu của Tan et al.

Ví dụ tuyên bố rằng nếu bạn kết hợp các trình phân loại của mình với một hệ thống bỏ phiếu, đó là phân loại một bản ghi với lớp được bình chọn nhiều nhất, bạn sẽ có được hiệu suất tốt hơn. Tuy nhiên, ví dụ này sử dụng trực tiếp nhãn đầu ra của các phân loại và không phải là dự đoán (tôi nghĩ bạn có nghĩa là xác suất).

e= =1-sự chính xác= =0,35

ΣTôi= =1325(25Tôi)eTôi(1-e)(25-Tôi)= =0,06
Tôi25-Tôi

Sử dụng dự đoán trực tiếp và sử dụng như một phương pháp kết hợp ở mức trung bình, tôi nghĩ rằng có thể khó khăn hơn một chút để thể hiện sự ngẫu hứng trong hiệu suất của bộ đồng phục. Tuy nhiên, chỉ tập trung vào các dự đoán và không quan tâm đến nhãn đầu ra của nhóm, tính trung bình nhiều dự đoán hơn có thể được xem như một công cụ ước tính của xác suất thực. Do đó, việc thêm các phân loại nên cải thiện dự đoán của kỹ thuật hòa tấu.


1
Đây là một cách tuyệt vời để hiểu tại sao đoàn này hoạt động. Tuy nhiên, trường hợp cụ thể có thể là quá lạc quan về hiệu suất được cải thiện. Đây là cơ bản mỗi phân loại được đào tạo (thường) trên cùng một dữ liệu - làm cho tính độc lập của các phân loại bị nghi ngờ.
xác suất

Tất nhiên, sự độc lập là một giả thuyết quá mạnh mẽ.
Simone

5

Bạn đang thiếu thực tế là trình phân loại "xấu" không có độ chính xác 0%, thay vào đó, nó không tốt hơn đáng kể so với đoán ngẫu nhiên.

Cách này dự đoán tốt luôn giống nhau và tích lũy (vì sự thật chỉ là một) trong khi dự đoán xấu là tiếng ồn ngẫu nhiên trung bình.


Không phải bất kỳ phân loại nào là tổng thể "xấu" hay "tốt". Tôi đang nói về độ chính xác của từng phân loại trong các lĩnh vực cụ thể. Nếu một trình phân loại là hoàn hảo trong một miền cụ thể, thì việc đưa nó vào một nhóm có thể có khả năng che khuất tính hữu dụng của nó, bởi vì tất cả các phân loại khác có thể tạo ra các phân loại xấu.
Cerin

1
Trừ khi bạn có mâu thuẫn hoàn hảo (gần như không có trong dữ liệu thực, có thể sử dụng được), các miền không thay đổi bất cứ điều gì vì trình phân loại cũng sẽ tạo ra tiếng ồn thay vì lớp xấu riêng cho các đối tượng bên ngoài miền của nó - theo cách này chỉ có các phân loại một phần khác nhau sẽ là " tốt "trong mỗi lĩnh vực. Dù sao, rõ ràng là một tín hiệu sắc nét, hoàn hảo sẽ bị tắt tiếng do nhiễu (hy vọng là không hoàn toàn), nhưng đây là sự đánh đổi vì không có thông tin về phân loại một phần nào hoạt động cho những đối tượng nào.

Quan điểm của tôi là nếu bạn có một bộ phân loại tuyệt vời và trung bình dự đoán đó với các bộ phân loại xấu, bạn sẽ không thể có được một dự đoán tốt hơn. Bạn đang làm loãng dự đoán tốt của bạn.
Cerin

@chriss - thường là khi bạn tính trung bình mỗi trọng lượng phân loại theo hiệu suất của nó. trong sơ đồ này, một bộ phân loại tuyệt vời chỉ bị pha loãng bởi các bộ phân loại tuyệt vời khác. Phân loại crap có trọng lượng thấp (thường thấp theo cấp số nhân) và do đó không pha loãng.
xác suất

@ChisS Bạn hoàn toàn đúng - điểm đáng chú ý là bạn không thể chọn phân loại tốt nhất cho từng đối tượng, vì vậy bạn giao dịch trung bình giải pháp hợp lý cho một số suy giảm tín hiệu do nhiễu và nguy cơ thảm họa phân loại cơ sở tương quan.

0

Trong trường hợp phân loại nói chung, có hai cách để đưa ra dự đoán. Hãy nói rằng đó là một vấn đề phân loại lớp nhị phân và bạn có 3 mô hình để gọi là m1, m2 và m3 và tập dữ liệu huấn luyện được gọi là tập dữ liệu thử nghiệm và thử nghiệm được gọi là test.Models đã được xây dựng trên train. Sau đó, mã python sẽ như sau.

Phương pháp đầu tiên là lấy một vòng trung bình

pred=round([m1.predict(test)+m2.predict(test)+m3.predict(test)]/3) 

Vì vậy, đầu ra sẽ là một vectơ giá trị 0 và 1

Phương pháp thứ hai là tập hợp xác suất dự đoán của từng lớp từ các mô hình này và tập hợp điều đó và sau đó quyết định lớp dựa trên ngưỡng cứng hoặc logic nào đó.

pred_proba=[m1.predict(test).predict_proba++ m2.predict(test).predict_proba 
+m3.predict(test).predict_proba]/3 
# Simple average ensemble,however you can try weighted average as well

Lặp lại qua toàn bộ vectơ pre_proba để tìm cái nào trong 0 và cái nào là 1 dựa trên ngưỡng cứng 0,5

pred=[] # Initialize a blank list for prediction

for x in pred_proba:
 if x>0.5:
   pred.append[1]
 else:
   pred.append[0]

Vì vậy, trước là dự đoán cuối cù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.