【发布时间】:2022-11-15 01:08:20
【问题描述】:
我正在构建一个 GBM 分类器来预测某个目标变量。
我的数据包含许多连续变量,我只想使用 scale 函数缩放其中一个 (age)。我应该在训练集中缩放这个变量,然后在测试集中缩放它根据列车组,这样我就不会泄露信息。我的问题是如何在 R 中应用它?
我这样做的方法是分别缩放训练集和不太正确的测试集的年龄特征。这是我的代码(我使用 caret 包):
for (i in (1:10)) {
print(i)
set.seed(i)
IND = createDataPartition(y = MYData$Target_feature, p=0.8, list = FALSE)
TRAIN_set = MYData[IND, ]
TEST_set = MYData[-IND,]
TRAIN_set$age = scale(TRAIN_set$age)
TEST_set$age = scale(TEST_set$age)
GBMModel <- train(Target_feature~., data = TRAIN_set,
method = "gbm",
metric="ROC",
trControl = ctrlCV,
tuneGrid = gbmGRID,
verbose = FALSE
)
AUCs_Trn[i] = auc(roc(TRAIN_set$Target_feature,predict(GBMModel,TRAIN_set, type='prob')[,1]))
AUCs_Tst[i] = auc(roc(TEST_set$Target_feature,predict(GBMModel,TEST_set, type='prob')[,1]))
}
注意:我只想扩展 age 功能。
【问题讨论】:
标签: r machine-learning scaling r-caret