【问题标题】:Questions about standardizing and scaling关于标准化和缩放的问题
【发布时间】:2019-06-09 11:44:04
【问题描述】:

我正在尝试生成一个模型,该模型使用分子的多种物理化学特性(包括原子数、环数、体积等)来预测数值 Y。我想使用 PLS 回归,我知道标准化在这里非常重要。我正在使用 scikit-learn 在 Python 中编程。功能的类型和范围各不相同。有些是 int64,有些是浮点数。一些特征通常具有较小的(正或负)值,而另一些则具有非常大的值。我尝试过使用各种缩放器(例如标准缩放器、标准化、最小最大缩放器等)。然而,R2/Q2 仍然很低。我有几个问题:

  1. 是否有可能通过缩放,一些非常重要的特征失去了意义,从而对解释响应变量的方差贡献较小?
  2. 如果是,如果我确定了一些重要特征(通过专业知识),是否可以缩放除这些之外的其他特征?还是仅扩展重要功能?
  3. 与其他特征(例如 -1 到 10)相比,某些特征虽然并不总是相关,但具有相似范围内的值(例如 100-400)。是否可以仅缩放同一范围内的特定特征组?

【问题讨论】:

    标签: scikit-learn regression scaling sklearn-pandas


    【解决方案1】:

    缩放的整个想法是使模型对特征空间的分析更加稳健。例如,如果您有2 特征为5 Kg5000 gm,我们知道两者是相同的,但是对于某些算法,它们是sensitive 到度量空间,例如KNNPCA 等,它们将更侧重于第二个特征,因此必须对这些算法进行缩放。

    现在来回答你的问题,

    1. 缩放不会影响特征的重要性。如上所述,它有助于更​​好地分析数据。
    2. 不,您不应该这样做,原因如上所述。
    3. 如果您想在模型中包含领域知识,可以将其用作先验信息。简而言之,对于线性模型,这与regularization 相同。它有非常好的特性。如果您认为,您有很多useless-features,您可以使用L1 正则化,它会在特征空间上创建sparse 效果,这只不过是为无用的特征分配0 权重。这是more-info 的链接。

    还有一点,基于tree的模型等一些方法不需要缩放,最后,它主要取决于模型,你选择。

    【讨论】:

    • 感谢您的回答和建议。我听说过块缩放(见 3),但我真的对这个想法感到困惑。
    • 除此之外,我正在使用 scikit-learn,它为 PLSRegression 提供了一个类。该类实现了 NIPALS 算法,并且每个对象都提供了一个缩放器。所以基本上,你可以在内部扩展。我还没有弄清楚这里使用的确切缩放类型是什么。我的问题是,在我已经使用自定义标准化器在外部缩放数据之后,启用训练集的内部缩放是否有意义?
    • 一些算法更喜欢不同的缩放方法,让它发挥作用。对于 exp,您使用了 std_scaler,现在数据的平均值为 0,var 为 1。所以它也是负值的高斯分布。但是有些算法更喜欢 min-max,它的数据在(0,1) 范围内,它会以所需的形式对其进行缩放。最后,无论如何它不会影响数据。
    • 谢谢。我明白这一点。我在一些示例中比较了 R2/Q2,但同时打开两个缩放操作不一定有帮助。
    【解决方案2】:
    1. 失去意义?是的。贡献少?没有。
    2. 不,不行。要么全有,要么全无。
    3. 没有。缩放的想法不是减少/增加变量的重要性/影响。是将所有变量转换为可以解释的通用尺度。

    【讨论】:

    • 感谢您的回答。
    猜你喜欢
    • 2011-06-10
    • 1970-01-01
    • 2021-05-30
    • 2020-12-27
    • 1970-01-01
    • 2019-12-30
    • 2015-01-13
    • 2015-12-11
    • 1970-01-01
    相关资源
    最近更新 更多