随机梯度下降 SGD 回归

什么是随机梯度下降 (SGD) 回归?

  • 一种用于训练机器学习模型的优化算法,特别是在处理大规模数据集时。与传统的梯度下降算法不同,SGD 在每次迭代中只使用一个或一小部分训练样本来计算梯度,而不是使用整个训练集。这种方法使得 SGD 在处理大型数据集时更加高效,因为它不需要在每次迭代中处理所有数据,从而减少了计算量和内存需求。
  • 使用 SGD 最小化正则化经验损失来拟合线性模型
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    >>> import numpy as np
    >>> from sklearn.linear_model import SGDRegressor
    >>> from sklearn.pipeline import make_pipeline
    >>> from sklearn.preprocessing import StandardScaler
    >>> n_samples, n_features = 10, 5
    >>> rng = np.random.RandomState(0)
    >>> y = rng.randn(n_samples)
    >>> X = rng.randn(n_samples, n_features)
    >>> # Always scale the input. The most convenient way is to use a pipeline.
    >>> reg = make_pipeline(StandardScaler(),
    ... SGDRegressor(max_iter=1000, tol=1e-3))
    >>> reg.fit(X, y)
    Pipeline(steps=[('standardscaler', StandardScaler()),
    ('sgdregressor', SGDRegressor())])