Scikit Learn - 随机梯度下降


在这里,我们将学习 Sklearn 中的一种优化算法,称为随机梯度下降 (SGD)。

随机梯度下降 (SGD) 是一种简单而有效的优化算法,用于查找最小化成本函数的函数参数/系数值。换句话说,它用于SVM和Logistic回归等凸损失函数下线性分类器的判别学习。它已成功应用于大规模数据集,因为系数的更新是针对每个训练实例执行的,而不是在实例结束时执行。

SGD分类器

随机梯度下降 (SGD) 分类器基本上实现了一个简单的 SGD 学习例程,支持各种损失函数和分类惩罚。Scikit-learn 提供SGDClassifier模块来实现 SGD 分类。

参数

下表包含SGDClassifier模块使用的参数-

先生编号 参数及说明
1

损失- str,默认 = '铰链'

它表示实现时要使用的损失函数。默认值为“hinge”,这将为我们提供线性 SVM。可以使用的其他选项是 -

  • log - 这种损失将为我们提供逻辑回归,即概率分类器。

  • Modified_huber - 一种平滑损失,可以容忍异常值以及概率估计。

  • squared_hinge - 与“hinge”损失类似,但受到二次惩罚。

  • 感知器- 顾名思义,它是感知器算法使用的线性损失。

2

惩罚- str,'none','l2','l1','elasticnet'

它是模型中使用的正则化项。默认为L2。我们可以使用 L1 或 'elasticnet; 同样,但两者都可能会给模型带来稀疏性,因此 L2 无法实现。

3

alpha - 浮点数,默认 = 0.0001

Alpha 是乘以正则化项的常数,是决定我们想要对模型进行惩罚程度的调整参数。默认值为 0.0001。

4

l1_ratio - 浮点数,默认 = 0.15

这称为 ElasticNet 混合参数。它的范围是0 <= l1_ratio <= 1。如果l1_ratio = 1,则惩罚将为L1惩罚。如果 l1_ratio = 0,则惩罚将为 L2 惩罚。

5

fit_intercept - 布尔值,默认=True

该参数指定应将常数(偏差或截距)添加到决策函数中。如果将其设置为 false,则在计算中不会使用截距,并且将假定数据已居中。

6

tol - 浮动或无,可选,默认 = 1.e-3

该参数表示迭代的停止标准。它的默认值为 False,但如果设置为 None,则迭代将在以下情况下停止: