spark mllib 之线性回归】的更多相关文章

1.理论基础 线性回归(Linear Regression)问题属于监督学习(Supervised Learning)范畴,又称分类(Classification)或归纳学习(Inductive Learning);这类分析中训练数据集中给出的数据类标是确定的.机器学习的目标是,对于给定的一个训练数据集,通过不断的分析和学习产生一个联系属性集合和类标集合的分类函数(Classification Function)或预測函数(Prediction Function),这个函数称为分类模型(Clas…
public static void main(String[] args) { SparkConf sparkConf = new SparkConf() .setAppName("Regression") .setMaster("local[2]"); JavaSparkContext sc = new JavaSparkContext(sparkConf); JavaRDD<String> data = sc.textFile("/hom…
Spark MLlib回归算法------线性回归.逻辑回归.SVM和ALS 1.线性回归: (1)模型的建立: 回归正则化方法(Lasso,Ridge和ElasticNet)在高维和数据集变量之间多重共线性情况下运行良好. 数学上,ElasticNet被定义为L1和L2正则化项的凸组合: 通过适当设置α,ElasticNet包含L1和L2正则化作为特殊情况.例如,如果用参数α设置为1来训练线性回归模型,则其等价于Lasso模型.另一方面,如果α被设置为0,则训练的模型简化为ridge回归模型.…
不多说,直接上干货! 具体,见 Spark Mllib机器学习(算法.源码及实战详解)的第2章 Spark数据操作…
  http://product.dangdang.com/23829918.html Spark作为新兴的.应用范围最为广泛的大数据处理开源框架引起了广泛的关注,它吸引了大量程序设计和开发人员进行相关内容的学习与开发,其中 MLlib是 Spark框架使用的核心.本书是一本细致介绍 Spark MLlib程序设计的图书,入门简单,示例丰富. 本书分为 12章,从 Spark基础安装和配置开始,依次介绍 MLlib程序设计基础.MLlib的数据对象构建.MLlib中 RDD使用介绍,各种分类.聚…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .机器学习概念 1.1 机器学习的定义 在维基百科上对机器学习提出以下几种定义: l“机器学习是一门人工智能的科学,该领域的主要研究对象是人工智能,特别是如何在经验学习中改善具体算法的性能”. l“机器学习是对能通过经验自动改进的计算机算法的研究”. l“机器学习是用数据或以往的经验,以此优化计算机程序的性能标准.” 一种经常引用的英文定义是:A computer program is said t…
[注]该系列文章以及使用到安装包/测试数据 可以在<倾情大奉送--Spark入门实战系列>获取 .MLlib实例 1.1 聚类实例 1.1.1 算法说明 聚类(Cluster analysis)有时也被翻译为簇类,其核心任务是:将一组目标object划分为若干个簇,每个簇之间的object尽可能相似,簇与簇之间的object尽可能相异.聚类算法是机器学习(或者说是数据挖掘更合适)中重要的一部分,除了最为简单的K-Means聚类算法外,比较常见的还有层次法(CURE.CHAMELEON等).网格…
MLlib的设计原理:把数据以RDD的形式表示,然后在分布式数据集上调用各种算法.MLlib就是RDD上一系列可供调用的函数的集合. 操作步骤: 1.用字符串RDD来表示信息. 2.运行MLlib中的一个特征提取算法来吧文本数据转换为数值的特征.给操作会返回一个向量RDD. 3.对向量RDD调用分类算法,返回一个模型对象,可以使用该对象对新的数据点进行分类. 4.使用MLlib的评估函数在测试数据集上评估模型. 机器学习基础: 机器学习算法尝试根据 训练数据 使得表示算法行为的数学目标最大化,并…
在机器学习中,一般都会按照下面几个步骤:特征提取.数据预处理.特征选择.模型训练.检验优化.那么特征的选择就很关键了,一般模型最后效果的好坏往往都是跟特征的选择有关系的,因为模型本身的参数并没有太多优化的点,反而特征这边有时候多加一个或者少加一个,最终的结果都会差别很大. 在SparkMLlib中为我们提供了几种特征选择的方法,分别是VectorSlicer.RFormula和ChiSqSelector. 下面就介绍下这三个方法的使用,强烈推荐有时间的把参考的文献都阅读下,会有所收获! Vect…
1. 概述 1.1 功能 MLlib是Spark的机器学习(machine learing)库,其目标是使得机器学习的使用更加方便和简单,其具有如下功能: ML算法:常用的学习算法,包括分类.回归.聚类和过滤: 特征:特征萃取.转换.降维和选取: Pipelines:其是一个工具,目标是用于构建.测量和调节: 使用工具:包括线性代数.统计学习和数据操作等等. 1.2 API架包 MLlib有两个API架包: 1) Spark.mllib:基于RDD的API包,在spark 2.0时已经进入维护模…
本章导读 机器学习(machine learning, ML)是一门涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多领域的交叉学科.ML专注于研究计算机模拟或实现人类的学习行为,以获取新知识.新技能,并重组已学习的知识结构使之不断改善自身. MLlib是Spark提供的可扩展的机器学习库.MLlib已经集成了大量机器学习的算法,由于MLlib涉及的算法众多,笔者只对部分算法进行了分析,其余算法只是简单列出公式,读者如果想要对公式进行推理,需要自己寻找有关概率论.数理统计.数理分析等方面的专…
Spark MLlib里面提供了几种基本的数据类型,虽然大部分在调包的时候用不到,但是在自己写算法的时候,还是很需要了解的.MLlib支持单机版本的local vectors向量和martix矩阵,也支持集群版本的matrix矩阵.他们背后使用的都是ScalaNLP中的Breeze. 更多内容参考我的大数据学习之路 Local Vector local vector是一种索引是0开始的整数.内容为double类型,存储在单机上的向量.MLlib支持两种矩阵,dense密集型和sparse稀疏型.…
决策树类模型 ml中的classification和regression主要基于以下几类: classification:决策树及其相关的集成算法,Logistics回归,多层感知模型: regression:决策树及其相关集成算法,线性回归. 主要的模型有两类:线性模型(GLM)和决策树: 其中决策树的算法都调用了org.apache.spark.ml.tree.impl.RandomForest,没有和mllib中的代码复用,但是代码逻辑几乎一样. MLlib的决策树训练算法和传统的算法不同…
在机器学习中,线性回归和逻辑回归算是最基础入门的算法,很多书籍都把他们作为第一个入门算法进行介绍.除了本身的公式之外,逻辑回归和线性回归还有一些必须要了解的内容.一个很常用的知识点就是虚拟变量(也叫做哑变量)-- 用于表示一些无法直接应用到线性公式中的变量(特征). 举个例子: 通过身高来预测体重,可以简单的通过一个线性公式来表示,y=ax+b.其中x为身高,y为体重. 现在想要多加一些特征(参数),比如性别. 那么问题来了:如何在一个公式中表示性别呢? 这就是哑变量的作用,它可以通过扩展特征值…
1. 概述 1.1 功能 MLlib是Spark的机器学习(machine learing)库,其目标是使得机器学习的使用更加方便和简单,其具有如下功能: ML算法:常用的学习算法,包括分类.回归.聚类和过滤: 特征:特征萃取.转换.降维和选取: Pipelines:其是一个工具,目标是用于构建.测量和调节: 使用工具:包括线性代数.统计学习和数据操作等等. 1.2 API架包 MLlib有两个API架包: 1) Spark.mllib:基于RDD的API包,在spark 2.0时已经进入维护模…
1.MLlib实例 1.1 聚类实例 1.1.1 算法说明 聚类(Cluster analysis)有时也被翻译为簇类,其核心任务是:将一组目标object划分为若干个簇,每个簇之间的object尽可能相似,簇与簇之间的object尽可能相异.聚类算法是机器学习(或者说是数据挖掘更合适)中重要的一部分,除了最为简单的K-Means聚类算法外,比较常见的还有层次法(CURE.CHAMELEON等).网格算法(STING.WaveCluster等),等等. 较权威的聚类问题定义:所谓聚类问题,就是给…
算法说明 线性回归是利用称为线性回归方程的函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析方法,只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归,在实际情况中大多数都是多元回归. 线性回归(Linear Regression)问题属于监督学习(Supervised Learning)范畴,又称分类(Classification)或归纳学习(Inductive Learning).这类分析中训练数据集中给出的数据类型是确定的.机器学习的目标是,对于给定的一个训练数据集…
Spark MLlib架构解析 MLlib的底层基础解析 MLlib的算法库分析 分类算法 回归算法 聚类算法 协同过滤 MLlib的实用程序分析 从架构图可以看出MLlib主要包含三个部分: 底层基础:包括Spark的运行库.矩阵库和向量库: 算法库:包含广义线性模型.推荐系统.聚类.决策树和评估的算法: 实用程序:包括测试数据的生成.外部数据的读入等功能. MLlib的底层基础解析 底层基础部分主要包括向量接口和矩阵接口,这两种接口都会使用Scala语言基于Netlib和BLAS/LAPAC…
阅读前提:有一定的机器学习基础, 本文重点面向的是应用,至于机器学习的相关复杂理论和优化理论,还是多多看论文,初学者推荐Ng的公开课 /* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information r…
val path = "/usr/data/lfw-a/*" val rdd = sc.wholeTextFiles(path) val first = rdd.first println(first) val files = rdd.map { case (fileName, content) => fileName.replace("file:", "") } println(files.first)println(files.coun…
Spark MLlib提供了一些基本的统计学的算法,下面主要说明一下: 1.Summary statistics 对于RDD[Vector]类型,Spark MLlib提供了colStats的统计方法,该方法返回一个MultivariateStatisticalSummary的实例.他封装了列的最大值,最小值,均值.方差.总数.如下所示: val conf = new SparkConf().setAppName("Simple Application").setMaster(&quo…
MLlib 支持存放在单机上的本地向量和矩阵,也支持通过多个RDD实现的分布式矩阵.因此MLlib的数据类型主要分为两大类:一个是本地单机向量:另一个是分布式矩阵.下面分别介绍一下这两大类都有哪些类型: 1.Local vector(本地向量) (1)Vector 最基本的类型是Vector,该类型索引是从0开始的整型类型,值类型是double类型.并提供了两个实现:DenseVector and SparseVector.但是一把情况下都是推荐使用工厂方法来创建Vector.如下所示: imp…
http://spark.apache.org/docs/latest/mllib-decision-tree.html 以决策树作为开始,因为简单,而且也比较容易用到,当前的boosting或random forest也是常以其为基础的 决策树算法本身参考之前的blog,其实就是贪婪算法,每次切分使得数据变得最为有序   那么如何来定义有序或无序? 无序,node impurity 对于分类问题,我们可以用熵entropy或Gini来表示信息的无序程度 对于回归问题,我们用方差Variance…
刚刚spark mllib,在maven repository网站http://mvnrepository.com/中查询mllib后得到相关库的最新dependence为: <dependency>        <groupId>org.apache.spark</groupId>        <artifactId>spark-mllib-local_2.11</artifactId>        <version>2.1.…
欢迎转载,转载请注明出处,徽沪一郎. 概要 本文就拟牛顿法L-BFGS的由来做一个简要的回顾,然后就其在spark mllib中的实现进行源码走读. 拟牛顿法 数学原理 代码实现 L-BFGS算法中使用到的正则化方法是SquaredL2Updater. 算法实现上使用到了由scalanlp的成员项目breeze库中的BreezeLBFGS函数,mllib中自定义了BreezeLBFGS所需要的DiffFunctions. runLBFGS函数的源码实现如下 def runLBFGS( data:…
话不多说.直接上代码咯.欢迎交流. /** * Created by whuscalaman on 1/7/16. */import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.mllib.classification.SVMWithSGDimport org.apache.spark.mllib.linalg.Vectorsimport org.apache.spark.mllib.regression.L…
Mllib SVM实例 1.数据 数据格式为:标签, 特征1 特征2 特征3…… 0 128:51 129:159 130:253 131:159 132:50 155:48 156:238 157:252 158:252 159:252 160:237 182:54 183:227 184:253 185:252 186:239 187:233 188:252 189:57 190:6 208:10 209:60 210:224 211:252 212:253 213:252 214:202…
package iie.udps.example.spark.mllib; import java.util.regex.Pattern; import org.apache.spark.SparkConf; import org.apache.spark.api.java.JavaRDD; import org.apache.spark.api.java.JavaSparkContext; import org.apache.spark.api.java.function.Function;…
3.Spark MLlib Deep Learning Convolution Neural Network (深度学习-卷积神经网络)3.1 http://blog.csdn.net/sunbow0 Spark MLlib Deep Learning工具箱,是依据现有深度学习教程<UFLDL教程>中的算法.在SparkMLlib中的实现.详细Spark MLlib Deep Learning(深度学习)文件夹结构: 第一章Neural Net(NN) 1.源代码 2.源代码解析 3.实例 第…
Apache Spark MLlib是Apache Spark体系中重要的一块拼图:提供了机器学习的模块.只是,眼下对此网上介绍的文章不是非常多.拿KMeans来说,网上有些文章提供了一些演示样例程序,而这些程序基本和Apache Spark 官网上的程序片断类似:在得到训练模型后,差点儿都没有展示怎样使用该模型.程序运行流程.结果展示以及举例測试数据等部分. 笔者依据Apache Spark官网上的程序片断.写了一个完整的调用MLlib KMeans库的測试程序,并成功在Spark 1.0 +…