Tại sao AUC cao hơn cho một bộ phân loại kém chính xác hơn so với phân loại chính xác hơn?


29

Tôi có hai phân loại

  • A: mạng Bayes ngây thơ
  • B: cây (kết nối đơn) mạng Bayes

Về độ chính xác và các biện pháp khác, A thực hiện tương đối kém hơn B. Tuy nhiên, khi tôi sử dụng các gói R ROCR và AUC để thực hiện phân tích ROC, hóa ra AUC cho A cao hơn AUC cho B. Tại sao điều này là xảy ra?

Giá trị dương (tp), dương dương tính (fp), âm tính giả (fn), âm tính thật (tn), độ nhạy (sen), độ đặc hiệu (spec), giá trị tiên đoán dương (ppv), giá trị tiên đoán âm (npv) và độ chính xác (acc) cho A và B như sau.

+------+---------+---------+
|      |    A    |    B    |
+------+---------+---------+
| tp   | 3601    | 769     |
| fp   | 0       | 0       |
| fn   | 6569    | 5918    |
| tn   | 15655   | 19138   |
| sens | 0.35408 | 0.11500 |
| spec | 1.00000 | 1.00000 |
| ppv  | 1.00000 | 1.00000 |
| npv  | 0.70442 | 0.76381 |
| acc  | 0.74563 | 0.77084 |
+------+---------+---------+

Ngoại trừ cảm giác và quan hệ (spec và ppv) trên lề (không bao gồm tp, fn, fn và tn), B dường như hoạt động tốt hơn A.

Khi tôi tính AUC cho cảm giác (trục y) so với 1-spec (trục x)

aucroc <- auc(roc(data$prediction,data$labels));

đây là so sánh AUC.

+----------------+---------+---------+
|                |    A    |    B    |
+----------------+---------+---------+
| sens vs 1-spec | 0.77540 | 0.64590 |
| sens vs spec   | 0.70770 | 0.61000 |
+----------------+---------+---------+

Vì vậy, đây là những câu hỏi của tôi:

  • Tại sao AUC cho A tốt hơn B, khi B "dường như" vượt trội hơn A về độ chính xác?
  • Vì vậy, làm thế nào để tôi thực sự đánh giá / so sánh các màn trình diễn phân loại của A và B? Ý tôi là, tôi có sử dụng giá trị AUC không? Tôi có sử dụng giá trị acc không, và nếu vậy tại sao?
  • Hơn nữa, khi tôi áp dụng quy tắc chấm điểm thích hợp cho A và B, B vượt trội hơn A về mất log, mất phương trình bậc hai và mất hình cầu (p <0,001). Làm thế nào để những điều này cân nhắc trong việc đánh giá hiệu suất phân loại đối với AUC?
  • Biểu đồ ROC cho A trông rất trơn tru (nó là một cung cong), nhưng biểu đồ ROC cho B trông giống như một tập hợp các đường được kết nối. Tại sao lại thế này?

Theo yêu cầu, đây là các lô cho mô hình A.

mô hình Một mạng lưới ngây thơ

Dưới đây là các sơ đồ cho mô hình B.

mô hình B vịnh thường xuyên

Dưới đây là sơ đồ biểu đồ phân bố xác suất của A và B. (thời gian nghỉ được đặt thành 20).

biểu đồ biểu đồ

Dưới đây là sơ đồ phân tán xác suất của B vs A.

âm mưu phân tán


1
Các bảng của bạn không có ý nghĩa: làm thế nào bạn chọn điểm mà bạn tính các giá trị hiệu suất đó?
Calimo

3
Hãy nhớ AUC đo hiệu suất trên tất cả các ngưỡng có thể . Nó sẽ giúp (bạn cũng vậy) nếu bạn có thể hiển thị các đường cong (lý tưởng trên cùng một cốt truyện).
Calimo

@Calimo xin lỗi, tôi quên bao gồm thông tin đó, nhưng ngưỡng được sử dụng để tạo ma trận nhầm lẫn đó là 50%.
Jane Wayne

Ý bạn là 0,5? Các giá trị dự đoán của A và B trông khác nhau rõ ràng và nếu bạn chưa có gợi ý nào, bạn chắc chắn nên vẽ biểu đồ cạnh nhau ...
Calimo 20/03/2016

@Calimo bạn có thể vui lòng làm rõ, biểu đồ của những gì bên cạnh nhau?
Jane Wayne

Câu trả lời:


27

