我应该先标准化还是先生成多项式?

数据挖掘 分类 逻辑回归 预处理
2021-10-09 20:43:55

最近我正在处理一些算法的分类问题,比如逻辑回归。

当我预处理我的数据时,我会标准化我的所有特征,然后基于它们生成多项式特征。

from sklearn.preprocessing import PolynomialFeatures, StandardScaler

我愿意

# features is my entire features dataset, labels excluded 
features = poly.fit_transform(features)
features = std.fit_transform(features)

完成模型训练后,准确率约为 80%。然后我将两行预处理代码反转为

features = std.fit_transform(features)
features = poly.fit_transform(features)

我已经阅读了这篇文章,但似乎答案不足以帮助我弄清楚。

我应该先标准化我的数据还是先从原始特征生成多项式?

1个回答

取决于您使用标准化的目的以及这些功能与您的问题的关系,但我想在大多数情况下,您最好在事后标准化它们。

如果您正在寻找一些标准化以更快地优化某些算法(例如神经网络而不是逻辑回归),那么事后标准化可能是一个更好的主意,否则它会违背目的。

如果您这样做是为了引入一些正则化,那么首先将它们标准化为 0-1 将使多项式总体上更小,因此与原始特征相比更有可能被赋予权重,这可能不是您想要的。