@Florent_M我很想了解更多关于您为什么要这样做的信息。 您能更详细地描述您正在解决的问题吗?
如果我理解您所请求的功能,则可以使用一点 JSL 将引导森林预测模型拆分为单独的列。
这是一个例子:
names default to here(1);
dt=open("$sample_data/bands data.jmp");
bf=dt << Bootstrap Forest(
Y( :Banding? ),
X( Column Group( "Predictors" ) ),
Missing Value Order(
Low(
:proof cut, :caliper, :humidity, :roughness, :solvent pct, :ESA Amperage,
:wax, :hardener, :current density, :anode space ratio, :chrome content
),
High(
:viscosity, :ink temperature, :blade pressure, :varnish pct,
:press speed, :ink pct, :ESA Voltage
)
),
Method( "Bootstrap Forest" ),
Portion Bootstrap( 1 ),
Number Terms( 25 ),
Number Trees( 100 ),
Go
);
bf << Save Prediction Formula;
bf << Close Window;
c=column(dt, "Prob(Banding?==band)");
/*
because a bootstrap forest model has the structure
( tree1 + tree2 + ... + treeN)/N
--get the prediction formula expression
--get the argument inside the main parenthesis (the sum of the trees)
--convert that experession to character and use the Words() function to get each tree formula
as a character string into a list
--then iterate through the list and create a new formula column for each tree,
*/
formula_expr=c << get formula;
arg(formula_expr,1);
trees_list=words(char(arg(formula_expr,1)), "+");
for each({tree, ii}, trees_list,
ctree = New Column("TREE"||char(ii), numeric, continuous);
tree=trees_list[ii];
Eval(parse(substitute("ctree << Set Formula(fff)", "fff", tree)))
);

谢谢@萨姆加德纳!
您是对的,在这种情况下使用 JSL 就可以完成这项工作,我衷心感谢您的脚本。 在保存列公式菜单中添加此选项(以及其他指标,如中位数、分位数等......)对我来说会很有帮助。
我将使用它来查看置信区间,并可能使用采集函数 EI 或 PI 来使用分类变量进行迭代代理建模(请参阅https://community.jmp.com/t5/JMP-Add-Ins/Bayesian-optimization-add-in/ta-p/496785 )。
此致,
弗洛朗
是什么激发了这个愿望清单请求?
我想在不使用 bagging 的情况下快速、轻松地计算预测模型的预测不确定性。 事实上,使用分析器计算 bagging 的速度相当慢。
您希望看到什么改进?
当我使用 Bootstrap Forest Platform 时,我想保存所有树木公式。 或者至少是分布的标准差。
为什么这个想法很重要?
这对于我在进行代理模型优化(贝叶斯优化)时能够计算采集函数来说非常重要。 我尝试用隔板套袋的方式,但结果并不理想。 高斯过程平台不处理分类变量。
谢谢你的主意。我们将进一步调查此事。您可以提供有关为什么以及如何使用各个树公式及其预测和预测摘要的任何其他详细信息,这将有助于我们对此进行评估。