1识别范围内的所有邻居

KMKNN或VP树算法的另一个应用是识别一定距离内的所有相邻点1这里的默认值是欧几里得,但是我们可以设置距离=“曼哈顿”BNPARAM如果需要,反对。当前点的。我们首先模拟一些数据:

Nobs <- 10000 ndim <- 20 data <- matrix(runif(Nobs *ndim), ncol=ndim)

我们应用findNeighbors ()函数数据

fout <- findNeighbors(data, threshold=1) head(fout$index)
([1]) # # # # # # # #[1] 1[[2]] # #[1] 2 # # # # # #[1]([3]) 5404 7108 6813 3 # # # # # #[[4]][1] 6288年4 # # # # # # [1][[5]]7387 5 9763 6529 # # # # # # [[6]]6 [1]
头(输出端距离美元)
# # # # ([1]) [1] 0 # # # # # # [1] ([2]) 0 # # # # # # [1] ([3]) 0.9374130 0.9366776 0.9770629 0.0000000 # # # # # # [1] [[4]] 0.8884899 - 0.0000000 # # # # # # [1] ([5]) 0.9986547 0.0000000 0.9571948 0.9813992 # # # # # # [1] ([6]) 0

每一项指数表中对应一个点数据的行索引数据都在里面阈值.例如,第3个点数据具有以下邻居:

输出端美元指数[[3]]
## [1] 5404 7108 6813

…与这些邻居的距离如下:

输出端距离美元[[3]]
## [1] 0.9374130 0.9366776 0.9770629 0.0000000

注意,对于这个函数,报告的邻居为按距离排序。输出的顺序完全是任意的,并且会根据随机种子而变化。然而,邻居的身份是完全确定的。

2查询另一个数据集的邻居

queryNeighbors ()还提供了用于识别查询点一定距离内的所有点的函数。给定一个查询数据集:

Nquery <- 1000 ndim <- 20 query <- matrix(runif(Nquery *ndim), ncol=ndim)

…我们应用queryNeighbors ()功能:

qout <- queryNeighbors(data, query, threshold=1) length(qout$index)
## [1] 1000

的每个条目qout美元指数对应于的一行查询并包含它的邻居数据.同样,输出的顺序是任意的,但邻居的身份是确定的。

3.进一步的选择

所描述的大部分选项findKNN ()在这里也适用。例如:

  • 子集为点的子集识别邻居。
  • get.distance避免在不必要的时候检索距离。
  • BPPARAM在多个工作人员之间并行计算。
  • raw.index从预先计算的索引中返回原始索引。

注意,预计算索引的参数为预先计算的

pre <- buildIndex(data, BNPARAM=KmknnParam()) fout。qout. pre <- findNeighbors(BNINDEX=pre, threshold=1)pre <- queryNeighbors(BNINDEX=pre, query=query, threshold=1)

用户可以参考每个函数的文档了解具体细节。

4会话信息

sessionInfo ()
## R版本4.0.3(2020-10-10)##平台:x86_64-pc-linux-gnu(64位)##运行在Ubuntu 18.04.5 LTS ## ##矩阵产品:默认## BLAS: /home/biocbuild/bbs-3.12-bioc/R/lib/libRblas。所以## LAPACK: /home/biocbuild/bbs-3.12-bioc/R/lib/libRlapack。所以## ## locale: ## [1] LC_CTYPE=en_US。UTF-8 LC_NUMERIC= c# # [3] LC_TIME=en_US。UTF-8 LC_COLLATE= c# # [5] LC_MONETARY=en_US。utf - 8 LC_MESSAGES = en_US。UTF-8 ## [7] LC_PAPER=en_US。UTF-8 LC_NAME= c# # [9] LC_ADDRESS=C lc_phone = c# # [11] LC_MEASUREMENT=en_US。UTF-8 LC_IDENTIFICATION=C ## ##附加的基础包:## [1]stats graphics grDevices utils datasets methods基础## ##其他附加包:## [1]BiocParallel_1.24.1 BiocNeighbors_1.8.2 knitr_1.30 ## [4] BiocStyle_2.18.1 ## ##通过命名空间加载(且未附加):[1] Rcpp_1.0.5 bookdown_0.21 lattice_0.20-41 ## [4] digest_0.6.27 grid_4.0.3 stats4_4.0.3 ## [7] magrittr_2.0.1 evaluate_0.14 rlang_0.4.9 ## [10] stringi_1.5.3 S4Vectors_0.28.0 Matrix_1.2-18 ## [13] rmarkdown_2.5 tools_4.0.3 string_1 .4.0 ## [16] parallel_4.0.3 xfun_0.19 yaml_2.2.1 ## [22] htmltools_0.5.0