Spark0.9分布式运行MLlib的线性回归算法
来源:互联网 发布:手机淘宝怎么取消订单 编辑:程序博客网 时间:2024/05/29 17:35
1 什么是线性回归
线性回归是另一个传统的有监督机器学习算法。在这个问题中,每个实体与一个实数值的标签 (而不是一个像在二元分类的0,1标签),和我们想要预测标签尽可能给出数值代表实体特征。MLlib支持线性回归以及L2(ridge)和L1(lasso)正则化参数调整。Mllib还有一个回归算法,原始梯度下降(在下面描述),和上面描述的有相同的参数二元分类算法。
可用线性回归算法:
LinearRegressionWithSGD
RidgeRegressionWithSGD
LassoWithSGD。
注意:
(1)因为是线性回归,所以学习到的函数为线性函数,即直线函数;
(2)因为是单变量,因此只有一个x;
我们能够给出单变量线性回归的模型:
我们常称x为feature,h(x)为hypothesis;
2. Gradient Descent(梯度下降)
但是又一个问题引出了,虽然给定一个函数,我们能够根据cost function知道这个函数拟合的好不好,但是毕竟函数有这么多,总不可能一个一个试吧?
因此我们引出了梯度下降:能够找出cost function函数的最小值;
梯度下降原理:将函数比作一座山,我们站在某个山坡上,往四周看,从哪个方向向下走一小步,能够下降的最快;
当然解决问题的方法有很多,梯度下降只是其中一个,还有一种方法叫Normal Equation;
方法:
(1)先确定向下一步的步伐大小,我们称为Learning rate;
(2)任意给定一个初始值:;
(3)确定一个向下的方向,并向下走预先规定的步伐,并更新;
(4)当下降的高度小于某个定义的值,则停止下降;
算法:
特点:
(1)初始点不同,获得的最小值也不同,因此梯度下降求得的只是局部最小值;
(2)越接近最小值时,下降速度越慢;
3.线性回归代码
下面的示例演示如何加载训练数据,把它解析成 LabeledPoint的RDD对象(弹性分布式数据集)。这个例子然后使用LinearRegressionWithSGD构建一个简单的线性模型来预测标签值。最后我们计算均方误差对拟合优度进行评估。
执行结果如下:
<script src="https://code.csdn.net/snippets/192040.js"></script>
- Spark0.9分布式运行MLlib的线性回归算法
- Spark0.9分布式运行MLlib的二元分类算法
- Spark0.9分布式运行MLlib的协同过滤
- Spark MLlib Linear Regression线性回归算法
- spark0.9分布式安装
- spark0.9分布式安装
- spark0.9分布式安装
- MLlib线性回归实战
- Apache Spark源码走读之22 -- 浅谈mllib中线性回归的算法实现
- Spark MLlib回归算法------线性回归、逻辑回归、SVM和ALS
- spark mllib实现线性回归
- Spark MLlib之线性回归
- MLlib回归算法(线性回归、决策树)实战演练--Spark学习(机器学习)
- Spark MLlib之线性回归源码分析
- spark1.2.0源码MLlib-线性回归
- mllib线性回归GeneralizedLinearModel GeneralizedLinearAlgorithm源码解析
- spark之MLlib机器学习-线性回归
- Spark MLlib 源代码解读之线性回归
- Python装饰器学习
- javascript继承对象冒充方式
- Pydev在Eclipse上的安装及配置
- 浏览器主页、iframe、子窗口的互相操作
- Linux---系统参数,监控小结(1)
- Spark0.9分布式运行MLlib的线性回归算法
- 完整版android视频播放器
- Python源码剖析----第二章
- 【递推】【DP】-HDU-2064-汉诺塔③
- 日期控件
- Android轻量级orm框架——KKORM
- Eclipse中为Android应用添加jar包
- NSClassFromString,NSSelectorFromString,isKingOfClass
- C++中的static