RF<-randomForest(lat.max~.,data=dd,ntree=1000,importance=TRUE)
##建立随机森林,这是一个regression模型,生成1000棵分类树,importance=TRUE代表返回预测变量的重要性估计。
imp<-importance(RF)
##计算相应变量的重要性,值越大,代表当前的变量越重要;
##这里是回归模型,故第一个变量值如下计算:
##对于某个变量x,针对每棵树,用没有用到的值(out of bag)去计算MSE,然后置换out of bag样本中的x,
##计算MSE,这个时候MSE通常会变大,计算相应的差,对每棵树得到的差做平均,再除以其标准差,
##得到相应的值做为该变量的IncMSE
##第二个值如下计算:
##某个变量作为node时,计算其对node impurity的提高,我觉得是用的两个MSE的差。然后将所有值加起来,
##除以树的总棵数。
impvar<-rownames(imp)[order(imp[,1],decreasing=TRUE)]
##将预测变量名排序,根据其重要性的第一个指标值IncMSE,按从大到小排序;
op<-par(mfrow=c(3,3),mar=c(4,4,2,2))
##绘制图形,将整个界面等划分为3行3列,mar=c(4,4,2,2)以“下,左,上,右”的顺序指定边界大小,单位是英寸。
for(i in seq_along(impvar)){
partialPlot(RF,dd,impvar[i],xlab=impvar[i],ylab="Longitude",ylim=c(26,30),main="")
}
##seq_along(impvar)相当于1:length(impvar)
##partialPlot中的参考文献对所画的函数描述不清,
##\tilde{f}(x) = \frac{1}{n} ∑_{i=1}^n f(x, x_{iC})
##我只是猜测,应该是固定除了关心的变量之外的变量,画出当前变量与响应变量之间的关系


雷达卡





京公网安备 11010802022788号







