Tôi gặp khó khăn trong việc hiểu cách cây được cấu trúc trong gói máy gbm gradient tăng cường của R. Cụ thể, xem đầu ra của pretty.gbm.tree
Các tính năng nào làm các chỉ số trong SplitVar
trỏ đến?Hiểu cấu trúc cây trong gói R gbm
Tôi được đào tạo một GBM trên một tập dữ liệu, đây là đỉnh ~ quý của một trong những cây của tôi - là kết quả của một cuộc gọi đến pretty.gbm.tree
:
SplitVar SplitCodePred LeftNode RightNode MissingNode ErrorReduction Weight Prediction
0 9 6.250000e+01 1 2 21 0.6634681 5981 0.005000061
1 -1 1.895699e-12 -1 -1 -1 0.0000000 3013 0.018956988
2 31 4.462500e+02 3 4 20 1.0083722 2968 -0.009168477
3 -1 1.388483e-22 -1 -1 -1 0.0000000 1430 0.013884830
4 38 5.500000e+00 5 18 19 1.5748155 1538 -0.030602956
5 24 7.530000e+03 6 13 17 2.8329899 361 -0.078738904
6 41 2.750000e+01 7 11 12 2.2499063 334 -0.064752766
7 28 -3.155000e+02 8 9 10 1.5516610 57 -0.243675567
8 -1 -3.379312e-11 -1 -1 -1 0.0000000 45 -0.337931219
9 -1 1.922333e-10 -1 -1 -1 0.0000000 12 0.109783128
```
Có vẻ với tôi ở đây là các chỉ số là 0 dựa trên, xem xét cách LeftNode, RightNode
và MissingNode
trỏ đến các hàng khác nhau. Khi thử nghiệm điều này bằng cách sử dụng các mẫu dữ liệu và theo dõi nó xuống cây để dự đoán của họ, tôi nhận được câu trả lời đúng khi tôi xem xét SplitVar
để sử dụng 1 dựa trên chỉ mục.
Tuy nhiên, 1 trong số nhiều cây tôi xây dựng có số trong cột SplitVar
! Đây là cây này:
SplitVar SplitCodePred LeftNode RightNode MissingNode ErrorReduction Weight Prediction
0 4 1.462500e+02 1 2 21 0.41887 5981 0.0021651262
1 -1 4.117688e-22 -1 -1 -1 0.00000 512 0.0411768781
2 4 1.472500e+02 3 4 20 1.05222 5469 -0.0014870985
3 -1 -2.062798e-11 -1 -1 -1 0.00000 23 -0.2062797579
4 0 4.750000e+00 5 6 19 0.65424 5446 -0.0006222011
5 -1 3.564879e-23 -1 -1 -1 0.00000 4897 0.0035648788
6 28 -3.195000e+02 7 11 18 1.39452 549 -0.0379703437
Cách chính xác để xem chỉ mục được sử dụng bởi cây gbm là gì?
Sẽ hữu ích nếu bạn đưa vào một ví dụ nhỏ có thể tái sản xuất (http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example) với đầu vào mẫu và mã bạn đang sử dụng để tạo các đối tượng của mình. Chỉ hiển thị kết quả không cho phép chúng tôi biết được những gì đang xảy ra. Vectơ trong R luôn dựa trên 1. Cột đầu tiên chưa được đặt tên thường là tên hàng chứ không phải chỉ mục. – MrFlick