接近度矩阵 - 随机森林,R

10

我在R中使用randomForest包,该包允许计算相似度矩阵(P)。在该包的描述中,将参数描述为:“如果在调用randomForest时proximity=TRUE,则计算输入之间的相似度矩阵(基于数据点对出现在同一终端节点的频率)。

我按以下方式获取随机森林的相似度矩阵:

P <- randomForest(x, y, ntree = 1000, proximity=TRUE)$proximity
当我调查P矩阵时,我看到像P(i,j)=0.971014493这样的值,其中i和j是我的训练数据集(x)中的两个数据实例。这样的值是没有意义的,因为当它乘以1000(森林中的树的数量)时,得到的数字不是整数,因此不是“频率”。请问有人可以帮我理解,为什么在接近度矩阵中会得到这样的实数?
3个回答

13

因为与默认预测一样,仅使用在构建该树的样本中未包含任何观察值的树来计算默认相似度(它们是“袋外”的)。

这种情况发生的次数会因每对案例而异,肯定不会像1000这样一个整数般圆润。

你会注意到,在proximity之后列出的下一个参数就是oob.prox,表示是否仅使用袋外对(默认)或使用每棵树。


6

补充以上答案,鉴于这对我来说看起来很奇怪,如果有帮助的话,根据Breiman(我引用)的说法:

'内在的相似度度量。

由于单个树未经修剪,终端节点将只包含少量实例。运行训练集中的所有案例并沿着树运行。如果案例i和案例j都落在同一个终端节点上,则将i和j之间的相似度增加一。在运行结束时,将相似度除以运行中树的数量的两倍,并将案例与自身之间的相似度设置为1。'

以上内容出现在Breiman的论文“使用随机森林”中,该论文是randomForest函数的参考资料


他说:“在训练集中运行所有用例通过决策树。”我认为这应该只是Out Of Bag案例。 - Keith
@Keith Breiman可能正在使用与R的randomForest不同的方法。 - CharlesG

4

接近度是不同树中两个数据点最终落在相同叶节点的比例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接