Spark MLlib中分类和回归算法

Spark MLlib中分类和回归算法:

  • -分类算法:

pyspark.mllib.classification

-朴素贝叶斯 NaiveBayes

-支持向量机(优化:随机梯度下降)SVMWithSGD

-逻辑回归  LogisticRegressionWithSGD

// 从Spark 2.0开始,官方推荐使用BFGS方式优化LR算法

LogisticRegressionWithBFGS

// 针对流式数据实时模型训练算法

StreamingLogisticRegressionWithSGD

  • -树Tree相关分类算法:

pyspark.mllib.tree

  -决策树 DecisionTree

   -随机森林算法 –集成学习算法-Bagging方式   RandomForest

   -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

    Spark MLlib中从底层源码来看,无论是DT 还是RF还是GBT算法,底层都是RF算法实现的。

  • -分类算法的类别:

  树相关的算法,既可以做二分类,又可以做多分类算法:

  numClass: Number of classes for classification

  -二分类

  NB、SVM、LR

  -多分类

   NB、LR

监督学习算法:

数据集RDD[LabeledPoint]

标签向量 LabelPoint = feature: Vector + label: Float

类比:

RDD 类似 矩阵

数组 类比  Vector

无论是矩阵还是向量分为两种类型:

-稀疏类型

稀疏矩阵,稀疏向量

-稠密类型

稠密矩阵,稠密向量

Spark MLlib中回归算法(基于RDD 实现算法库):

-a. 线性回归算法相关:

LinerRegressionWithSGD

LassoWithSGD

L1-regularization

RidgeRegressionWithSGD

L2-regularization

-b. 树算法相关

    -决策树 DecisionTree

      -随机森林算法 –集成学习算法-Bagging方式   RandomForest

      -梯度提升决策树算法 –集成学习算法 –Boosting方式  GradientBoostedTrees

基于DataFrame实现机器学习库,几个重要的概念:

-a. DataFrame

类似Pandas中dataframe,将算法所有的数据集存储在DataFrame数据结构中。

DataFrame = RDD + Schema(字段名称、字段类型)

-b. Estimator

模型学习器,就是算法,比如ALS,DecisionTree,将数据应用到模型学习器中会得到一个模型Model。

每个模型学习器中有个一个方法(训练模型):

fit(dataframe) -> Model

-c. Transformer

转换器,就是模型Model或者算法,比如ALSModel,将针对数据集中某一列或某几列数据生成预测另外一列新数据。

ALSModel.transform(dataframe)

userId,itemId  -> predictRating

-d. Parameters

封装算法训练时参数或者模型预测时参数,底层是字典Dic(Map集合),其中字典的Key就是参数名称,字典的Value就是参数的值。

比如:使用ALS模型学习器训练模型,设置参数:特征数rank和迭代次数iterations,可以使用Parameters组合封装设置。

-e. Pipeline

管道,Spark ML机器学习库从SK-Learn中借鉴

由很多Stage组成:

一个序列的Stages组成,每个Stage要么是转换器Estimator(模型),要么是模型学习器Estimator(算法)

本身来说:

Pipeline就是一个模型学习器,相当于算法,所以里面有一个fit函数,应用数据训练以后得到PipelineModel转换器,可以进行预测数据。

功能:

将某个机器学习应用中整个流程进行串联起来,方便部署测试使用。

原文地址:https://www.cnblogs.com/ltolstar/p/10278918.html

时间: 2024-10-08 17:03:16

Spark MLlib中分类和回归算法的相关文章

Spark MLlib Logistic Regression逻辑回归算法

