spark mlib中的随机梯度下降算法

本文介绍了线性回归和逻辑回归的基础,并重点讨论了梯度下降算法,将其分为批量梯度下降和随机梯度下降。在大数据场景下,由于最小二乘法的计算复杂性,通常选择梯度下降,特别是Spark MLlib中的随机梯度下降算法。文中提到了编程实现时的注意事项,如学习速率和步长的设置,强调了这两个参数对算法收敛速度和稳定性的影响。
摘要由CSDN通过智能技术生成

线性回归是利用被称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析

关于线性回归,逻辑回归的一些讲解

http://blog.csdn.net/viewcode/article/details/8794401

一般来说有最小二乘法与梯度下降算法

可以把最小二乘法看作是数学家的算法,梯度下降算法看作是程序员的算法(毕竟是搜索嘛)

算法具体的定义就不叙述了

梯度下降算法就是让损失函数的值降导最小(有可能是局部最优解)

梯度下降算法大致有两种

一,批量梯度下降算法

计算所有的数据,算出导数,然后沿着导数的反方向使损失函数减小

二,随机梯度下降算法

与批量梯度下降算法的差别就是计算的数据是从所有的数据中随机抽取的一部分

最小二乘法的准确度当然比随机梯度下降算法要高,但最小二乘法中涉及到求矩阵的逆,这是非常耗时间的,在数据很大的时候我们一般选取梯度下降算法

以上是理论内容

mlib中给出的就是随机梯度下降算法(可以设置每次计算抽取的比例,默认是1.0)

程序员要需要实现算法,具体编程过程中还有一些细节需要注意

eg:

梯度下降的速率,这个很关键,速率大了可能会在极值处震荡,速率小了收敛的速度会变慢,编程中的速率是   设置的初始速率/sqrt(迭代的次数),越接近极值的部分速率越小

还有个步长的设置,一般经验值是0.01~0.1  刚开始学习书上写的1,结果一直都不对,后来慢慢尝试自己分析,找到了问题所在,算是第一次调参吧。步长过大会使结果在最优值左右震

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值