随机森林
在机器学习中,随机森林是一个包含多个决策树的分类器, 并且其输出的类别是由个别树输出的类别的众数而定。
所以10000个(概率上)糟糕的模型有什么好的?好吧,这样确实没什么特别的好处。但是随着很多糟糕的决策树被生成,其中也会有很少确实很优秀的决策树。
当你要做预测的时候,新的观察到的特征随着决策树自上而下走下来,这样一组观察到的特征将会被贴上一个预测值/标签。一旦森林中的每棵树都给出了预测值/标签,所有的预测结果将被归总到一起,所有树的模式投票被返回做为最终的预测结果。
简单来说,99.9%不相关的树做出的预测结果涵盖所有的情况,这些预测结果将会彼此抵消。少数优秀的树的预测结果将会超脱于芸芸“噪音”,做出一个好的预测。
1.函数介绍
randomForest(formula, data, mtry, ntree)
注:mtry的取值是创建随机森林方法的作者的建议。
代码:
>setwd("d://Users/Administrator.WIN-T6E9K7D8SKG/Desktop/R_learning")
#注意这里要用://和/ 不能用直接复制过来的地址。
>install.packages("randomForest")
#要用随机森林的函数要先安装一下。
train<-read.csv("train.csv")
test<--read.csv("test.csv")
#把数据读进来
train<-train[-1]
test<-test[-1]
#它们的第一列都不参与运算,所以去掉,是ID
library("randomForest")
#把这个库导进去
model<-randomForest(TARGET~.,data=train,ntree=150,mtry=18)
#这个核心函数了,要运行好久,开始进行训练,参数 TARGET~.很重要,这个就是我们要最后算的那个变量,它刚好在文件的最后一列,叫TARGET~.
result<-predict(model,test)
#训练好了就要拿来预测了,test没有TARGET那列。
a<-read.csv("test.csv")
lxb<-cbind(a$ID,result)
write.csv(lxb,"lxb.csv",row.names= FALSE)
#然后就是构造要提交的文件格式,先把原先的ID读进来,作为第一列和result合并,写入lxb.csv