[英]Extracting Model from GBM in R
有没有人熟悉如何弄清楚 R 中的gbm
model 内部发生了什么?
假设我们想了解如何预测虹膜中的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 拆分并返回三个独立的回归。 我假设SplitVar==2
是Petal.Width
,因为您在str(iris)
中看到的顺序是有道理的。
但是缺少什么数据? iris
没有缺失数据。 然后我们如何查看创建的三个节点中的每一个节点中发生了什么?
假设我想在 C++ 中编写代码用于生产,除了知道您应该根据Petal.Width >.8
做一些不同的事情之外,我不知道如何编写代码。
谢谢,
乔什
请参阅软件包mlmeta中的函数gbm2sas
,该函数使用元编程将R对象转换为SAS格式。
SAS格式类似于C ++,因此对C ++既易于阅读又易于破解。
在与 QTD 价格图表相同的图表中生成路径
paths_df = pd.DataFrame(data=paths[:, :10],
index=pd.date_range(start="2022-08-19", periods = 11, freq="B"))
ax = AAPL["2022-07":].plot()
paths_df.plot(ax=ax,
legend=False,
title="AAPL",
ylabel="Price");`
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.