Các quy tắc chấm điểm không đúng như tỷ lệ được phân loại chính xác, độ nhạy và độ đặc hiệu không chỉ tùy ý (lựa chọn ngưỡng) mà còn không chính xác, nghĩa là chúng có đặc tính tối đa hóa chúng dẫn đến mô hình không có thật, dự đoán không chính xác và chọn sai tính năng . Nó là tốt mà họ không đồng ý với điểm thích hợp (loga; quy tắc trong khâu dứt điểm logarit; Brier điểm) quy tắc và các -Index (một quy tắc trong khâu dứt điểm bán hợp lý - Diện tích dưới đường cong ROC; sự phù hợp khả năng; Wilcoxon Thống kê; Somers' hệ số tương quan xếp hạng); điều này giúp chúng tôi tự tin hơn trong các quy tắc chấm điểm thích hợp.D x ycDxy


6
Tôi ước tôi có một tài liệu tham khảo tốt cho điều đó, nhưng một thời gian ngắn, bất kỳ biện pháp nào chỉ dựa trên các cấp bậc như (AUROC) không thể cung cấp đủ tín dụng cho các dự đoán cực đoan là "chính xác". Brier, và thậm chí nhiều hơn để quy tắc tính điểm logarit (khả năng đăng nhập) cung cấp tín dụng như vậy. Đây cũng là một lời giải thích tại sao việc so sánh hai -indexes không cạnh tranh với các phương pháp khác có sức mạnh khôn ngoan. ccc
Frank Harrell

1
@alto, 0,5 là cực kỳ tùy ý, trùng với hàm tiện ích / tổn thất / chi phí bất thường nhất trong đó có hai loại lỗi đều tệ như nhau. Đây là trường hợp hiếm khi. Suy nghĩ theo xác suất, đó là cách tôi xảy ra tin vào cách tự nhiên hoạt động, không có gì gọi là "sai lầm", mà là mức độ xấu của dự đoán rủi ro. Ví dụ: dự đoán xác suất 0,6 sau đó quan sát một sự kiện còn tệ hơn dự đoán xác suất 0,9 và sau đó quan sát một sự kiện. Nhưng không dự đoán là "sai". Bạn có thể sử dụng điểm chính xác xác suất không yêu cầu ngưỡng.
Frank Harrell

3
Một mô hình không bị ràng buộc như logistic không dẫn đến bất kỳ sự quá mức nào hơn bất kỳ cách tiếp cận nào khác. Việc chuyển đổi logistic đảm bảo rằng các ước tính xác suất được thực hiện tốt. Nhược điểm duy nhất của quy tắc chấm điểm logarit là nếu bạn dự đoán xác suất cực kỳ gần với 0 hoặc 1 và bạn "sai". Đúng là người ta cuối cùng đưa ra quyết định nhưng hoàn toàn không tuân theo việc nhà phân tích nên đưa ra quyết định bằng cách sử dụng ngưỡng. Quyết định nên được hoãn lại cho người ra quyết định. Cuốn sách Tín hiệu và tiếng ồn của Nate Silver mang lại lợi ích lớn cho tư duy xác suất.
Frank Harrell

1
@FrankHarrell, thật là bực bội khi bạn cứ hiểu sai ý kiến ​​của tôi. Tôi không bao giờ ủng hộ cách tiếp cận hộp đen. Tôi chỉ đơn giản nghĩ rằng tuyên bố của bạn "x là vô dụng, chỉ sử dụng y" là quá mạnh.
alto

4
@alto đó là nhận thức. Tôi nghĩ rằng nhận dạng mẫu thời gian thực không có thời gian cho các tiện ích. Đây không phải là thế giới tôi làm việc. Nhưng vẫn có những trường hợp trong thời gian thực mà bạn muốn có một hộp đen nói với bạn "không chắc chắn" hơn là buộc phải lựa chọn giữa "đó là một chiếc xe tăng đến với bạn" so với "đó là một xe chở khách".
Frank Harrell

16
  1. Tại sao AUC cho A tốt hơn B, khi B "dường như" vượt trội hơn A về độ chính xác?

    Độ chính xác được tính ở giá trị ngưỡng 0,5. Trong khi AUC được tính bằng cách thêm tất cả "độ chính xác" được tính cho tất cả các giá trị ngưỡng có thể. ROC có thể được xem là trung bình (giá trị mong đợi) của các độ chính xác đó khi được tính cho tất cả các giá trị ngưỡng.

  2. Vì vậy, làm thế nào để tôi thực sự đánh giá / so sánh các màn trình diễn phân loại của A và B? Ý tôi là, tôi có sử dụng giá trị AUC không? tôi có sử dụng giá trị acc không? và tại sao?

    Nó phụ thuộc. Các đường cong ROC cho bạn biết điều gì đó về việc mô hình của bạn phân tách hai lớp tốt như thế nào, bất kể giá trị ngưỡng ở đâu. Độ chính xác là một thước đo hoạt động tốt thường khi các lớp giữ cân bằng như nhau trên các bộ kiểm tra và thử nghiệm, và khi điểm số thực sự là xác suất. ROC cung cấp cho bạn nhiều gợi ý hơn về cách mô hình sẽ hoạt động nếu giả định này bị vi phạm (tuy nhiên chỉ là một ý tưởng).

  3. hơn nữa, khi tôi áp dụng quy tắc chấm điểm thích hợp cho A và B, B vượt trội hơn A về mất log, mất bậc hai và mất hình cầu (p <0,001). Làm thế nào để những điều này cân nhắc trong việc đánh giá hiệu suất phân loại đối với AUC?

    Tôi không biết. Bạn phải hiểu rõ hơn những gì bạn có dữ liệu về. Những gì mỗi mô hình có khả năng hiểu từ dữ liệu của bạn. Và quyết định sau đó là thỏa hiệp tốt nhất. Lý do tại sao điều đó xảy ra là không có số liệu phổ quát về hiệu suất phân loại.

  4. Biểu đồ ROC cho A trông rất trơn tru (nó là một cung cong), nhưng biểu đồ ROC cho B trông giống như một tập hợp các đường được kết nối. tại sao lại thế này

    Đó có lẽ là do mô hình bayes cho bạn sự chuyển tiếp suôn sẻ giữa hai lớp đó. Điều đó được dịch trong nhiều giá trị ngưỡng. Có nghĩa là nhiều điểm trên đường cong ROC. Mô hình thứ hai có thể tạo ra ít giá trị hơn do dự đoán có cùng giá trị trên các vùng lớn hơn của không gian đầu vào. Về cơ bản, cũng là đường cong ROC đầu tiên được tạo bởi các đường, sự khác biệt duy nhất là có rất nhiều đường nhỏ liền kề, mà bạn thấy nó là một đường cong.


1
Độ chính xác có thể được tính ở các giá trị ngưỡng khác 0,5.
Calimo

Tất nhiên bạn có quyền. Đó là lý do tại sao tôi sử dụng "tính chính xác" trong đề xuất tiếp theo. Tuy nhiên, khi người ta nói về độ chính xác, không có thông tin ngữ cảnh khác, dự đoán tốt nhất cho giá trị ngưỡng là 0,5.
rapaio

2
Thật dễ dàng để thấy làm thế nào tùy tiện như một quá trình như vậy. Rất ít người ước tính trong các số liệu thống kê yêu cầu lựa chọn binning hoặc tùy ý đã tồn tại mà không bị chỉ trích nặng nề. Và tôi sẽ không bao giờ gọi tỷ lệ được phân loại chính xác là "chính xác".
Frank Harrell

@unreasonablelearner bạn đúng với giả định của mình .. ma trận nhầm lẫn ở trên được tính ở ngưỡng 0,5. Có bất kỳ lợi thế cho một ngưỡng khác nhau?
Jane Wayne

1
@JaneWayne Công thức thực sự cho tỷ lệ được phân loại chính xác. Độ chính xác là thuật ngữ thường được sử dụng nhất cho việc này. Tuy nhiên, độ chính xác có ý nghĩa hơn rất nhiều, và theo ánh sáng của những gì Frank Mitchell nói, tôi nghĩ bây giờ độ chính xác không phải là thuật ngữ tốt nhất cho điều đó. Bây giờ tôi nghĩ rằng việc sử dụng nó có thể gây hại, ngay cả khi nó phổ biến. Đây là cách tôi đã sai.
rapaio

4

Tại sao AUC cho A tốt hơn B, khi B "dường như" vượt trội hơn A về độ chính xác?

Đầu tiên, mặc dù giới hạn (0,5) là như nhau, nhưng nó không thể so sánh được giữa A và B. Trên thực tế, nó trông khá khác so với biểu đồ của bạn! Nhìn vào B: tất cả các dự đoán của bạn là <0,5.

Thứ hai, tại sao B lại chính xác như vậy? Vì mất cân bằng giai cấp. Trong thử nghiệm B, bạn có 19138 ví dụ âm và 6687 dương (tại sao các số khác nhau trong A không rõ ràng với tôi: có thể thiếu các giá trị?). Điều này có nghĩa là chỉ cần nói rằng mọi thứ đều âm tính, tôi đã có thể đạt được độ chính xác khá tốt: chính xác là 19138 / (19138 + 6687) = 74%. Lưu ý rằng điều này hoàn toàn không có kiến ​​thức nào ngoài thực tế là có sự mất cân bằng giữa các lớp: ngay cả mô hình ngu ngốc nhất cũng có thể làm điều đó!

Và đây chính xác là những gì bài kiểm tra B thực hiện ở ngưỡng 0,5 ... bạn chỉ nhận được (gần như) những dự đoán tiêu cực.

A là nhiều hơn một túi hỗn hợp với. Mặc dù nó có độ chính xác thấp hơn một chút, lưu ý rằng độ nhạy của nó cao hơn nhiều ở lần cắt này ...

Cuối cùng, bạn không thể so sánh độ chính xác (hiệu suất ở một ngưỡng) với AUC (hiệu suất trung bình trên tất cả các ngưỡng có thể). Vì các số liệu này đo lường những thứ khác nhau, không có gì đáng ngạc nhiên khi chúng khác nhau.

Vì vậy, làm thế nào để tôi thực sự đánh giá / so sánh các màn trình diễn phân loại của A và B? ý tôi là, tôi có sử dụng giá trị AUC không? tôi có sử dụng giá trị acc không? và tại sao?

Hơn nữa, khi tôi áp dụng quy tắc chấm điểm thích hợp cho A và B, B vượt trội hơn A về mất log, mất phương trình bậc hai và mất hình cầu (p <0,001). Làm thế nào để những điều này cân nhắc trong việc đánh giá hiệu suất phân loại đối với AUC?

Bạn phải nghĩ: bạn thực sự muốn làm gì? Cái gì quan trọng? Cuối cùng, chỉ có bạn mới có thể trả lời câu hỏi này dựa trên kiến ​​thức của bạn về câu hỏi. Có thể AUC có ý nghĩa (hiếm khi thực sự làm khi bạn thực sự nghĩ về nó, ngoại trừ khi bạn không muốn tự mình đưa ra quyết định mà hãy để người khác làm như vậy - rất có thể nếu bạn đang tạo ra một công cụ cho người khác sử dụng), có thể độ chính xác (nếu bạn cần một câu trả lời nhị phân, không đi), nhưng có thể ở các ngưỡng khác nhau, có thể là một số biện pháp liên tục khác, có thể là một trong những biện pháp được đề xuất bởi Frank Harrell ... như đã nêu, không có câu hỏi phổ quát nào đây.

Biểu đồ ROC cho A trông rất trơn tru (nó là một cung cong), nhưng biểu đồ ROC cho B trông giống như một tập hợp các đường được kết nối. Tại sao lại thế này?

Quay lại với những dự đoán mà bạn đã thể hiện trên biểu đồ. A cung cấp cho bạn một dự đoán liên tục, hoặc gần như liên tục. Ngược lại, B trả về chủ yếu chỉ một vài giá trị khác nhau (như bạn có thể thấy bằng biểu đồ "gai").

Trong một đường cong ROC, mỗi điểm tương ứng với một ngưỡng. Trong A, bạn có rất nhiều ngưỡng (vì các dự đoán là liên tục), do đó đường cong trơn tru. Trong B, bạn chỉ có một vài ngưỡng, do đó, đường cong trông "nhảy" từ SN / SP sang một cái khác.

Bạn thấy nhảy dọc khi độ nhạy chỉ thay đổi (ngưỡng chỉ tạo ra sự khác biệt đối với trường hợp dương), nhảy ngang khi độ đặc hiệu chỉ thay đổi (ngưỡng chỉ tạo ra sự khác biệt đối với các ví dụ tiêu cực) và nhảy chéo khi thay đổi ngưỡng ảnh hưởng đến cả hai lớp.


Tuy nhiên, +1 không phải là trường hợp AUC chỉ dành cho "khi bạn không muốn tự mình đưa ra quyết định mà hãy để người khác làm như vậy". Xem: Cách tính diện tích theo đường cong (AUC) hoặc thống kê c bằng tay .
gung - Phục hồi Monica
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.