You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

简单线性回归与多元线性回归的特征缩放问题

结论:你看到的说法完全错误

不管是单特征的简单线性回归,还是多特征的多元线性回归,在scikit-learn的LinearRegression模型里,都不需要做特征缩放。

核心原因

LinearRegression是通过最小二乘法直接求解最优系数的,特征的尺度只会改变系数的数值大小,不会影响模型的预测结果和性能。比如把一个特征的单位从米换成千米,系数会变成原来的1000倍,但代入预测时的计算结果完全一致。

实际测试验证

1. 简单线性回归测试

import numpy as np
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import StandardScaler

# 生成测试数据:单特征x,目标y
np.random.seed(42)
x = np.random.rand(100, 1) * 100  # 特征尺度较大
y = 3 * x + 5 + np.random.randn(100, 1) * 2

# 不缩放训练模型
model_no_scale = LinearRegression()
model_no_scale.fit(x, y)

# 缩放后训练模型
scaler = StandardScaler()
x_scaled = scaler.fit_transform(x)
model_scaled = LinearRegression()
model_scaled.fit(x_scaled, y)

# 预测对比:取一个样本
test_x = np.array([[50]])
pred_no_scale = model_no_scale.predict(test_x)
pred_scaled = model_scaled.predict(scaler.transform(test_x))

print(f"不缩放预测结果:{pred_no_scale[0][0]:.4f}")
print(f"缩放后预测结果:{pred_scaled[0][0]:.4f}")

输出结果会完全一致——缩放后的模型预测时会把输入逆转换,系数的变化刚好抵消了缩放的影响。

2. 多元线性回归测试

# 生成两个尺度差异极大的特征
x1 = np.random.rand(100, 1) * 1000
x2 = np.random.rand(100, 1) * 0.01
X = np.hstack([x1, x2])
y = 2 * x1 + 100 * x2 + 10 + np.random.randn(100, 1) * 0.5

# 不缩放训练
model_multi_no_scale = LinearRegression()
model_multi_no_scale.fit(X, y)

# 缩放后训练
scaler_multi = StandardScaler()
X_scaled = scaler_multi.fit_transform(X)
model_multi_scaled = LinearRegression()
model_multi_scaled.fit(X_scaled, y)

# 预测对比
test_X = np.array([[500, 0.005]])
pred_multi_no_scale = model_multi_no_scale.predict(test_X)
pred_multi_scaled = model_multi_scaled.predict(scaler_multi.transform(test_X))

print(f"多元不缩放预测结果:{pred_multi_no_scale[0][0]:.4f}")
print(f"多元缩放后预测结果:{pred_multi_scaled[0][0]:.4f}")

两次预测结果几乎完全一致(微小误差来自浮点精度)。

什么时候才需要特征缩放?

只有当模型依赖梯度下降求解(比如SGDRegressor),或者带有正则化项(比如Ridge、Lasso)时,特征缩放才是必要的:

  • 梯度下降时,尺度差异大会导致收敛速度变慢;
  • 正则化项会对大尺度特征的系数施加更大惩罚,导致模型偏向小尺度特征。

但普通的LinearRegression完全不需要这一步。

内容的提问来源于stack exchange,提问作者Raid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 03:35:21