我有一个成功的随机森林模型,我想将它集成到另一个软件中,我知道我可以使用一些库(比如Java中的fastRF或ALGLIB的DecisionForest用于其他语言)但我如何使用“模型”训练在R?我必须用新语言重新训练它?
另一种观点是以某种方式提取它,但我不知道该怎么做......
任何帮助将不胜感激
提前致谢
答案 0 :(得分:13)
查看pmml包,它为各种模型生成PMML,包括RandomForest。一个基本的例子:
#?randomForest
library(randomForest)
library(pmml)
set.seed(131)
ozone.rf <- randomForest(Ozone ~ ., data=airquality, mtry=3,importance=TRUE, na.action=na.omit)
print(ozone.rf)
ozone.rf.pmml <- pmml(ozone.rf)
答案 1 :(得分:2)
randomForest对象具有关于对象中每棵树的所有信息。每棵树都不是特别复杂,尽管它可能令人困惑。
iris.rf <- randomForest(Species ~ ., data=iris, importance=TRUE,
proximity=TRUE)
> names(iris.rf$forest)
[1] "ndbigtree" "nodestatus" "bestvar" "treemap" "nodepred"
[6] "xbestsplit" "pid" "cutoff" "ncat" "maxcat"
[11] "nrnodes" "ntree" "nclass" "xlevels"
要了解如何使用R之外的林,您必须查看源代码。下载randomForest的源包,解压缩tar.gz并查看src目录。在rf.c中,您将看到函数classForest(对于回归,请查看regrf.c中的regForest)。看一下R函数predict.randomForest来看看它是如何被调用的。您可能必须使用getAnywhere(“predict.randomForest”)在R中查看它。
需要相当多的时间来提取R信息并在另一个包中进行预测,因此在实际执行此操作之前,您必须仔细考虑。重新安装您打算使用的软件可能会更直接。