我想在 Python3 中使用 sklearn 确认 SGDRegression 拟合对于最小值x处的导数确实为零。
import numpy as np
from sklearn.linear_model import SGDRegressor
n_samples, n_features = 20, 3
rng = np.random.RandomState(0)
y = rng.randn(n_samples)
a = rng.randn(n_samples, n_features)
reg = SGDRegressor(loss="squared_loss", max_iter=1000, tol=1e-3)
reg.fit(a, y)
# Coefficients of the trained line
z = reg.coef_
# Derivative (gradient) on a[i1]
i1 = 1
grad_F1 = 2 * z * ((a[i1] * z) - y[i1])
grad_F1
np.linalg.norm(grad_F1) # 0.14034432156803853
我没有像我预期的那样得到 0,所以要么导数计算错误,要么我错过了如何获得最小化 x 值。任何帮助表示赞赏,谢谢。