随机森林预测

Posted

技术标签:

【中文标题】随机森林预测【英文标题】:Random Forest Predictions 【发布时间】:2014-08-07 15:12:59 【问题描述】:

我正在为我正在为一堂课做的家庭作业寻找一些指导。我们得到一个包含 14K 观测值的数据集,并要求我们建立一个预测模型。我将数据集子集到训练和测试中(4909 个观察),这里我使用 caret 包,它预测最后一个变量“classe”。我提取了接近零的变量并建立了模型,但是当我尝试进行预测时,我只得到了 97 个预测。我查看了帮助文件,但仍然无法弄清楚我哪里出错了。任何提示将不胜感激。

代码如下:

  set.seed(1234)
  pml.training <- read.csv("./data/pml-training.csv")
  #
  library(caret) 
  inTrain <- createDataPartition(y=pml.training$classe, p=0.75, list=FALSE)
  training <- pml.training[inTrain,]
  testing <- pml.training[-inTrain,]

  # Pull out the Near Zero Value (NZV)
  nzv <- nearZeroVar(training, saveMetrics=TRUE)
  omit <- which(nzv$nzv==TRUE)
  training <- training[,-omit]
  testing <- testing[,-omit]

  # Fit the model 
  modFit <- train(classe ~., method="rf", data=training)
  modFit
  print(modFit$finalModel)
  plot(modFit)

  # Try and predict on the testing model 
  pred <- predict(modFit, newdata=testing)
  testing$predRight <- pred==testing$classe
  print(table(pred, testing$classe))

谢谢,帕特 C。

【问题讨论】:

【参考方案1】:

你检查了吗

sum(complete.cases(subset(testing, select = -classe)))

?

【讨论】:

是的,它是 97,所以预测函数只预测完整的类,因此我应该估算数据。 @ptcesq 否。算法无法预测那些缺少预测变量值的情况/观察。它预测所有预测值都可用的情况(在这种情况下为 97)。如果你想预测其余的,你要么需要在训练中忽略那些在测试集中大部分缺失的变量,要么在测试集中估算缺失值。 谢谢,我会试试 rfImpute()。

以上是关于随机森林预测的主要内容,如果未能解决你的问题,请参考以下文章

随机森林预测模型

基于随机森林算法完成鸢尾花卉品种预测任务 代码+数据

MATLAB-随机森林实现数据回归分析预测

随机森林模型(RF)

随机森林预测值

十大经典预测算法七---随机森林