2017-12-01 2 views
0

パーティセットパッケージを使用してデータセット上にモデルベースパーティショニング(MOB)ツリーを作成しました。私たちのデータセット内のどの観測値がそのルールを通過して各ノードに入るかを知る方法があるかどうかは疑問でした。 (私はツリールール上の各ノードベースのための別々のデータフレームを持っている)。MOBツリーの各ノードでどのように観測値を見つけるか? (パーティキットパッケージ)

答えて

0

すべてのpartykitのツリーに対してpredict(..., type = "node")を使用して予測された端末ノードIDを取得できます。そして、それを使用してデータセットをsplit()にすることができます。たとえば、次のように

library("partykit") 
tr <- lmtree(dist ~ speed, data = cars) 
plot(tr) 

lmtree

split(cars, predict(tr, type = "node")) 
## $`3` 
## speed dist 
## 1  4 2 
## 2  4 10 
## 3  7 4 
## 4  7 22 
## 5  8 16 
## 6  9 10 
## 7  10 18 
## 8  10 26 
## 9  10 34 
## 10 11 17 
## 11 11 28 
## 12 12 14 
## 13 12 20 
## 14 12 24 
## 15 12 28 
## 
## $`4` 
## speed dist 
## 16 13 26 
## 17 13 34 
## 18 13 34 
## 19 13 46 
## 20 14 26 
## 21 14 36 
## 22 14 60 
## 23 14 80 
## 24 15 20 
## 25 15 26 
## 26 15 54 
## 27 16 32 
## 28 16 40 
## 29 17 32 
## 30 17 40 
## 31 17 50 
## 
## $`5` 
## speed dist 
## 32 18 42 
## 33 18 56 
## 34 18 76 
## 35 18 84 
## 36 19 36 
## 37 19 46 
## 38 19 68 
## 39 20 32 
## 40 20 48 
## 41 20 52 
## 42 20 56 
## 43 20 64 
## 44 22 66 
## 45 23 54 
## 46 24 70 
## 47 24 92 
## 48 24 93 
## 49 24 120 
## 50 25 85 
関連する問題