【发布时间】:2017-10-21 02:40:05
【问题描述】:
我正在进行组学数据分析,我有一个 269x600 的数据集,我将其分成训练集和测试集 (80-20)。我要预测的变量是马尿酸盐的浓度,有 4 个不同的值(0、75、150、300),但我正在对其进行回归。
我在居中的训练集上使用caret 基础架构运行了随机森林和XGBoost,并在其中进行了交叉验证以选择最佳超参数。
问题是,当我使用所选模型预测测试集时,我获得了(几乎)恒定的预测。也就是说,整个测试集的值约为 269。
但是,当我在非中心训练集上运行相同的模型时,预测结果非常好,甚至优于我之前的所有模型。
我的问题是: 为什么仅将训练数据居中会导致两种模型都出现这种奇怪的结果?
我知道这些模型不需要这样的预处理来工作,但我不明白为什么如果我们预处理它就不起作用,以及为什么当我们只集中数据时结果会发生如此大的变化......
【问题讨论】:
-
您是否也使用与训练集相同的居中参数来居中测试集变量?
-
@MarcoSandri 哇,我怎么没想到呢?当我将测试集居中时,它工作得很好。但是,我仍然没有真正理解这个问题...对于其他模型,例如 (逐步)线性回归,弹性网,我没有将测试集居中, (稀疏或正交)偏最小二乘法,PCR 或ICR,...它给出的结果似乎可以接受。但是,当然,当我在居中的测试集上进行预测时,这些模型的结果现在也发生了变化......我认为与测试集相比,输入特征的简单位置偏移不会产生如此大的影响跨度>
标签: r machine-learning random-forest r-caret xgboost