缩放特征对模型性能有什么影响?

人工智能 机器学习 Python 数据科学 数据预处理
2021-11-15 12:45:36

我正在尝试生成一个模型,该模型使用分子的几种物理化学特性(包括原子数、环数、体积等)来预测数值Y. 我想使用 PLS 回归,我知道标准化在这里非常重要。我正在使用 scikit-learn 在 Python 中编程。

功能的类型和范围各不相同。有些是 int64,有些是浮点数。一些特征通常具有较小的(正或负)值,而另一些则具有非常大的值。我尝试过使用各种缩放器(例如标准缩放器、标准化、最小-最大缩放器等)。然而,R2/Q2 仍然很低。

我有几个问题:

  1. 是否有可能通过缩放,一些非常重要的特征失去了它们的意义,从而对解释响应变量的方差贡献较小?

  2. 如果是,如果我确定了一些重要特征(通过专业知识),是否可以扩展除这些之外的其他特征?还是仅扩展重要功能?

  3. 一些特征,虽然并不总是相关的,但与其他特征(例如-1到10)相比,具有相似范围内的值(例如100-400)。是否可以仅缩放同一范围内的特定功能组?

1个回答

通常,利用数据样本之间的距离或相似性(例如以标量积的形式)的算法,例如 k-NN 和 SVM,对特征转换很敏感。我们进行特征缩放以使我们的模型对异常值具有鲁棒性,并使模型上每个特征的初始影响大致相似

基于图形模型的分类器,例如 Fisher LDA 或朴素贝叶斯,以及决策树和基于树的集成方法(RF、XGB)对于特征缩放是不变的,但是,重新缩放/标准化可能是一个好主意你的数据。

  1. 您应该更仔细地探索您的数据,找到异常值,并在需要时应用转换。

  2. 不确定这是否是个好主意

  3. 您可以应用不同的预处理技术,例如 MinMaxScaller、Rank、Log 变换、Extracting square root、StandartScaller 等。