Scikit learn 初学者问题:在回归模型中转换目标的效果

Scikit learn 初学者问题:在回归模型中转换目标的效果,scikit-learn,statistics,lstm,data-science,hypothesis-test,Scikit Learn,Statistics,Lstm,Data Science,Hypothesis Test,我是数据科学新手,曾与Keras LSTM合作,但没有成功。 每次计算r2分数都会得到0.0。 因此,在谷歌搜索之后,我找到了下面的scikit学习示例[1],作为数据科学的新手,我有一些示例,我正在努力理解以下几点: 他们为什么应用exp和log1p python中是否有一种方法或假设测试技术可以知道我应该对数据应用哪种转换,以便在LSTM中获得更好的结果 为什么他们要在整个数据集上应用它,然后分割用于训练和测试?考虑到顺序应该保存转换函数并在以后的测试中使用它?(不确定在这种情况下如何操作)


我是数据科学新手,曾与Keras LSTM合作,但没有成功。 每次计算r2分数都会得到0.0。
因此,在谷歌搜索之后,我找到了下面的scikit学习示例[1],作为数据科学的新手,我有一些示例,我正在努力理解以下几点:

  • 他们为什么应用exp和log1p
  • python中是否有一种方法或假设测试技术可以知道我应该对数据应用哪种转换,以便在LSTM中获得更好的结果
  • 为什么他们要在整个数据集上应用它,然后分割用于训练和测试?考虑到顺序应该保存转换函数并在以后的测试中使用它?(不确定在这种情况下如何操作)


  • [1]

    这些是非常广泛的问题,但这里有一些东西希望能帮助你:

    他们为什么应用exp和log1p?

    您链接的文档提到了以下内容:

    生成了一个综合随机回归问题。y的目标是 修改人:(i)翻译所有目标,使所有条目 非负和(ii)应用指数函数获得 无法使用简单线性模型拟合的非线性目标

    所以他们在做实验来创建一个非线性目标。log1p是拟合的,因此它可以接近高斯分布(正态分布),因为大多数模型都采用正态假设

    python中是否有一种方法或假设测试技术可以知道我应该对数据应用哪种转换,以便在LSTM中获得更好的结果?

    没有一刀切的方法,但通常您会尝试不同的变换(log、exp、sqrt、cubert、inverse等),以使您的特征接近正态分布。不同的模型对预测值做出不同的分布假设,许多模型假设为高斯分布(尽管有些模型对违反该假设具有鲁棒性)。所以你做特征变换,试图让它们尽可能接近正常——拥有正态分布的特征不会有什么坏处

    另一方面,功能缩放是基于模型性能和收敛性的原因进行的,如果功能的领域有很大差异,那么模型可能无法找到最佳解决方案

    为什么他们将其应用于整个数据集,然后分割用于训练和测试?考虑到顺序应该保存转换函数并在以后的测试中使用它?(不确定在这种情况下如何操作)

    您可能会混淆特征变换和特征缩放。同时应用转换或稍后应用转换不会产生任何影响-例如,先拆分后进行日志转换没有任何影响。他们这样做是为了方便、调试和代码的可读性

    然而,特征缩放是一个完全不同的问题。如果将模型部署到生产环境中,则可能需要保留缩放参数\函数,并将其分别应用于列车\测试和生产数据