@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 時,我想保存所有樹木公式。 或至少是分佈的標準差。
為什麼這個想法很重要?
這對於我在進行代理模型優化(貝葉斯優化)時能夠計算採集函數來說非常重要。 我嘗試用隔板套袋的方式,但結果並不理想。 高斯過程平台不處理分類變數。
謝謝你的主意。我們將對此進行進一步調查。您可以提供有關為什麼以及如何使用各個樹公式及其預測和預測摘要的任何其他詳細信息,這將有助於我們對此進行評估。