机器学习RandomForest, 随机森林, 分类回归
#自己的一些记录。 提供参考吧。
#可以直接复制到R运行
#加载包
library(randomForest)
#加载数据
data=read.csv("L6_filter.csv",row.names = 1,header=T)
#设置随机种子数,确保以后再执行代码时可以得到一样的结果
set.seed(123456789)
#数据随机采样设置70%数据用作训练集 30%用作测试集
train_sub = sample(nrow(data),7/10*nrow(data))
train_data = data[train_sub,]
test_data = data[-train_sub,]
#数据预处理 factor的作用是打上标签或者类别
train_data$zq101 = as.factor(train_data$zq101) #zq101是我的分组信息
test_data$zq101 = as.factor(test_data$zq101)
#筛选mtry个数
n<-length(names(train_data))
set.seed(123456789) #一些网友说每次随机森林前面都要跑一下
for(i in 1: (n-1)){
mtry_fit<-randomForest(zq101~. ,data=train_data,mtry=i)
err<-mean(mtry_fit$err.rate)
print(err)
}
##试验性训练模型,使用训练集构建随机森林
#ntree和mytry分布根据后面的步骤确定 决策树的数量,默认是500,
#mtry每个分组中随机的变量数一般是变量数开根