邻近矩阵 - 随机森林,R

时间:2014-05-20 14:00:53

标签: r statistics random-forest proximity

我在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(森林中的树数)时,得到的数字不是整数,因此&#34;频率&#34;。有人可以帮我理解,为什么我会在邻近矩阵中得到这样的实数?

3 个答案:

答案 0 :(得分:10)

因为与默认预测一样,默认接近度仅使用树来计算,其中用于构建该树的样本中没有观察到任何观察(它们是&#34;袋外&#34;)。

对于每对案例,这种情况发生的次数会略有不同,并且肯定不会像1000那样是一个很好的整数。

您需要注意proximity之后列出的下一个参数oob.prox,表示是仅使用行包对(默认值)还是使用每棵树。

答案 1 :(得分:6)

只是为了补充上面的答案,因为这对我来说看起来很奇怪,如果它会对任何人有帮助,那根据Breiman(我引用):

'内在接近度量。

由于单个树未被修改,终端节点将包含 只有少数例子。运行训练集中的所有案例 在树下。如果情况i和案例j都落在同一个终端 节点。增加i和j之间的接近度。在......的最后 在运行中,邻近度除以两次树的数量 案件与案件之间的行程和接近程度等于一。'

在Breiman的论文'Using Random Forests'中提到了上述内容,该论文是randomForest函数here的参考。

答案 2 :(得分:5)

邻近度是两个数据点在不同树的同一叶节点中结束的频率的比例。