Spark期末复习(五)Spark MLlib

Spark MLlib简介

  • 算法与模型:没有经过数据训练之前的是算法,训练后的是模型
  • spark机器学习:突破传统机器学习算法的单机限制,使用分布式计算框架,对全局数据进行机器学习

在这里插入图片描述
在这里插入图片描述

  • MLlib库包括:分类、回归、聚类、协同过滤、降维
  • 特征化工具:特征提取、转化、降维
  • 机器学习不同的包:
    • spark.mllib:基于RDD的数据抽象
    • spark.ml:基于DataFrame的数据抽象,可以将spark SQL与机器学习库融合,所以较为常用
      在这里插入图片描述

机器学习流水线(pipeline)

一个比较完整度咋的机器学习任务,一般使用过多个阶段构成流水线来完成的,另外会提供持久性,可以保存和加载算法、模型,上面的流水线都可以保存起来,下次直接使用

流水线的概念

  • 采用DataFrame结构化的数据表作为抽象

  • transformer(转化器):可以将输入数据封装为一个DataFrame,传入转换器,转换器对DataFrame进行打标签操作后再输出。也就是将一个DataFrame转换成另一个DataFrame。转换器通过训练获得,本质上就是一个模型

  • Transform() 转化器的方法

  • Estimator评估器,估计器:一个算法,评估器对DataFrame数据进行操作后,得到一个转换器

  • fit()方法:评估器实现了fit方法,数据封装到DataFrame后,将DataFrame传给fit()方法,它会自动使用数据进行训练,得到一个模型(转换器)

  • PipeLine流水线(管道):转换器与估计器之间反复组合,形成一个非常犊砸的机器学习流水线

  • 构建Pipeline流水线:

    • 定义Pipeline中的各个流水线阶段PipelineStage(包括转换器、评估器)

    • 按照处理逻辑,将转换器和评估器有序地组织起来构成Pipeline

    • 先通过new Pipeline()生成流水线‘,再调用**setStage()**方法,将流水线各个节点的名称传给它,生成一个Pipeline。

      val pipeline = new Pipeline().setStage(Array(stage1,stage2,stage3...))
      
    • 流水线本身不是一个模型,本质上很多时候是个评估器,所以需要对流水线使用fit()方法输入原始数据去训练,从而得到流水线模型 PipeLine Model,是pipelineMode类的一个示例,可以用来预测相关数据

构建机器学习流水线

示例:逻辑回归:找出所有包含spark的句子(包含则打为1,否则为0)

  1. 构架SparkSession对象
    SparkSession.builder().master("local").appName("xx").getOrCreate()
    
  2. 导入包并构建训练数据集在这里插入图片描述
  3. 根据任务需求,构建pipelineStage(可能是转换器,也可能是评估器)
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

传入测试数据,生成模型在这里插入图片描述在这里插入图片描述
在这里插入图片描述
4. 构建测试数据,转化成DataFrame
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值