[机器学习、Spark]Spark机器学习库MLlib的概述与数据类型

17 篇文章 0 订阅
4 篇文章 0 订阅

👨‍🎓👨‍🎓博主:发量不足

📑📑本期更新内容:Spark机器学习库MLlib的概述与数据类型

📑📑下篇文章预告:Spark MLlib基本统计

💨💨简介:分享的是一个当代疫情在校封校的大学生学习笔记

目录

Spark机器学习库MLlib的概述

一.MLib的简介

二.Spark机器学习工作流程

数据类型

一.本地向量

二.标注点

三.本地矩阵


 

MLlib是Spark提供的可扩展的机器学习库,其特点是采用较为先进的迭代式、内存存储的分析计算,使得数据的计算处理速度大大高于普通的数据处理引擎。

f5b2adace2e928408bcd51dbfb947774.jpeg

Spark机器学习库MLlib的概述

一.MLib的简介

6889883ba14d4073b27eba477416292e.png

 

二.Spark机器学习工作流程

9e9b0237662d424f86080b3f7469bad0.png

5cd33cfa747b4e159ee3732b31fb3210.png

 36c48b56226f42518a1a27618e455897.png

 

数据类型

MLlib的主要数据类型包括本地向量、标注点、本地矩阵。

本地向量和本地矩阵是提供公共接口的简单数据模型,Breeze和Jblas提供了底层的线性代数运算。

在监督学习中用标注点类型表示训练样本。

 

一.本地向量

本地向量分为密集向量(Dense)和稀疏向量(Sparse),密集向量是由Double类型的数组支持,而稀疏向量是由两个并列的数组支持。

 

启动Spark集群服务(hadoop用户下spark路径):sbin/start-all.sh

启动Spark-Shell:bin/spark-shell --master local[2]

8d37a04b807740f1be2b62ea8b6c8501.png

 

导包

import org.apache.spark.mllib.linalg.{Vector,Vectors}

d994a1bb208943d39e4f4a8581ed81af.png

 

创建一个密集本地向量

val dv:Vector=Vectors.dense(1.0,0.0,3.0)

37b3530e35b94fac9b59ba3aa6f8455e.png

 

创建一个稀疏本地向量

val sv1:Vector=Vectors.sparse(3,Array(0,2),Array(1.0,3.0))

59acd4787f0847368c01e163277cdf7c.png

 

通过指定非零项目,创建稀疏本地向量

val sv22:Vector = Vectors.sparse(3,Seq((0,1.0),(2,3.0)))

1c3ecd98e36b402f938a1638107bdfbb.png

 

 

二.标注点

标签点(Labeled Point)是一个本地向量,也分稀疏或者稠密,并且是一个带有标签的本地向量。

在 MLlib 中,标签点常用于监督学习类算法。标签(Label)是用 Double 类型存放的,因此标签点可以用于回归或者分类算法中。如果是二维分类,标签则必须是 0 或 1 之间的一种。而如果是多个维度的分类,标签应当是从 0 开始的数字,代表各个分类的索引。

 

导包

import org.apache.spark.mllib.linalg.Vectors

import org.apache.spark.mllib.regression.LabeledPoint

7ddc38f8c9bd46d1b9abb1fe7cf9f245.png

创建带有正标签和密集向量的标注点pos和带有负标签和稀疏向量的标注点neg

val pos = LabeledPoint(1.0,Vectors.dense(1.0,0.0,3.0))

val neg = LabeledPoint(0.0,Vectors.sparse(3,Array(0,2),Array(1.0,3.0)))

3387d1c8575c44cd8e977b05262c46b4.png

 

三.本地矩阵

导包

import org.apache.spark.mllib.linalg.{Matrix,Matrices}

d179a532fd5e48f8acec12b6a8b675f2.png

 

创建一个3行2列的密集矩阵

val dm:Matrix = Matrices.dense(3,2,Array(1.0,3.0,5.0,2.0,4.0,6.0))

14d377d2333d44859b858e08caed6980.png

 

创建一个3行2列的稀疏矩阵

val sm:Matrix = Matrices.sparse(3,2,Array(0,1,3),Array(0,2,1),Array(9,6,8))

0129c2da41e34101972c16858d67453c.png

 

 

  • 57
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 110
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发量不足

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值