2015-01-13 18 views
8

Tôi đã sử dụng RandomForest cho một vấn đề hồi quy. Tôi đã sử dụng importance(rf,type=1) để nhận% IncMSE cho các biến và một trong số chúng có% IncMSE âm. Điều này có nghĩa là biến này có hại cho mô hình không? Tôi đã tìm kiếm trên Internet để nhận được một số câu trả lời nhưng tôi không tìm thấy câu trả lời rõ ràng. Tôi cũng tìm thấy một cái gì đó kỳ lạ trong bản tóm tắt của mô hình (đính kèm dưới đây), Có vẻ như rằng chỉ có một cây được sử dụng mặc dù tôi định nghĩa ntrees như 800.Giá trị âm% IncMSE trong gói RandomForest có nghĩa là gì?

mô hình:

rf<-randomForest(var1~va2+var3+..+var35,data=d7depo,ntree=800,keep.forest=FALSE, importance=TRUE) 

summary(rf) 
       Length Class Mode  
call    6 -none- call  
type    1 -none- character 
predicted  26917 -none- numeric 
mse    800 -none- numeric 
rsq    800 -none- numeric 
oob.times  26917 -none- numeric 
importance   70 -none- numeric 
importanceSD  35 -none- numeric 
localImportance  0 -none- NULL  
proximity   0 -none- NULL  
ntree    1 -none- numeric 
mtry    1 -none- numeric 
forest    0 -none- NULL  
coefs    0 -none- NULL  
y    26917 -none- numeric 
test    0 -none- NULL  
inbag    0 -none- NULL  
terms    3 terms call 

Trả lời

20

Câu hỏi 1 - tại sao sao ntree hiển thị 1?:

summary(rf) cho bạn biết độ dài của các đối tượng được bao gồm trong biến số rf. Điều đó có nghĩa rằng rf$ntree là chiều dài 1. Nếu bạn gõ trên bàn điều khiển của bạn rf$tree bạn sẽ thấy rằng nó cho thấy 800.

Câu hỏi 2 - không một% tiêu cực IncMSE hiển thị một "xấu" biến?

IncMSE:
Cách này được tính là bằng cách tính MSE của toàn bộ mô hình ban đầu. Hãy gọi số này MSEmod. Sau này cho mỗi một trong các biến (cột trong tập dữ liệu của bạn) các giá trị được ngẫu nhiên xáo trộn (permuted) để một biến "xấu" đang được tạo ra và một MSE mới đang được tính toán. I E. hãy tưởng tượng điều đó cho một cột bạn có hàng 1,2,3,4,5. Sau khi hoán vị này sẽ kết thúc là 4,3,1,2,5 ngẫu nhiên. Sau khi hoán vị (tất cả các cột khác vẫn giống nhau vì chúng ta muốn kiểm tra col1's quan trọng), MSE mới của mô hình đang được tính toán, hãy gọi nó là MSEcol1 (theo cách tương tự, bạn sẽ có MSEcol2, MSEcol3 nhưng hãy giữ nó đơn giản và chỉ đối phó với MSEcol1 ở đây). Chúng tôi hy vọng rằng kể từ khi MSE thứ hai được tạo ra bằng cách sử dụng một biến hoàn toàn ngẫu nhiên, MSEcol1 sẽ cao hơn MSEmod (MSE càng cao càng tệ). Do đó, khi chúng tôi lấy sự khác biệt của hai số MSEcol1 - MSEmod, chúng tôi thường mong đợi một số dương. Trong trường hợp của bạn một số âm cho thấy biến ngẫu nhiên hoạt động tốt hơn, điều này cho thấy rằng có lẽ biến số không đủ dự đoán tức là không quan trọng.

Hãy nhớ rằng mô tả này tôi đã cung cấp cho bạn là cấp cao, trên thực tế, hai giá trị MSE được chia tỷ lệ và phần trăm chênh lệch đang được tính toán. Nhưng câu chuyện cấp cao là vậy.

Ở dạng thuật toán:

  1. mô hình Tính MSE
  2. Đối với mỗi biến trong mô hình:
    • hoán vị biến
    • Tính mới mô hình MSE theo hoán vị biến
    • Lấy sự khác biệt giữa mẫu MSE và mẫu MSE mới
  3. Thu thập kết quả trong danh sách
  4. Đánh giá tầm quan trọng của biến theo giá trị của% IncMSE. Giá trị càng lớn càng tốt

Hy vọng điều này đã rõ ràng ngay bây giờ!

+0

Cảm ơn bạn rất nhiều LyzandeR cho câu trả lời chi tiết và rõ ràng của bạn, Chúc mừng, Ron – mql4beginner

+1

Chúc mừng đã giúp Ron :). Nếu bạn muốn đào sâu hơn, bạn có thể xem [tại đây] (http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm). Đây là từ chính Breiman (nhà phát minh ra những khu rừng ngẫu nhiên) và ông giải thích chính xác cách họ làm việc bằng tiếng Anh đơn giản mà không có (rất nhiều) công thức toán học. Đây chính là tham chiếu gói rf được sử dụng để thực hiện. – LyzandeR

+0

Cảm ơn, tôi sẽ kiểm tra nó ra .. – mql4beginner

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