#### random forest ############
install.packages(
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,] :进行预测的测试