Hiệu suất trung bình vi mô so với trung bình vĩ mô trong cài đặt phân loại nhiều lớp


102

Tôi đang thử một thiết lập phân loại đa lớp với 3 lớp. Phân phối lớp bị sai lệch với hầu hết các dữ liệu thuộc 1 trong 3 lớp. (nhãn lớp là 1,2,3, với 67,28% dữ liệu thuộc nhãn lớp 1, 11,99% dữ liệu trong lớp 2 và còn lại trong lớp 3)

Tôi đang đào tạo một trình phân loại đa lớp trên tập dữ liệu này và tôi sẽ nhận được hiệu suất sau:

                    Precision           Recall           F1-Score
Micro Average       0.731               0.731            0.731
Macro Average       0.679               0.529            0.565

Tôi không chắc tại sao tất cả Micro avg. hiệu suất là như nhau và cũng là lý do tại sao hiệu suất trung bình Macro rất thấp.


1
bạn không thể nhìn vào các tích cực thực sự cá nhân, vv trước khi tính trung bình? cũng vậy, trung bình vĩ mô có xu hướng thấp hơn trung bình vi mô
oW_

Các biện pháp Micro và Macro F có đặc trưng cho phân loại hoặc truy xuất văn bản không, hoặc chúng có thể được sử dụng cho bất kỳ vấn đề nhận dạng hoặc phân loại nào ..... Nếu vậy chúng ta có thể nhận được tầm quan trọng của từng hoặc bất kỳ sự điều chỉnh nào khác ...
idrees

1
Không phải Độ chính xác trung bình của Micro giống như Độ chính xác của tập dữ liệu? Theo những gì tôi hiểu, đối với Micro Average Precision, bạn tính tổng của tất cả các số dương thực sự và chia nó cho tổng của tất cả các số dương thực sự cộng với tổng của tất cả các số dương. Vì vậy, về cơ bản, bạn chia số lượng dự đoán được xác định chính xác cho tổng số dự đoán. Trường hợp nào khác với tính toán chính xác? Tại sao chúng ta cần một thuật ngữ chính xác đặc biệt mới làm cho mọi thứ phức tạp hơn thay vì chỉ đơn giản là bám vào giá trị chính xác? Hãy chứng minh tôi sai để tôi có thể ngủ yên.
Nico Zettler

1
@NicoZettler Bạn đã đúng. Độ chính xác trung bình vi và thu hồi trung bình vi đều bằng độ chính xác khi mỗi điểm dữ liệu được gán cho chính xác một lớp. Đối với câu hỏi thứ hai của bạn, các số liệu trung bình vi mô khác với độ chính xác tổng thể khi các phân loại được đa nhãn (mỗi điểm dữ liệu có thể được gán nhiều hơn một nhãn) và / hoặc khi một số lớp bị loại trừ trong trường hợp nhiều lớp. Xem scikit-learn.org/urdy/modules/ .
Johnson

Câu trả lời:


144

Trung bình vi mô và vĩ mô (đối với bất kỳ số liệu nào) sẽ tính toán những thứ hơi khác nhau, và do đó cách giải thích của chúng khác nhau. Trung bình vĩ mô sẽ tính toán số liệu một cách độc lập cho mỗi lớp và sau đó lấy trung bình (do đó đối xử bình đẳng với tất cả các lớp), trong khi trung bình vi mô sẽ tổng hợp các đóng góp của tất cả các lớp để tính toán số liệu trung bình. Trong thiết lập phân loại nhiều lớp, trung bình vi mô là tốt hơn nếu bạn nghi ngờ có thể có sự mất cân bằng lớp (nghĩa là bạn có thể có nhiều ví dụ về một lớp hơn so với các lớp khác).

Để minh họa tại sao, lấy ví dụ độ chính xác . Hãy tưởng tượng bạn có một One-vs-All (chỉ có một đầu ra lớp đúng mỗi chẳng hạn) hệ thống phân loại đa lớp với bốn lớp học và những con số sau khi kiểm tra:Pr=TP(TP+FP)

  • Hạng A: 1 TP và 1 FP
  • Hạng B: 10 TP và 90 FP
  • Lớp C: 1 TP và 1 FP
  • Lớp D: 1 TP và 1 FP

