R randomForestSRC:如何提取(或计算)解释的方差?
R randomForestSRC: how to extract (or calculate) the variance explained?
假设我有一个来自 rfsrc(..)
(randomForestSRC 包)调用的对象“数据库”。
调用 database
给我(在我的特殊情况下)
Sample size: 13209
Number of trees: 5000
Forest terminal node size: 5
Average no. of terminal nodes: 1890.76
No. of variables tried at each split: 20
Total no. of variables: 58
Resampling used to grow trees: swor
Resample size used to grow trees: 8348
Analysis: RF-R
Family: regr
Splitting rule: mse *random*
Number of random split points: 10
% variance explained: 40.6
Error rate: 43.9
我正在寻找一个将精确的“解释的方差百分比”提取到变量中的命令。类似于(虚构的)varEx <- database$variance[1,2]
或 varEx <- rfsrc.explVar(database)
。
目前,capture.output()
是一个快速而肮脏的选择,但我想一定有一个正确的方法。
有什么想法吗?那太好了!
顺便说一句:对于来自 randomForest(..)
(randomForest 包)调用的“数据库”,同样有趣(虽然目前并不紧急)。
我在 randomForestSRC::print.rfsrc
!
中找到了公式
由于您将“regr”作为系列,解释的方差百分比公式为:
per.var <- round(100 * (1 - err.rate[nrow(err.rate),]/var(x$yvar, na.rm = TRUE)), 2)
希望对你有所帮助。
假设我有一个来自 rfsrc(..)
(randomForestSRC 包)调用的对象“数据库”。
调用 database
给我(在我的特殊情况下)
Sample size: 13209
Number of trees: 5000
Forest terminal node size: 5
Average no. of terminal nodes: 1890.76
No. of variables tried at each split: 20
Total no. of variables: 58
Resampling used to grow trees: swor
Resample size used to grow trees: 8348
Analysis: RF-R
Family: regr
Splitting rule: mse *random*
Number of random split points: 10
% variance explained: 40.6
Error rate: 43.9
我正在寻找一个将精确的“解释的方差百分比”提取到变量中的命令。类似于(虚构的)varEx <- database$variance[1,2]
或 varEx <- rfsrc.explVar(database)
。
目前,capture.output()
是一个快速而肮脏的选择,但我想一定有一个正确的方法。
有什么想法吗?那太好了!
顺便说一句:对于来自 randomForest(..)
(randomForest 包)调用的“数据库”,同样有趣(虽然目前并不紧急)。
我在 randomForestSRC::print.rfsrc
!
由于您将“regr”作为系列,解释的方差百分比公式为:
per.var <- round(100 * (1 - err.rate[nrow(err.rate),]/var(x$yvar, na.rm = TRUE)), 2)
希望对你有所帮助。