考察特征变换对数值稳定性的影响及流水线构建最佳实践。
数值爆炸:假设原始特征x∈[0,10]。x^2∈[0,100],x^3∈[0,1000]。高阶项的数值范围(Scale)和方差会远远大于低阶项。
梯度下降的影响:SGD 对特征的尺度非常敏感。如果特征尺度差异巨大,损失函数的等高线会变成细长的椭圆,导致梯度下降在“峡谷”壁间震荡,收敛极慢或发散。
StandardScaler的位置:
如果在 Poly 之前缩放(A选项):假设 x 被缩放到 N(0,1) 。那么 x^2 将遵循卡方分布(非零均值,非单位方差), x^3也会改变分布。Poly 输出的特征依然尺度不一(虽然比原始好一点,但仍不理想)。
如果在 Poly 之后缩放(B选项):先生成所有高阶项,然后对每一列(包括 x, x^2 x^3 等)独立进行 Z-Score标准化。这确保了输入到 SGD 的每一个特征都拥有 0 均值和 1 方差,这是优化算法最理想的输入状态。
结论:在使用对尺度敏感的模型(如线性回归、SVM、神经网络)配合多项式特征时,务必在 Poly 之后 进行 Scaling。