Hiểu đường cong ROC


57

Tôi đang gặp khó khăn để hiểu đường cong ROC.

Có bất kỳ lợi thế / cải thiện nào trong khu vực dưới đường cong ROC không nếu tôi xây dựng các mô hình khác nhau từ mỗi tập hợp con duy nhất của tập huấn luyện và sử dụng nó để tạo xác suất? Ví dụ: nếu có các giá trị và tôi xây dựng mô hình bằng cách sử dụng từ các giá trị thứ 1 đến thứ 4 của và 8-9 của và xây dựng mô hình bằng cách sử dụng dữ liệu đào tạo vẫn còn. Cuối cùng, tạo xác suất. Bất kỳ suy nghĩ / ý kiến ​​sẽ được nhiều đánh giá cao.y{a,a,a,a,b,b,b,b}AayyB

Đây là mã r để giải thích rõ hơn cho câu hỏi của tôi:

Y    = factor(0,0,0,0,1,1,1,1)
X    = matirx(rnorm(16,8,2))
ind  = c(1,4,8,9)
ind2 = -ind

mod_A    = rpart(Y[ind]~X[ind,])
mod_B    = rpart(Y[-ind]~X[-ind,])
mod_full = rpart(Y~X)

pred = numeric(8)
pred_combine[ind]  = predict(mod_A,type='prob')
pred_combine[-ind] = predict(mod_B,type='prob')
pred_full          = predict(mod_full, type='prob')

Vì vậy, câu hỏi của tôi là, diện tích dưới đường cong ROC của pred_combinevs pred_full.


3
Một ví dụ tốt hơn sẽ làm rất nhiều để cải thiện câu hỏi.
mpiktas

Hiểu biết của tôi là bạn muốn tăng AUC bằng cách chọn một số mẫu cụ thể? Nếu đó là mục đích của bạn, tôi tin tưởng mạnh mẽ rằng phương pháp lựa chọn mẫu thiên vị này là hoàn toàn sai, ít nhất là nếu mục đích của bạn là tìm ra một biện pháp tốt cho hiệu suất phân loại.
rapaio

Câu trả lời:


174

Tôi không chắc mình đã nhận được câu hỏi, nhưng vì tiêu đề yêu cầu giải thích các đường cong ROC, tôi sẽ thử.

Các đường cong ROC được sử dụng để xem trình phân loại của bạn có thể phân tách các ví dụ tích cực và tiêu cực tốt như thế nào và để xác định ngưỡng tốt nhất để phân tách chúng.

Để có thể sử dụng đường cong ROC, bộ phân loại của bạn phải được xếp hạng - nghĩa là, nó có thể xếp hạng các ví dụ sao cho những thứ có thứ hạng cao hơn có khả năng tích cực hơn. Ví dụ, Logistic Regression đưa ra xác suất, đây là điểm bạn có thể sử dụng để xếp hạng.

Vẽ đường cong ROC

Đưa ra một tập dữ liệu và phân loại xếp hạng:

  • sắp xếp các ví dụ kiểm tra theo điểm từ cao nhất đến thấp nhất
  • bắt đầu bằng(0,0)
  • cho mỗi ví dụ theo thứ tự được sắp xếp x
    • nếu dương, di chuyển lênx1/pos
    • nếu âm, di chuyển sang phảix1/neg

trong đó và là các phân số của các ví dụ tích cực và tiêu cực.posneg

Hình ảnh hoạt hình gif đẹp này sẽ minh họa quá trình này rõ ràng hơn

xây dựng đường cong

Trên biểu đồ này, -axis là tỷ lệ dương thực sự và -axis là tỷ lệ dương tính giả. Lưu ý đường chéo - đây là đường cơ sở, có thể thu được bằng một bộ phân loại ngẫu nhiên. Đường cong ROC của chúng tôi càng ở trên đường thì càng tốt.yx

Khu vực dưới ROC

khu vực dưới roc

Vùng bên dưới Đường cong ROC (bóng mờ) tự nhiên cho thấy đường cong từ đường cơ sở bao xa. Đối với đường cơ sở là 0,5 và đối với phân loại hoàn hảo, nó là 1.

Bạn có thể đọc thêm về AUC ROC trong câu hỏi này: AUC đại diện cho cái gì và nó là gì?

Chọn ngưỡng tốt nhất

Tôi sẽ phác thảo ngắn gọn quá trình chọn ngưỡng tốt nhất và có thể tìm thấy nhiều chi tiết hơn trong tài liệu tham khảo.

Để chọn ngưỡng tốt nhất, bạn xem từng điểm của đường cong ROC của mình dưới dạng phân loại riêng. Trình phân loại nhỏ này sử dụng điểm số mà điểm nhận được làm ranh giới giữa + và - (nghĩa là nó phân loại là + tất cả các điểm trên điểm hiện tại)

Tùy thuộc vào phần pos / neg trong tập dữ liệu của chúng tôi - song song với đường cơ sở trong trường hợp 50% / 50% - bạn xây dựng các dòng chính xác ISO và lấy độ chính xác cao nhất.

Đây là một hình ảnh minh họa điều đó và để biết thêm chi tiết tôi một lần nữa mời bạn tham khảo

chọn ngưỡng tốt nhất

Tài liệu tham khảo


Cảm ơn các bình luận tuyệt vời! Tôi xin lỗi vì tôi không thể đánh giá cao câu trả lời của bạn, có vẻ như tôi cần phải có hơn 15 danh tiếng :(
Tay Shin

Chỉ cần tò mò, kích thước bước của bạn sẽ phải phụ thuộc vào số lượng nhãn dương / âm do bộ phân loại của bạn sản xuất có đúng không? Tức là trong gif, kích thước bước lên là .1, nếu bạn có thêm nhãn dương (thay cho nhãn âm), thì "đường cong" sẽ kết thúc ở 1.1 trên trục tung (hoặc có thể tôi đang thiếu thứ gì đó ?). Vì vậy, trong trường hợp đó kích thước bước của bạn cần phải nhỏ hơn?
kyphos

Không, kích thước bước phụ thuộc vào số lượng ví dụ dương / âm trong tập dữ liệu, không phụ thuộc vào độ chính xác của phân loại.
Alexey Grigorev

2
@gung hiểu. Alexey: thay vì các ví dụ tích cực và tiêu cực, tôi nghĩ nó nên là: dương tính thật và dương tính giả. Bạn có thể thấy phiên bản trả lời của tôi, được hoàn nguyên bởi gung. cảm ơn
Người đi bộ

3
@AlexeyGrigorev, thích câu trả lời bạn đưa ra và bỏ phiếu. Tôi không chắc chắn nếu có hai định nghĩa ROC. Tôi đang đề cập đến định nghĩa ROC ở đây ( en.wikipedia.org/wiki/Receiver_operating_characteristic ), trục x phải là tỷ lệ dương tính giả, đó là (# dự đoán là dương, nhưng nên âm) âm), tôi nghĩ trong tài liệu tham khảo, tôi nghĩ trục x không vẽ tỷ lệ dương sai, không xem xét (# của tổng âm)?
Lin Ma
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.