如何在R中使用mlr包构建随机森林回归learner?
mlr 包随机森林回归实现说明
代码报错原因
你给出的两行代码运行失败的核心问题如下:
- 第一行声明的是GBM算法的回归学习器,并非你需要的随机森林学习器,不符合需求
- 第二行中
predict.type = "prob"是分类任务专属参数,回归任务仅支持response(返回预测值,默认)、se(返回预测值+标准误,仅部分算法支持)两种取值,参数不匹配导致报错
完整可运行示例脚本
以下脚本可直接运行,替换数据集即可用于你的水体污染分析场景:
# 1. 安装并加载依赖包 # 首次运行先执行安装 # install.packages(c("mlr", "randomForest")) library(mlr) library(randomForest) # 2. 构造回归任务 # 示例使用内置mtcars数据集,你可替换为自己的水体污染数据集 # 只需将data替换为你的数据集,target替换为你要预测的连续型污染指标列名即可 data <- mtcars regr.task <- makeRegrTask(id = "water_pollution_analysis", data = data, target = "mpg") # 3. 构造随机森林回归学习器 # 基础配置:仅返回预测值,ntree可自行调整决策树数量 regr.lrn <- makeLearner("regr.randomForest", fix.factors.prediction = TRUE, ntree = 100) # 如需额外返回预测结果的标准误,使用以下配置(randomForest回归支持该参数) # regr.lrn <- makeLearner("regr.randomForest", predict.type = "se", fix.factors.prediction = TRUE, ntree = 100) # 4. 训练模型 mod <- train(regr.lrn, regr.task) # 5. 预测 # 此处示例为全数据集预测,可将newdata替换为你的测试集数据 pred <- predict(mod, newdata = data) # 查看预测结果 head(as.data.frame(pred)) # 6. 回归模型评估(可选) # 常用指标:均方误差(mse)、决定系数(rsq)、平均绝对误差(mae) performance(pred, measures = list(mse, rsq, mae))
注意事项
- 确保你使用的数据集里,待预测的目标变量为连续数值型,不要提前做分箱/分类转换
fix.factors.prediction = TRUE参数会自动处理训练集和测试集的因子水平不一致问题,保留即可
内容的提问来源于stack exchange,提问作者BHope
相关产品推荐
相关产品推荐

