2011-07-08 27 views
11

Tôi có một khung dữ liệu. cột đầu tiên chứa điểm dự đoán của tôi (khoảng từ 0 đến 100, giá trị nhỏ hơn được mong đợi ở lớp A, giá trị lớn hơn được mong đợi ở lớp B) cho mô hình của tôi, cột thứ 2 chứa phân loại thực sự của các mục nhập (hoặc " lớp A "hoặc" lớp B ").R: làm thế nào để tạo ra một ma trận nhầm lẫn cho một mô hình dự báo?

Làm cách nào để ma trận nhầm lẫn với R cho các giá trị cắt khác nhau, vì tôi không thể quyết định nơi tôi nên xác định giá trị < 20 hoặc < 50 làm lớp A chưa?

Làm cách nào để so sánh hiệu quả với R?

Trả lời

18

Có một số cách để làm điều này, một ví dụ tái sản xuất với dữ liệu của bạn có thể đã được mong muốn:

set.seed(12345) 
test <- data.frame(pred=c(runif(50,0,75),runif(50,25,100)), group=c(rep("A",50), rep("B",50))) 
table(test$pred<50,test$group) 

cho

  A B 
    FALSE 18 34 
    TRUE 32 16 

Vì vậy, đây nói 32 A là dưới 50 tuổi và 34 B đã hơn 50, trong khi 18 A là hơn 50 (sai phân loại) và 16 B là dưới 50 (sai phân loại)

set.seed(12345) 
test <- data.frame(pred=c(runif(50,0,60),runif(50,40,100)), group=c(rep("A",50), rep("B",50))) 
table(test$pred<50,test$group) 

cung cấp cho

  A B 
    FALSE 8 40 
    TRUE 42 10 

Trong ví dụ này, nguyên nhân của việc chọn mẫu, phân loại của bạn tốt hơn nhiều.

Các '50' trong này sau đó có thể thay đổi bất cứ điều gì bạn muốn, 20, 30 vv

table(test$pred<50,test$group) 
+1

này không hoạt động nếu bạn không có những dự đoán thấp hơn 50, kể từ khi bảng chỉ sản xuất một hàng TRUE và không phải là ma trận 4 * 4. – Rhubarb

+0

Tôi đã chỉnh sửa câu trả lời để khái quát. * (Tôi có nghĩa là ma trận 2 * 2 trong chú thích ở trên). – Rhubarb

Các vấn đề liên quan