您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > R语言提取随机森林所有树的所有规则实现脚本
#---------------------------------提取所有树的所有规则---------------------library(randomForest)rf-randomForest(Species~.,data=iris,ntree=100,proximity=TRUE)rftree-matrix(1,6)rule-c(a,b)root-c(1:2)rules-#保存所有规则source(treerules.R)print(rules-treerules(iris,rf-randomForest(Species~.,data=iris,ntree=100,proximity=TRUE)))for(tin1:rf$ntree){#rf$ntreerules-rbind(rules,paste(tree,t,:))rftree-getTree(rf,k=t,labelVar=FALSE)for(iin1:nrow(rftree)){#nrow(rftree)##先保存以其为根的子节点的根的序号if(rftree[i,1]!=0){root[rftree[i,1]]-i}if(rftree[i,2]!=0){root[rftree[i,2]]-i}if(i==1){root[1]-0rule[1]-}else{if(i%%2==0){#i==2,4,6......if(root[i]==1){rule[i]-paste(if,colnames(iris)[(rftree[root[i],3])],=,rftree[root[i],4],)}else{rule[i]-paste(rule[root[i]],and,colnames(iris)[(rftree[root[i],3])],=,rftree[root[i],4],)}if(rftree[i,5]==-1){rule[i]-paste(rule[i],then,rftree[i,6])rules-rbind(rules,rule[i])}}else{#i==3,5,7......if(root[i]==1){rule[i]-paste(if,colnames(iris)[(rftree[root[i],3])],,rftree[root[i],4],)}else{rule[i]-paste(rule[root[i]],and,colnames(iris)[(rftree[root[i],3])],,rftree[root[i],4],)}if(rftree[i,5]==-1){rule[i]-paste(rule[i],then,rftree[i,6])rules-rbind(rules,rule[i])}}}}}print(rules)
本文标题:R语言提取随机森林所有树的所有规则实现脚本
链接地址:https://www.777doc.com/doc-4381573 .html