Bạn có thể dễ dàng thấy rằng , trong khi .PrA=PrC=PrD=0.5PrB=0.1

  • Trung bình vĩ mô sau đó sẽ tính toán:Pr=0.5+0.1+0.5+0.54=0.4
  • Một trung bình vi mô sẽ tính toán:Pr=1+10+1+12+100+2+2=0.123

Đây là những giá trị khá khác nhau cho độ chính xác. Theo trực giác, ở mức trung bình vĩ mô, độ chính xác "tốt" (0,5) của các lớp A, C và D đang góp phần duy trì độ chính xác tổng thể "khá" (0,4). Mặc dù điều này đúng về mặt kỹ thuật (giữa các lớp, độ chính xác trung bình là 0,4), nhưng nó hơi sai lệch, vì một số lượng lớn các ví dụ không được phân loại đúng. Những ví dụ này chủ yếu tương ứng với lớp B, vì vậy chúng chỉ đóng góp 1/4 vào mức trung bình mặc dù cấu thành 94,3% dữ liệu thử nghiệm của bạn. Trung bình vi mô sẽ nắm bắt đầy đủ sự mất cân bằng của lớp này và đưa trung bình chính xác tổng thể xuống còn 0,125 (phù hợp hơn với độ chính xác của lớp B thống trị (0,1)).

Vì các lý do tính toán, đôi khi có thể thuận tiện hơn để tính trung bình của lớp và sau đó là trung bình vĩ mô. Nếu mất cân bằng lớp học là một vấn đề, có một số cách xung quanh nó. Một là báo cáo không chỉ trung bình vĩ mô, mà cả độ lệch chuẩn của nó (đối với 3 lớp trở lên). Một cách khác là tính trung bình vĩ mô có trọng số, trong đó mỗi lớp đóng góp vào mức trung bình được tính theo số lượng ví dụ tương đối có sẵn cho nó. Trong kịch bản trên, chúng tôi có được:

Prmacromean=0.25·0.5+0.25·0.1+0.25·0.5+0.25·0.5=0.4 Prmacrostdev=0.173

Prmacroweighted=0.0189·0.5+0.943·0.1+0.0189·0.5+0.0189·0.5=0.009+0.094+0.009+0.009=0.123

Độ lệch chuẩn lớn (0,173) đã cho chúng ta biết rằng trung bình 0,4 không xuất phát từ độ chính xác đồng nhất giữa các lớp, nhưng có thể dễ dàng hơn để tính trung bình vĩ mô có trọng số, về bản chất là một cách khác để tính trung bình vi mô .


10
Câu trả lời này xứng đáng được nâng cao hơn, bởi vì nó giúp xây dựng sự hiểu biết tại sao vi mô và vĩ mô hoạt động khác nhau thay vì chỉ liệt kê các công thức (và đó là nội dung gốc).
steffen

2
Làm thế nào điều này giải thích các giá trị vĩ mô khác nhau trong câu hỏi ban đầu?
run rẩy

3
Nếu bạn lật kịch bản được phác thảo trong câu trả lời, với lớp lớn hoạt động tốt hơn lớp nhỏ, bạn sẽ thấy trung bình vi mô cao hơn mức trung bình vĩ mô (đó là hành vi được báo cáo trong câu hỏi). Rằng các giá trị vĩ mô là khác nhau ít nhiều được mong đợi, vì bạn đang đo lường những thứ khác nhau (độ chính xác, thu hồi ...). Tại sao các trung bình vi đều giống nhau mà tôi tin là câu hỏi.
trăn trở nhất vào

4
Tôi không đồng ý với tuyên bố rằng trung bình vi mô nên được ưu tiên hơn macro trong trường hợp bộ dữ liệu mất cân bằng. Trong thực tế, đối với điểm F, macro được ưu tiên hơn micro vì trước đây có tầm quan trọng như nhau đối với mỗi lớp trong khi đó điểm sau lại có tầm quan trọng như nhau đối với mỗi mẫu (có nghĩa là số lượng mẫu càng nhiều, thì càng có nhiều điểm trong số điểm cuối cùng ủng hộ các lớp đa số giống như độ chính xác). Nguồn: 1. cse.iitk.ac.in/users/purushot/papers/macrof1.pdf 2. clips.uantwerpen.be/~vincent/pdf/microaverage.pdf
shahensha

