我正在尝试生成一个模型,该模型使用分子的几个物理化学性质(包括原子数、环数、体积等)来预测数值Y。我想使用PLS回归,我知道标准化在这里非常重要。我正在用Python编程,使用scikit学习。功能的类型和范围各不相同。有些是int64,而另一些是float。一些特征通常具有较小的(正或负)值,而其他特征具有非常大的值。我试过使用各种缩放器(例如标准缩放器、normalize、minmax缩放器等)。然而,R2/Q2仍然很低。我有几个问题:
- 是否有可能通过缩放,一些非常重要的特征失去了意义,从而对解释响应变量的方差贡献较小
- 如果是,如果我(根据专家知识)确定了一些重要的特征,除了这些特征之外,还可以缩放其他特征吗?或者只缩放重要功能
- 一些特征虽然并不总是相关的,但与其他特征(例如-1到10)相比,其值在相似的范围内(例如100-400)。是否可以只缩放同一范围内的一组特定特征
缩放的整个想法是使模型对特征空间的分析更加稳健。例如,如果你有2
特征作为5 Kg
和5000 gm
,我们知道两者是相同的,但对于一些算法,如sensitive
到度量空间,例如KNN
、PCA
等,它们将更倾向于第二特征,因此必须对这些算法进行缩放。
现在来谈谈你的问题,
- 缩放不会影响特征的重要性。正如我上面所解释的,它有助于更好地分析数据
- 不,你不应该这样做,原因如上所述
- 如果您想在模型中包含领域知识,可以将其用作先验信息。简而言之,对于线性模型,这与
regularization
相同。它有很好的功能。如果你认为,你有很多useless-features
,你可以使用L1
正则化,它在特征空间上创建sparse
效应,这只是给无用的特征分配0
权重。这是更多信息的链接
还有一点,一些方法,比如基于tree
的模型,不需要缩放,最后,它主要取决于模型,你可以选择。
- 失去意义?对贡献更少?没有
- 不,这不好。要么全是,要么什么都没有
- 没有。缩放的概念不是降低/增加变量的重要性/效果。它是将所有变量转换为一个可以解释的通用尺度