邻近矩阵 - 随机森林
Posted
技术标签:
【中文标题】邻近矩阵 - 随机森林【英文标题】:Proximity Matrix - Random Forest , R 【发布时间】:2014-07-08 20:11:52 【问题描述】:我在 R 中使用 randomForest 包,它允许计算邻近矩阵 (P)。在包的描述中,它将参数描述为:“如果调用 randomForest 时接近度 = TRUE,则输入之间的接近度度量矩阵(基于数据点对在相同终端节点中的频率) .”
我得到一个随机森林的邻近矩阵如下:
P <- randomForest(x, y, ntree = 1000, proximity=TRUE)$proximity
当我研究 P 矩阵时,我看到 P(i,j)=0.971014493 这样的值,其中 i 和 j 是我的训练数据集 (x) 中的两个数据实例。这样的值没有意义,因为当它乘以 1000(森林中的树木数量)时,得到的数字不是整数,因此是“频率”。有人可以帮我理解,为什么我会在邻近矩阵中得到这样的实数?
【问题讨论】:
【参考方案1】:因为与默认预测一样,默认邻近度仅使用用于构建该树的样本中未包含任何观察值的树计算(它们是“袋外”)。
这种情况发生的次数会因每对案例而略有不同,而且肯定不会是像 1000 这样的好整数。
您会注意到,proximity
之后列出的下一个参数称为 oob.prox
,指示是仅使用袋外对(默认)还是使用每棵树。
【讨论】:
【参考方案2】:只是为了补充上面的答案,因为这对我来说也很奇怪,如果它会对任何人有所帮助,根据 Breiman 的说法(我引用):
'一种内在的接近度度量。
由于单个树未被修剪,终端节点将包含 只有少数实例。运行训练集中的所有案例 下树。如果案例 i 和案例 j 都落在同一个终端 节点。将 i 和 j 之间的接近度增加一。在......的最后 运行时,邻近度除以 两倍 中的树数 案例与其自身之间的运行和接近度设置为 1。'
Breiman 的论文'Using Random Forests' 中提到了上述内容,这是对 randomForest 函数here 的参考。
【讨论】:
他说“在树下运行训练集中的所有案例。”我以为这应该只是 Out Of Bag 案例。 @Keith Breiman 可能正在使用 R 的 randomForest 中的另一种方法。【参考方案3】:接近度是两个数据点在不同树的同一叶节点中结束的频率。
【讨论】:
以上是关于邻近矩阵 - 随机森林的主要内容,如果未能解决你的问题,请参考以下文章