我尝试使用插入符号包中的train()fx在60个变量和~20,000个观察点上构建分类模型。我使用随机森林方法并且在我的训练集上返回0.999准确度,但是当我使用模型进行预测时,它将每个测试观察分类为同一类(即,20个观察中的每一个被分类为&# 34; 1" s" 5种可能的结果)。我确定这是错误的(测试集是针对Coursera测验的,因此我没有发布确切的代码)但我不确定发生了什么。
我的问题是,当我调用最终的fit模型(fit $ finalModel)时,它表示它总共生成了500棵树(默认和预期),但是每次拆分时尝试的变量数量为35。 / strong>我知道将进行分类,为每个分割选择的标准观察数是总预测数的平方根(因此,应该是sqrt(60)= 7.7,称之为8)。这可能是问题??
我对我的模型或数据清理是否有问题感到困惑。
set.seed(10000)
fitControl <- trainControl(method = "cv", number = 5)
fit <- train(y ~ ., data = training, method = "rf", trControl = fitControl)
配合$ finalModel
Call:
randomForest(x = x, y = y, mtry = param$mtry)
Type of random forest: classification
Number of trees: 500
No. of variables tried at each split: 41
OOB estimate of error rate: 0.01%
答案 0 :(得分:0)
如果学生未能删除NA值超过50%的自变量,则使用Random Forest作为Coursera的约翰霍普金斯实用机器学习课程的最终项目将为测验的所有20个测试用例生成相同的预测。
解决方案:从模型中删除具有高比例缺失值的变量。