Làm thế nào để có được tầm quan trọng của biến (thuộc tính) khi sử dụng SVM?
Làm thế nào để có được tầm quan trọng của biến (thuộc tính) khi sử dụng SVM?
Câu trả lời:
Nếu bạn sử dụng hình phạt l-1 trên vectơ trọng số, nó sẽ tự động chọn tính năng vì các trọng số tương ứng với các thuộc tính không liên quan sẽ tự động được đặt thành không. Xem bài viết này . Độ lớn (tuyệt đối) của mỗi trọng số khác không có thể đưa ra ý tưởng về tầm quan trọng của thuộc tính tương ứng.
Cũng xem bài báo này sử dụng các tiêu chí xuất phát từ các SVM để hướng dẫn lựa chọn thuộc tính.
Isabelle Guyon, André Elisseeff, "Giới thiệu về lựa chọn biến và tính năng", JMLR, 3 (Mar): 1157-1182, 2003. http://jmlr.csail.mit.edu/ con / v3 / guyon03a.html
rất đáng đọc, nó sẽ cung cấp một cái nhìn tổng quan tốt về các phương pháp và vấn đề. Một điều tôi muốn nói thêm là lựa chọn tính năng không nhất thiết phải cải thiện hiệu suất dự đoán và có thể dễ dàng làm cho nó tệ hơn (vì lý do này rất dễ phù hợp với tiêu chí lựa chọn tính năng). Một trong những lợi thế của các SVM (đặc biệt là tuyến tính) là chúng hoạt động tốt với số lượng lớn các tính năng (cung cấp cho bạn điều chỉnh tham số chính quy đúng cách), do đó thường không cần nếu bạn chỉ quan tâm đến dự đoán.
Nếu bạn sử dụng R, tầm quan trọng của biến có thể được tính bằng phương pháp Tầm quan trọng trong gói rminer. Đây là mã mẫu của tôi:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
Cụ thể, hãy tham khảo liên kết sau https://cran.r-project.org/web/packages/rminer/rminer.pdf