Tôi mới đến R và tôi đang sử dụng gói e1071
phân loại SVM trong R.Làm thế nào để diễn giải dự đoán kết quả của SVM trong R?
tôi đã sử dụng đoạn mã sau:
data <- loadNumerical()
model <- svm(data[,-ncol(data)], data[,ncol(data)], gamma=10)
print(predict(model, data[c(1:20),-ncol(data)]))
Các loadNumerical
là cho dữ liệu tải, và các dữ liệu có dạng (cột đầu tiên 8 là đầu vào và cột cuối cùng là phân loại):
[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9]
1 39 1 -1 43 -1 1 0 0.9050497 0
2 23 -1 -1 30 -1 -1 0 1.6624974 1
3 50 -1 -1 49 1 1 2 1.5571429 0
4 46 -1 1 19 -1 -1 0 1.3523685 0
5 36 1 1 29 -1 1 1 1.3812029 1
6 27 -1 -1 19 1 1 0 1.9403649 0
7 36 -1 -1 25 -1 1 0 2.3360004 0
8 41 1 1 23 1 -1 1 2.4899738 0
9 21 -1 -1 18 1 -1 2 1.2989637 1
10 39 -1 1 21 -1 -1 1 1.6121595 0
số lượng hàng trong dữ liệu là 500.
Như được hiển thị trong đoạn mã trên, tôi đã kiểm tra 20 hàng đầu tiên để dự đoán. Và đầu ra là:
1 2 3 4 5 6 7
0.04906014 0.88230392 0.04910760 0.04910719 0.87302217 0.04898187 0.04909523
8 9 10 11 12 13 14
0.04909199 0.87224979 0.04913189 0.04893709 0.87812890 0.04909588 0.04910999
15 16 17 18 19 20
0.89837037 0.04903778 0.04914173 0.04897789 0.87572114 0.87001066
tôi có thể nói trực giác từ kết quả khi kết quả là gần 0, nó có nghĩa là 0 lớp, và nếu đó là gần 1 nó trong lớp 1.
Nhưng câu hỏi của tôi là như thế nào tôi có thể chính xác giải thích kết quả: là có một ngưỡng s tôi có thể sử dụng để các giá trị dưới đây s được phân loại là 0 và các giá trị trên s được phân loại là 1?
Nếu có tồn tại s, làm thế nào tôi có thể lấy được?
Trong tương lai, làm ví dụ của bạn tái sản xuất. Dòng có loadNumeric không hữu ích vì nó đề cập đến một hàm bí ẩn. Một chiến lược tốt là sử dụng dput trên một ví dụ nhỏ và dán nó vào câu hỏi của bạn. –
@IanFellows cảm ơn mẹo. –