覆盖主要内容
版本: 6.1.0

随机梯度下降

组件介绍

**“随机梯度下降”(Stochastic Gradient Descent)**控件使用梯度下降的随机逼近最小化目标函数,实现了随机梯度下降算法。可用于分类任务或回归任务。

随机梯度下降算法使用线性函数使所选择的损失函数最小化。该算法通过一次考虑一个样本逼近真实的梯度,并且同时基于损失函数的梯度来更新模型。该算法对于大规模和稀疏的数据集特别有效。


  • 输入:
    • data:数据集
    • pre: 预处理方法
  • 输出:
    • lrn: 在交互页面中配置参数后的SGD学习算法
    • mod: 已训练的模型(仅当输入端data存在时,才会有输出信息)

页面介绍

点击**“随机梯度下降”(Stochastic Gradient Descent)**控件查看参数配置页面,如下图所示:

参数选项

选项说明取值范围样例值
模型名称

设置模型名称,用于在其他组件中区分不同的模型

非空字符串SGD
算法分类损失度函数

分类任务支持的损失函数

Hinge(线性 SVM)
logistic Regression(逻辑回归 SGD)
Modified Huber(平稳的损失,对异常值和概率估计的不敏感)
Squared Hinge(Hinge 二次方)
Preceptron(感知器算法使用的线性损失,二分类的线性分类模型
Squared Loss(平方损失,拟合到普通的最小二乘法)
Huber(ε 以上的线性损失,需要设置 ε)
Epsilon insensitive(忽略ε内的误差,ε 以上的线性损失,需要设置 ε
Squared epsilon insensitive(损失超出 ε 的平方,需要设置 ε)

Hinge
回归损失度函数

回归任务支持的损失函数

Squared Loss(平方损失,拟合到普通的最小二乘法)
Huber(ε以上的线性损失,需要设置 ε)
Epsilon insensitive(忽略 ε 内的误差,ε 以上的线性损失,需要设置 ε)
Squared epsilon insensitive(损失超出 ε 的平方,需要设置 ε)

Squared Loss
正则化正则化方法正则化方法penalty

None
Lasso(L1)(L1,导致稀疏)
Ridge(L2)(L2,标准正规化)
Elastic net(混合)

正则化因子乘以正则化项的常数,值越大,正则化力度越大

0.00001~1

0.01
混合因子

l1 raio,为0时对应L2正则化,为1时对应L1正则化

0~10
学习参数学习率

Constant:学习率保持不变 eta = eta0
Optimal:由 Leon Bottou 提出的启发式方法 eta = 1.0 / (alpha * (t + t0))
Inverse scaling:收益率和迭代次数成反比 eta = eta0 / pow(t, power_t)

Constant
Optimal
Inverse scaling

Constant
初始学习率

学习率初始值

0.00001~10.01
反向缩放指数

学习率逆放指数

0~10.25
迭代次数

算法运行的最大迭代次数

1~10000005
每次迭代后混洗数据

每次迭代时是否对训练数据进行混洗

勾选/不勾选不勾选
随机混洗的固定种子数用于数据混洗0~10001

SGDClassifier详细参数说明

SGDRegressor详细参数说明

使用案例

在下图所示的案例中,使用**“加载文件”(File)控件加载数据集,连接“随机梯度下降”(Stochastic Gradient Descent)控件构建模型,之后把“加载文件”(File)控件以及“随机梯度下降”(Stochastic Gradient Descent)控件与“预测”(Predictions)**控件连接起来查看预测的结果。

案例中加载 iris 数据集,其余参数使用默认值。案例中控件的配置以及执行结果如下图所示。