3
Là "trung bình vĩ mô có trọng số" luôn luôn bằng với trung bình vi mô? Trong Scikit-Learn, định nghĩa của "có trọng số" hơi khác nhau: "Tính số liệu cho mỗi nhãn và tìm mức trung bình của chúng, theo trọng số của hỗ trợ (số lượng phiên bản thực cho mỗi nhãn)." Từ các tài liệu cho Điểm F1.
willk

20

Bài đăng gốc - http://rushdishams.blogspot.in/2011/08/micro-and-macro-alusive-of-precision.html


Trong phương pháp trung bình vi mô, bạn tổng hợp các giá trị dương thực sự riêng lẻ, dương tính giả và phủ định sai của hệ thống cho các bộ khác nhau và áp dụng chúng để lấy số liệu thống kê.

Lừa, nhưng tôi thấy điều này rất thú vị. Có hai phương pháp mà bạn có thể có được thống kê trung bình về truy xuất và phân loại thông tin.

1. Phương pháp trung bình vi mô

Trong phương pháp trung bình vi mô, bạn tổng hợp các giá trị dương thực sự riêng lẻ, dương tính giả và phủ định sai của hệ thống cho các bộ khác nhau và áp dụng chúng để lấy số liệu thống kê. Ví dụ: đối với một tập hợp dữ liệu, hệ thống

True positive (TP1)  = 12
False positive (FP1) = 9
False negative (FN1) = 3

Khi đó độ chính xác (P1) và gọi lại (R1) sẽ là và57.14%=TP1TP1+FP180%=TP1TP1+FN1

và đối với một tập hợp dữ liệu khác, hệ thống

True positive (TP2)  = 50
False positive (FP2) = 23
False negative (FN2) = 9

Khi đó độ chính xác (P2) và gọi lại (R2) sẽ là 68,49 và 84,75

Bây giờ, độ chính xác trung bình và thu hồi hệ thống bằng phương pháp Micro-Average là

Micro-average of precision=TP1+TP2TP1+TP2+FP1+FP2=12+5012+50+9+23=65.96

Micro-average of recall=TP1+TP2TP1+TP2+FN1+FN2=12+5012+50+3+9=83.78

Điểm F trung bình vi mô sẽ chỉ đơn giản là trung bình hài hòa của hai hình này.

2. Phương pháp trung bình vĩ mô

Phương pháp là thẳng về phía trước. Chỉ cần lấy mức trung bình của độ chính xác và thu hồi hệ thống trên các bộ khác nhau. Ví dụ, độ chính xác trung bình vĩ mô và thu hồi hệ thống cho ví dụ đã cho là

Macro-average precision=P1+P22=57.14+68.492=62.82 Macro-average recall=R1+R22=80+84.752=82.25

Điểm F trung bình vĩ mô sẽ chỉ đơn giản là trung bình hài hòa của hai hình này.

Tính phù hợp Phương pháp trung bình vĩ mô có thể được sử dụng khi bạn muốn biết cách hệ thống thực hiện tổng thể trên toàn bộ các bộ dữ liệu. Bạn không nên đưa ra bất kỳ quyết định cụ thể nào với mức trung bình này.

Mặt khác, trung bình vi mô có thể là một thước đo hữu ích khi tập dữ liệu của bạn thay đổi kích thước.


21
bạn nên cung cấp tín dụng cho bài viết blog này ?
xiaohan2012

3
Yeah @ xiaohan2012, anh ấy chỉ cần sao chép câu trả lời.
Manuel G

Đây là câu trả lời đầu tiên của tôi về Stack overflow, tôi không chắc chắn làm thế nào để làm điều này. Bạn có thể đề nghị một chỉnh sửa. Tôi sẽ chấp nhận nó. Cảm ơn
Rahul Reddy Vemireddy

