邻近矩阵 - 随机森林,R

ban*_*bar 7 statistics r proximity random-forest

我在R中使用randomForest包,它允许计算邻近矩阵(P).在封装的描述中描述了参数为:" 如果接近= TRUE时随机森林被调用时,接近测量输入(基于频率对数据点是在同一个终端节点)中的矩阵. "

我获得随机森林的邻近矩阵如下:

P <- randomForest(x, y, ntree = 1000, proximity=TRUE)$proximity
Run Code Online (Sandbox Code Playgroud)

当我研究P矩阵时,我看到像P(i,j)= 0.971014493这样的值,其中i和j是我的训练数据集(x)中的两个数据实例.这样的值没有意义,因为当它乘以1000(森林中的树数)时,得到的数字不是整数,因此是"频率".有人可以帮我理解,为什么我会在邻近矩阵中得到这样的实数?

jor*_*ran 10

因为与默认预测一样,默认接近度仅使用树,其中既没有观察结果包含在用于构建该树的样本中(它们是"袋外").

对于每对案例,这种情况发生的次数会略有不同,当然也不会像1000那样很好.

您将注意到,后面列出的下一个参数proximity被调用,oob.prox指示是否仅使用袋对(默认值)或使用每个树.


Lyz*_*deR 6

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

'一种内在的接近度量.

由于单个树未被删除,因此终端节点将仅包含少量实例.在树中的训练集中运行所有案例.如果情况i和情况j都落在同一终端节点中.增加i和j之间的接近度.在运行结束时,邻近度除以运行中树的数量的两倍,并且案例与其自身之间的接近度设置为等于1.

以上是在Breiman的论文中提到"使用随机森林",这对随机森林函数的引用在这里.


Waq*_*tho 5

接近度是两个数据点在同一叶子节点中针对不同树结束的频率。