Python中的无监督随机森林近似

Mic*_*ren 5 python cluster-analysis random-forest

我目前正在重新访问我几年前使用R语言执行的随机森林项目:

  1. 使用无监督的RandomForest生成数据输入的邻近矩阵
  2. 从该邻近矩阵计算距离矩阵并传递到Partitioning Around Medoids(PAM)聚类算法
  3. 使用通过PAM获得的聚类,在监督模式下运行RandomForest来训练新模型.
  4. 使用此模型预测使用未来某个时间点的其他数据集.

我已经改变我的工作流程,以Python中的多很多项目因为语言是非常灵活和乐趣,但我仍然得到我的sklearn轴承相比,我是如何进行的.这样的任务,我挂机是生产接近矩阵(或者一些容器保持样品之间的距离),传递给PAM.我找到了以下帖子,它描述了一个类似的问题,但我一直无法找到一种方法来实现接受的答案的作者所建议的内容.

关于如何实现这一点的任何线索?非常感谢任何帮助,我一定会把它归还给更大的社区.我知道有很多其他R到Python的转换器会从这类信息中受益.

如果这是一个我只是忽略的简单解决方案,请提前感谢并道歉.

Sor*_*osh 1

您可以使用用 R 编写的 bigrf 包。(https://cran.r-project.org/web/packages/bigrf/bigrf.pdf)它有您需要的任何内容。

这就是在 R 中实现它的方法:

# load bigrf library
library('bigrf')

# generate synthetic dataset
synthetic.df <- generateSyntheticClass(x)

# create rf model
forest <- bigrfc(synthetic.df$x, synthetic.df$y, trace = 1)

# calculate distances
dist  <- proximities(forest, trace =  2)
dist  <- data.frame(as.matrix(dist))
dist  <- dist[1:nrow(x), 1:nrow(x)]
dist  <- sqrt(1 - dist)
Run Code Online (Sandbox Code Playgroud)