随机森林(R)

xiaoxiao2021-02-28  81

#### random forest ############ install.packages('randomForest') library(randomForest) data(iris) attach(iris) table(iris$Species) class=as.factor(iris$Species) ######描述 ############ biplot(princomp(iris[,1:4], cor=TRUE)) set.seed(100) ind=sample(2,nrow(iris),replace=TRUE,prob=c(0.75,0.25)) #### 训练集、测试集######## train=iris[ind==1,] test=iris[ind==2,] ####两种模型机制 ############### ###### 1、模型############# iris.rf1=randomForest(Species~.,train,ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE) print(iris.rf1) iris.pred1=predict( iris.rf1,iris[ind==2,] ) table(observed=iris[ind==2,"Species"],predicted=iris.pred1 ) ######2、数据集 ############ RF2 <- randomForest(train[,-5], train[,5],prox=TRUE, importance=TRUE) imp <- importance(RF2) impvar <- imp[order(imp[, 3], decreasing=TRUE),]; impvar varImpPlot(RF2) 一些重要参数说明 randomForest()对训练集的数据进行处理,生成决策树 iris.rf=randomForest(Species~.,iris[ind==1,],ntree=50,nPerm=10,mtry=3,proximity=TRUE,importance=TRUE) Species~.:代表需要预测的列,species是列的名称。 iris[ind==1,]:生成决策树的训练集 ntree:生成决策树的数目 nperm:计算importance时的重复次数 mtry:选择的分裂属性的个数 proximity=TRUE:表示生成临近矩阵 importance=TRUE:输出分裂属性的重要性 predict() iris.pred=predict( iris.rf,iris[ind==2,] ) iris.rf:表示生成的随机森林模型 iris[ind==2,] :进行预测的测试
转载请注明原文地址: https://www.6miu.com/read-72542.html

最新回复(0)