首页 > 其他 > 详细

Spark0.9分布式运行MLlib的二元分类算法

时间:2014-02-11 03:35:06      阅读:327      评论:0      收藏:0      [点我收藏+]

MLlib是的Spark实现一些常见的机器学习(ML)的功能以及相关的测试和数据生成器。 MLlib目前支持4种常见的类型的机器学习问题的设定,即,二元分类,回归,聚类和协同过滤,以及一个底层原始梯度下降优化。这个指南将概述在MLlib支持的功能,并且还提供调用MLlib的一些例子。

依赖库

MLlib使用jblas线性代数库,它本身取决于本地Fortran程序。如果不是已经安装在你的节点,你可能需要安装gfortran运行时库。如果不能自动检测到这些库,MLlib将抛出一个链接错误。
使用MLlib在Python中,您将需要安装1.7或更新版本的NumPy和Python 2.7。

二元分类含义

二元分类是一种监督学习算法问题,我们想将实体为两种不同的类别或标签,如,预测邮件是否是垃圾邮件。这个问题涉及到执行一组标签的例子学习算法,即,一组代表通过(数值)特性以及分类标签的实体。算法返回训练模型,该模型可以预测那些底层标签是未知的新实体的标签。
MLlib目前支持两种标准的二元分类模型,即线性支持向量机(向量机)和逻辑回归以及对于每个算法模型的L1和L2规则化随机变量。利用所有潜在的原始梯度下降训练算法的(在下面描述),并采取作为输入正则化参数(regParam)以及各种参数与梯度下降(stepSize,numIterations miniBatchFraction)。
可用的二元分类算法:
SVMWithSGD
LogisticRegressionWithSGD

scala模板建立

为了让sbt正确工作,我们需要正确放置SimpleApp位置。scala和simple.sbt根据典型的目录结构。一旦到位,我们可以创建一个JAR包包含应用程序的代码,然后使用sbt/sbt执行我们的程序。


二元分类代码

下面的代码片段说明了如何加载一个样本数据集,执行训练算法在训练数据中使用静态方法算法对象,并计算出实际结果和预测模型计算训练结果之间的误差。

执行结果

默认SVMWithSGD.train()方法执行L2正规化,正则化参数设置为1.0。如果我们想要配置这个算法,我们可以进一步定制SVMWithSGD,可以直接通过创建一个新的SVMWithSGD对象和调用setter方法。所有其他MLlib算法以这种方式支持定制。例如,下面的代码产生的L1正规化变体向量机与正则化参数设置为0.1,并运行200次迭代的训练算法。



Spark0.9分布式运行MLlib的二元分类算法

原文:http://blog.csdn.net/myboyliu2007/article/details/19049869

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!