gbm
R のモデル内で何が起こっているかを理解する方法に精通している人はいますか?
Petal.Length
虹彩を予測する方法を見たいとしましょう。簡単にするために、次のように実行しました。
tg=gbm(Petal.Length~.,data=iris)
これは機能し、実行すると:
summary(tg)
次に、次のようになります。
Hit <Return> to see next plot:
var rel.inf
Petal.Width Petal.Width 67.39
Species Species 32.61
Sepal.Length Sepal.Length 0.00
Sepal.Width Sepal.Width 0.00
これは直感的に理解できます。実行すると、次のpretty.gbm.tree(tg)
ようになります。
SplitVar SplitCodePred LeftNode RightNode MissingNode ErrorReduction Weight Prediction
0 2 0.8000000000 1 2 3 184.6764 75 0.0001366667
1 -1 -0.0022989091 -1 -1 -1 0.0000 22 -0.0022989091
2 -1 0.0011476604 -1 -1 -1 0.0000 53 0.0011476604
3 -1 0.0001366667 -1 -1 -1 0.0000 75 0.0001366667
したがって、明らかに gbm は、変数 #2 で分割すると 3 つの個別の回帰が返されると考えています。表示される順序が理にかなっ てSplitVar==2
いるからだと思います。Petal.Width
str(iris)
しかし、どのデータが欠落していますか? iris
欠損データはありません。それでは、作成された 3 つのノードのそれぞれで何が起こっているのかを確認するにはどうすればよいでしょうか。
プロダクション用にこれを C++ でコーディングしたいとしましょうPetal.Width >.8
。
ありがとう、
ジョシュ