Có thể đáng chú ý rằng điểm F1 ở đây không nhất thiết giống với điểm F1 trung bình vĩ mô thường được sử dụng (như được thực hiện trong scikit hoặc được mô tả trong bài viết này ). Thông thường, điểm F1 được tính riêng cho từng lớp / bộ riêng biệt và sau đó trung bình được tính từ các điểm F1 khác nhau (ở đây, nó được thực hiện theo cách ngược lại: đầu tiên tính toán độ chính xác / thu hồi trung bình vĩ mô và sau đó là điểm F1 ).
Milania

11

Trong một thiết lập đa lớp, độ chính xác trung bình và thu hồi luôn luôn giống nhau.

P=cTPccTPc+cFPcR=cTPccTPc+cFNc
trong đó c là nhãn lớp.

Vì trong cài đặt nhiều lớp, bạn đếm tất cả các trường hợp sai, hóa ra

cFPc=cFNc

Do đó P = R. Nói cách khác, mọi Dự đoán sai sẽ là một dương tính giả cho một lớp và mỗi một phủ định đơn sẽ là một phủ định sai cho một lớp. Nếu bạn coi trường hợp phân loại nhị phân là phân loại hai lớp và tính toán độ chính xác trung bình vi mô và thu hồi chúng sẽ giống nhau.

Câu trả lời được đưa ra bởi Rahul là trong trường hợp lấy trung bình độ chính xác nhị phân và thu hồi từ nhiều tập dữ liệu. Trong trường hợp đó, độ chính xác trung bình và thu hồi trung bình là khác nhau.


2

Đó là cách nó phải như vậy. Tôi đã có kết quả tương tự cho nghiên cứu của tôi. Nó có vẻ kỳ lạ lúc đầu. Nhưng độ chính xác và thu hồi phải giống nhau trong khi trung bình vi kết quả của phân loại nhãn đơn lớp nhiều lớp. Điều này là do nếu bạn xem xét phân loại sai c1 = c2 (trong đó c1 và c2 là 2 lớp khác nhau), thì phân loại sai là dương tính giả (fp) đối với c2 và âm tính giả (fn) đối với c1. Nếu bạn tính tổng fn và fp cho tất cả các lớp, bạn sẽ nhận được cùng một số vì bạn đang đếm từng phân loại sai là fp đối với một lớp và fn đối với lớp khác.


0

Tôi nghĩ lý do tại sao trung bình vĩ mô thấp hơn trung bình vi mô được giải thích rõ bằng câu trả lời của pythiest (lớp thống trị có dự đoán tốt hơn và do đó mức tăng trung bình vi mô).

Nhưng thực tế là trung bình vi mô tương đương với điểm Chính xác, Thu hồi và F1 là do vi trung bình cho các số liệu này dẫn đến Độ chính xác tổng thể (vì micro avg coi tất cả các lớp là dương). Lưu ý rằng nếu Độ chính xác và Thu hồi bằng nhau thì điểm F1 chỉ bằng độ chính xác / thu hồi.

Đối với câu hỏi nếu "trung bình vĩ mô có trọng số" luôn luôn bằng "trung bình vi mô"? Tôi đã làm một số thí nghiệm với không. của các lớp và sự mất cân bằng lớp khác nhau và hóa ra điều này là không cần thiết đúng.

Những tuyên bố này được đưa ra với giả định rằng chúng tôi đang xem xét tất cả các lớp của cùng một bộ dữ liệu (trái ngược với câu trả lời của Rahul Reddy Vemireddy)


0

lợi thế của việc sử dụng Điểm số F1 F1 là nó có trọng số tương đương với tất cả các điểm dữ liệu, ví dụ: hãy nghĩ rằng vi mô F1 lấy Tổng của tất cả các Thu hồi và Giả định của các nhãn khác nhau một cách độc lập, vì vậy khi chúng ta mất cân bằng lớp như T1 = 90%, T2 = 80%, T3 = 5 thì F1 Micro cho trọng số tương đương với tất cả các lớp và không bị ảnh hưởng bởi các sai lệch trong phân phối của lớp Nhật ký mất Nhật ký, nó phạt các sai lệch nhỏ trong lớp

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.