machine-learning - 随机森林比线性回归差?是正常现象,请问是什么原因呢?

标签 machine-learning deep-learning linear-regression random-forest

我正在尝试使用机器学习来预测数据集。这是一个具有 180 个输入特征和 1 个连续值输出的回归问题。我尝试比较深度神经网络、随机森林回归和线性回归。

正如我所料,3 隐藏层深度神经网络的均方根误差 (RMSE) 为 0.1,优于其他两种方法。然而,我意外地发现随机森林的表现甚至比线性回归还要差(RMSE 0.29 vs. 0.27)。在我的期望中,随机森林可以发现特征之间更复杂的依赖关系以减少错误。我尝试调整随机森林的参数(树数、最大特征、最大深度等)。我也尝试了不同的K交叉验证,但性能仍然不及线性回归。

我在网上搜索,一个答案说,如果特征对协变量有平滑、近乎线性的依赖,线性回归可能会表现得更好。我不完全明白这一点,因为如果是这样的话,深度神经网络不应该带来很大的性能提升吗?

我很难给出解释。什么情况下随机森林比线性回归差,但深度神经网络可以表现更好?

最佳答案

如果您的特征解释了与目标变量的线性关系,那么线性模型通常比随机森林模型表现得更好。这完全取决于你的特征之间的线性关系。

也就是说,线性模型并不优越,随机森林也并不优越。

尝试使用 scikit-learn 中的 MinMaxScaler() 缩放和转换数据,看看线性模型是否进一步改进

专业提示

如果线性模型非常有效,您需要问自己为什么?如何?深入了解这两个模型的基础知识,了解它为何适用于您的数据。这些问题将引导您更好地进行特征工程师。事实上,Kaggle Grand Masters 确实在堆叠中使用线性模型,通过捕获数据集中的线性关系来获得前 1% 的分数。

所以归根结底,线性模型也能创造奇迹。

关于machine-learning - 随机森林比线性回归差?是正常现象,请问是什么原因呢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48087676/

相关文章:

machine-learning - 使用梯度下降的神经网络

python - 计算损失时检查标签( tensorflow )

python /Matplotlib : adding regression line to a plot given its intercept and slope

scala - 将欧氏距离转换为曼哈顿距离

parameters - 没有输入参数的聚类数据

python - tensorflow 中 "FLAGS"的用途是什么

python - 使用 Keras 进行简单线性回归

python - 对于具有多个特征的 TensorFlow 回归,我的占位符应该是什么?

machine-learning - 机器学习挑战: learn english pronunciation

python - 精确模型在 keras-tf 上收敛,但在 keras 上不收敛