scala-MLlib官方文档---spark.ml package--Advanced topics

Optimization of linear methods (developer)

Limited-memory BFGS (L-BFGS)

L-BFGS是拟牛顿方法族中的一种优化算法,用于解决形式为minw∈ℝdf(w)的优化问题。 L-BFGS方法在不评估目标函数的二阶导数以构造Hessian矩阵的情况下,将目标函数局部近似为二次方。 Hessian矩阵可通过以前的梯度评估来近似,因此不存在垂直可伸缩性问题(训练特征的数量),这与在Newton方法中显式计算Hessian矩阵不同。结果,与其他一阶优化相比,L-BFGS通常可以实现更快的收敛。
Orthant-Wise有限内存拟牛顿(OWL-QN)是L-BFGS的扩展,可以有效处理L1和弹性净正则化。
L-BFGS用作LinearRegression,LogisticRegression,AFTSurvivalRegression和MultilayerPerceptronClassifier的求解器。
MLlib L-BFGS求解器可以轻松调用相应的实现。

Normal equation solver for weighted least squares(加权最小二乘的法线方程求解器)

MLlib通过WeightedLeastSquares为加权最小二乘实现法线方程求解器。
给定n个加权观测值(wi,ai,bi):

  • wi:第i次观察的权重
  • ai:第i个观测的特征向量
  • bi:第i个观察的标签

每个观察的特征数为m。我们使用以下加权最小二乘公式:
在这里插入图片描述
其中λ是正则化参数,α是弹性网混合参数,δ是标签的总体标准差,σj是第j个特征列的总体标准差。
该目标函数只需要对数据进行一次传递就可以收集解决该问题所需的统计信息。对于n×m数据矩阵,这些统计信息仅需要O(m2)存储,因此当m(特征数)相对较小时,可以将它们存储在单个计算机上。然后,我们可以使用局部方法(例如直接Cholesky分解或迭代优化程序)在一台机器上求解正态方程。
Spark MLlib当前为正则方程式支持两种类型的求解器:Cholesky因式分解和拟牛顿法(L-BFGS / OWL-QN)。 Cholesky分解取决于正定协方差矩阵(即,数据矩阵的列必须线性独立),并且在违反此条件时将失败。即使协方差矩阵不是正定的,拟牛顿法仍然能够提供合理的解决方案,因此在这种情况下,正规方程求解器也可以退回到拟牛顿法。目前,始终为LinearRegression和GeneralizedLinearRegression估算器启用此后备。
WeightedLeastSquares支持L1,L2和弹性网正则化,并提供启用或禁用正则化和标准化的选项。在不应用L1正则化的情况下(即α= 0),存在解析解,可以使用Cholesky或拟牛顿求解器。当α> 0时,不存在解析解,我们改为使用拟牛顿求解器迭代地找到系数。
为了使法线方程方法更有效,WeightedLeastSquares要求要素数量不超过4096。对于较大的问题,请改用L-BFGS。

Iteratively reweighted least squares (IRLS-迭代加权最小二乘)

MLlib通过IterativelyReweightedLeastSquares实现迭代加权最小二乘(IRLS)。它可用于找到广义线性模型(GLM)的最大似然估计,在鲁棒回归和其他优化问题中找到M估计。 有关最大似然估计,请参考迭代加权最小二乘法,有关更多信息,请参见一些健壮和抗性的替代方案。
通过以下过程可以迭代地解决某些优化问题:

  • 在当前解决方案中线性化目标并更新相应权重。
  • 通过WeightedLeastSquares解决加权最小二乘(WLS)问题。
  • 重复上述步骤,直到收敛为止。

由于它涉及在每次迭代中通过WeightedLeastSquares解决加权最小二乘(WLS)问题,因此它还要求要素数量不超过4096。当前IRLS被用作GeneralizedLinearRegression的默认求解器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值