【问题标题】:XGBoost and Random Forest lead to constant predictions on test set when training data are centered当训练数据居中时,XGBoost 和随机森林导致对测试集的持续预测
【发布时间】:2017-10-21 02:40:05
【问题描述】:

我正在进行组学数据分析,我有一个 269x600 的数据集,我将其分成训练集和测试集 (80-20)。我要预测的变量是马尿酸盐的浓度,有 4 个不同的值(0、75、150、300),但我正在对其进行回归。

我在居中的训练集上使用caret 基础架构运行了随机森林和XGBoost,并在其中进行了交叉验证以选择最佳超参数。 问题是,当我使用所选模型预测测试集时,我获得了(几乎)恒定的预测。也就是说,整个测试集的值约为 269。

但是,当我在非中心训练集上运行相同的模型时,预测结果非常好,甚至优于我之前的所有模型。

我的问题是: 为什么仅将训练数据居中会导致两种模型都出现这种奇怪的结果?

我知道这些模型不需要这样的预处理来工作,但我不明白为什么如果我们预处理它就不起作用,以及为什么当我们只集中数据时结果会发生如此大的变化......

【问题讨论】:

  • 您是否也使用与训练集相同的居中参数来居中测试集变量?
  • @MarcoSandri 哇,我怎么没想到呢?当我将测试集居中时,它工作得很好。但是,我仍然没有真正理解这个问题...对于其他模型,例如 (逐步)线性回归弹性网,我没有将测试集居中, (稀疏或正交)偏最小二乘法PCRICR,...它给出的结果似乎可以接受。但是,当然,当我在居中的测试集上进行预测时,这些模型的结果现在也发生了变化......我认为与测试集相比,输入特征的简单位置偏移不会产生如此大的影响跨度>

标签: r machine-learning random-forest r-caret xgboost


【解决方案1】:

通过改变训练与测试来思考你在做什么。

您可能会确保测试集中的每个样本都超出训练数据的范围。

因此,与训练数据相比,测试数据中的每个特征实际上都相同(非常高或非常低),并且最终会出现在训练模型中的相同终端节点中。

因此它们都会产生相同的预测

这证明了树模型不能很好地推断

require(xgboost)
X <- matrix(rnorm(10000, mean = 10),nrow = 100)
y <- sample(c(0,1) , 100, replace = T)

bst1 <- xgboost(data = X, label = y, nrounds = 20)

# gonna scale test and not train
# test predictions are the same
p <- predict(  bst1, newdata = scale(X))
> p
  [1] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
  [9] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [17] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [25] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [33] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [41] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [49] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [57] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [65] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [73] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [81] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [89] 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985 0.3643985
 [97] 0.3643985 0.3643985 0.3643985 0.3643985

【讨论】:

    猜你喜欢
    • 2020-10-31
    • 2019-08-12
    • 2020-11-30
    • 2021-07-10
    • 2018-07-31
    • 2017-01-22
    • 2017-12-15
    • 2017-11-21
    • 2014-08-04
    相关资源
    最近更新 更多