【发布时间】:2019-07-10 08:52:04
【问题描述】:
我正在尝试为价格预测问题建立一个随机森林模型。我已经完成了以下步骤:
1) 将数据拆分为 3 组 train、test 和 valid(要求拆分为 3 组,不仅是 train 和 test)
set.seed(1234)
assignment <- sample(1:3, size = nrow(train), prob = c(0.7, 0.15, 0.15), replace = TRUE)
#Create a train, validation and tests from the train data
train_train <- train[assignment == 1, ]
train_valid <- train[assignment == 2, ]
train_test <- train[assignment == 3, ]
2) 我已经建立了模型,其中 x 和 y 来自训练集
fit_rf_train <- train(x = train_train[, -which(names(train_train) %in%
c("Item_Identifier", "Item_Outlet_Sales"))],
y = train_train$Item_Outlet_Sales,
method = "ranger",
metric = "RMSE",
tuneGrid = expand.grid(
.mtry = 6,
.splitrule = "variance",
.min.node.size = c(10,15,20)),
trControl = trControl,
importance = "permutation",
num.trees = 350)
我有以下相同火车数据上模型输出的屏幕截图:
3) 使用预测函数我将模型与其他两个数据集一起使用,有效并使用以下代码行进行测试:
prediction_test <- predict(fit_rf_train, train_test)
prediction_valid <- predict(fit_rf_train, train_valid)
我的问题是如何衡量模型在未见数据(测试和有效数据)上的性能?
【问题讨论】:
-
您使用的是哪个软件包?你如何衡量性能?我认为通过使用 RMSE 作为您选择的指标。越低越好。
caret::RMSE假设您使用的是caret -
插入符号包。是的,我知道我将使用 RMSE。但我的意思是使用哪个函数来打印我预测函数的性能。我的意思是使用这条线 print(fit_rf_train) 我现在可以看到火车上的 RMSE 值,我该如何使用预测来做到这一点。
-
您将如何进行分类?你使用
confusionMatrix.现在,你使用RMSE()。输入?RMSE你会看到几个选项。 -
如果我输入 RMSE(prediction_test) 我会得到这个错误:参数“obs”丢失,没有默认值。我应该使用训练数据作为 obs 参数的值吗?
-
我无权访问
train。请添加dput的train
标签: r random-forest prediction