2015-10-12 33 views
8

Làm thế nào để tính toán chính xác , chính xácthu hồi cho mỗi lớp từ một mô hình Naive Bayes? Tôi đang sử dụng tập dữ liệu được nhúng: iris và gói cây và gói e1071 cho Naive Bayes. Ma trận nhầm lẫn như sau:Độ chính xác, độ chính xác, và thu hồi đối với mô hình đa lớp

prediction setosa versicolor virginica 
setosa   29   0   0 
versicolor  0   20   2 
virginica  0   3  21 

PS: lưu ý rằng tôi đang sử dụng 75 mục như tập huấn luyện và khác để thử nghiệm:

iris.train <- c(sample(1:150, 75)) # have selected 75 randomly 

Trả lời

13

Trong suốt câu trả lời này, mat là ma trận nhầm lẫn mà bạn miêu tả.

Bạn có thể tính toán và lưu trữ chính xác với:

(accuracy <- sum(diag(mat))/sum(mat)) 
# [1] 0.9333333 

chính xác dùng cho mỗi lớp (giả định các dự đoán này trên các hàng và kết quả đúng là trên các cột) có thể được tính bằng:

(precision <- diag(mat)/rowSums(mat)) 
#  setosa versicolor virginica 
# 1.0000000 0.9090909 0.8750000 

Nếu bạn muốn lấy chính xác cho một lớp học đặc biệt, bạn có thể làm:

(precision.versicolor <- precision["versicolor"]) 
# versicolor 
# 0.9090909 

Nhớ lại cho mỗi lớp học (một lần nữa giả dự đoán là trên các hàng và kết quả đúng là trên các cột) có thể được tính toán với:

recall <- (diag(mat)/colSums(mat)) 
#  setosa versicolor virginica 
# 1.0000000 0.8695652 0.9130435 

Nếu bạn muốn thu hồi cho một lớp học đặc biệt, bạn có thể làm một cái gì đó như:

(recall.virginica <- recall["virginica"]) 
# virginica 
# 0.9130435 

Nếu thay vào đó bạn có kết quả đúng như hàng và kết quả dự đoán như cột, thì bạn sẽ lật các định nghĩa chính xác và gợi lại.

dữ liệu:

(mat = as.matrix(read.table(text=" setosa versicolor virginica 
setosa   29   0   0 
versicolor  0   20   2 
virginica  0   3  21", header=T))) 
#   setosa versicolor virginica 
# setosa   29   0   0 
# versicolor  0   20   2 
# virginica  0   3  21 
+1

Có thể đưa ra một số điểm F tổng thể cho dữ liệu đó bằng cách áp dụng mức trung bình? –

+1

@mlee_jordan Có bạn có thể. Một tài nguyên để điều tra thêm là tài liệu hướng dẫn sử dụng để học hỏi: http://scikit-learn.org/stable/modules/classes.html#module-sklearn.metrics. Tuy nhiên, có thể có những nguồn tài nguyên tổng quát hơn, tốt hơn. Trong thực tế, nếu bạn tính toán điểm F trên một trường hợp nhiều lớp, nó sẽ tự động tính điểm cho mỗi điểm và trung bình. Trong các trường hợp khác, như thu hồi, bạn có tùy chọn tính toán trung bình vi mô (tính tất cả TP, FN, FP và tính điểm) hoặc trung bình vĩ mô (tính điểm trên mỗi lớp và trung bình) khi tính điểm. – Cerno

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