algorithm - 如果使用正态分布的目标值进行训练,非线性回归算法会表现得更好吗?

标签 algorithm machine-learning xgboost non-linear-regression

在发现可以应用于数据集的目标值(y 列)的许多变换(例如 box-cox 变换)之后,我了解到线性回归模型需要使用正态分布的目标值进行训练,以便提高效率。( https://stats.stackexchange.com/questions/298/in-linear-regression-when-is-it-appropriate-to-use-the-log-of-an-independent-va )

我想知道这是否适用于非线性回归算法。目前,我已经看到 Kaggle 上的人们通过使用 xgboost 使用对数转换来减轻异方差性,但他们从未提及是否也这样做是为了获得正态分布的目标值。

我尝试做一些研究,并在第 11 页 Andrew Ng 的讲义( http://cs229.stanford.edu/notes/cs229-notes1.pdf )中发现,许多线性和非线性算法使用的最小二乘成本函数是通过假设正态分布导出的的错误。我相信如果误差应该是正态分布的,那么目标值也应该是正态分布的。 如果这是真的,那么所有使用最小二乘成本函数的回归算法对于正态分布的目标值应该能更好地工作。

由于 xgboost 使用最小二乘成本函数进行节点分割(http://cilvr.cs.nyu.edu/diglib/lsml/lecture03-trees-boosting.pdf - 幻灯片 13),那么如果我使用 box-cox 变换来变换目标值来训练模型,然后应用逆 box-cox,则该算法可能会效果更好对输出进行变换以获得预测值。 从理论上讲,这会产生更好的结果吗?

最佳答案

你的猜想“我相信如果误差应该是正态分布的,那么目标值也应该是正态分布的。”是完全错误的。所以你的问题根本没有任何答案,因为它不是一个有效的问题。

根本没有假设目标变量是正常的。

对目标变量进行变换并不意味着误差呈正态分布。事实上,这可能会破坏常态。

关于algorithm - 如果使用正态分布的目标值进行训练,非线性回归算法会表现得更好吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38516963/

相关文章:

python - SPOJ 在 C 中接受相同的算法,在 Python 中超过时间限制

ruby - 在没有 ruby 循环的情况下从范围编号中计算相同的包含编号

python - 使用 Keras 的卷积神经网络中始终进行相同二元类预测的原因和可能的解决方案是什么?

amazon-web-services - AWS Sagemaker - "Hidden file found in the data path! Remove that before training."

python - “Booster”对象没有属性 'score' - 准确性

python - 如何控制xgboost的模型大小?

c++ - 从子字符串生成优化字符串的算法

string - 将算法的大 O 表示法从 O(n^2) 改进为更好的东西

machine-learning - Tensorflow Bazel 0.3.0 构建 CUDA 8.0 GTX 1070 失败

线性回归的 Python、GD 和 SGD 实现