1.1 逻辑回归算法 1.1.1 基础理论 logistic回归本质上是线性回归,只是在特征到结果的映射中加入了一层函数映射,即先把特征线性求和,然后使用函数g(z)将最为假设函数来预测.g(z)可以将连续值映射到0和1上. 它与线性回归的不同点在于:为了将线性回归输出的很大范围的数,例如从负无穷到正无穷,压缩到0和1之间,这样的输出值表达为"可能性"才能说服广大民众.当然了,把大值压缩到这个范围还有个很好的好处,就是可以消除特别冒尖的变量的影响. Logistic函数(或称为Sigm

基于Spark MLlib平台的协同过滤算法---电影推荐系统

基于Spark MLlib平台的协同过滤算法---电影推荐系统 又好一阵子没有写文章了,阿弥陀佛...最近项目中要做理财推荐,所以,回过头来回顾一下协同过滤算法在推荐系统中的应用. 说到推荐系统,大家可能立马会想到协同过滤算法.本文基于Spark MLlib平台实现一个向用户推荐电影的简单应用.其中,主要包括三部分内容: 协同过滤算法概述 基于模型的协同过滤应用---电影推荐 实时推荐架构分析     一.协同过滤算法概述 本人对算法的研究,目前还不是很深入,这里简单的介绍下其工作原理. 通常,

Apache Spark源码走读之22 -- Spark MLLib中拟牛顿法L-BFGS的源码实现

欢迎转载,转载请注明出处,徽沪一郎. 概要 本文就拟牛顿法L-BFGS的由来做一个简要的回顾,然后就其在spark mllib中的实现进行源码走读. 拟牛顿法 数学原理 代码实现 L-BFGS算法中使用到的正则化方法是SquaredL2Updater. 算法实现上使用到了由scalanlp的成员项目breeze库中的BreezeLBFGS函数,mllib中自定义了BreezeLBFGS所需要的DiffFunctions. runLBFGS函数的源码实现如下 def runLBFGS( data:

Spark mllib多层分类感知器在情感分析中的实际应用

import org.apache.spark.ml.Pipeline import org.apache.spark.ml.classification.MultilayerPerceptronClassifier import org.apache.spark.ml.evaluation.MulticlassClassificationEvaluator import org.apache.spark.ml.feature.{IndexToString, StringIndexer, Wor

spark.mllib源码阅读-优化算法1-Gradient

Spark中定义的损失函数及梯度,在看源码之前,先回顾一下机器学习中定义了哪些损失函数,毕竟梯度求解是为优化求解损失函数服务的. 监督学习问题是在假设空间F中选取模型f作为决策函数,对于给定的输入X,由f(X)给出相应的输出Y,这个输出的预测值f(X)与真实值Y可能一致也可能不一致,用一个损失函数(lossfunction)或代价函数(cost function)来度量预测错误的程度.损失函数是f(X)和Y的非负实值函数,记作L(Y, f(X)). 统计学习中常用的损失函数有以下几种: (1)

掌握Spark机器学习库-07-线性回归算法概述

1)简介 自变量,因变量,线性关系,相关系数,一元线性关系,多元线性关系(平面,超平面) 2)使用线性回归算法的前提 3)应用例子 沸点与气压 浮力与表面积 原文地址:https://www.cnblogs.com/moonlightml/p/9787971.html

Spark MLlib算法调用展示平台及其实现过程

1. 软件版本: IDE:Intellij IDEA 14,Java:1.7,Scala:2.10.6:Tomcat:7,CDH:5.8.0: Spark:1.6.0-cdh5.8.0-hadoop2.6.0-cdh5.8.0 : Hadoop:hadoop2.6.0-cdh5.8.0:(使用的是CDH提供的虚拟机) 2. 工程下载及部署: Scala封装Spark算法工程:https://github.com/fansy1990/Spark_MLlib_Algorithm_1.6.0.git

Spark机器学习中ml和mllib中矩阵、向量

1:Spark ML与Spark MLLIB区别? Spark MLlib是面向RDD数据抽象的编程工具类库,现在已经逐渐不再被Spark团队支持,逐渐转向Spark ML库,Spark ML是面向DataFrame编程的. 2:Spark ML与Spark MLLIB中矩阵.向量定义区别? 这两个类库中的矩阵与向量对比可以发现几乎都是一样的,就是为了以后维护Spark ML方便. 3:Spark ML中稀疏向量与稠密向量区别? 稠密向量存储:底层存储使用完成的Double Array存储. 稀

使用 Spark MLlib 做 K-means 聚类分析[转]

原文地址:https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice4/ 引言 提起机器学习 (Machine Learning),相信很多计算机从业者都会对这个技术方向感到兴奋.然而学习并使用机器学习算法来处理数据却是一项复杂的工作,需要充足的知识储备,如概率论,数理统计,数值逼近,最优化理论等.机器学习旨在使计算机具有人类一样的学习能力和模仿能力,这也是实现人工智能的核心思想和方法.传统的机器学习算法,由于技术和