[机器学习、Spark]Spark机器学习库MLlib的概述与数据类型
2023-04-18 16:26:40 时间
👨🎓👨🎓博主:发量不足
📑📑本期更新内容:Spark机器学习库MLlib的概述与数据类型
📑📑下篇文章预告:Spark MLlib基本统计
💨💨简介:分享的是一个当代疫情在校封校的大学生学习笔记
目录
MLlib是Spark提供的可扩展的机器学习库,其特点是采用较为先进的迭代式、内存存储的分析计算,使得数据的计算处理速度大大高于普通的数据处理引擎。
Spark机器学习库MLlib的概述
一.MLib的简介
二.Spark机器学习工作流程
数据类型
MLlib的主要数据类型包括本地向量、标注点、本地矩阵。
本地向量和本地矩阵是提供公共接口的简单数据模型,Breeze和Jblas提供了底层的线性代数运算。
在监督学习中用标注点类型表示训练样本。
一.本地向量
本地向量分为密集向量(Dense)和稀疏向量(Sparse),密集向量是由Double类型的数组支持,而稀疏向量是由两个并列的数组支持。
启动Spark集群服务(hadoop用户下spark路径):sbin/start-all.sh
启动Spark-Shell:bin/spark-shell --master local[2]
导包
import org.apache.spark.mllib.linalg.{Vector,Vectors}
创建一个密集本地向量
val dv:Vector=Vectors.dense(1.0,0.0,3.0)
创建一个稀疏本地向量
val sv1:Vector=Vectors.sparse(3,Array(0,2),Array(1.0,3.0))
通过指定非零项目,创建稀疏本地向量
val sv22:Vector = Vectors.sparse(3,Seq((0,1.0),(2,3.0)))
二.标注点
标签点(Labeled Point)是一个本地向量,也分稀疏或者稠密,并且是一个带有标签的本地向量。
在 MLlib 中,标签点常用于监督学习类算法。标签(Label)是用 Double 类型存放的,因此标签点可以用于回归或者分类算法中。如果是二维分类,标签则必须是 0 或 1 之间的一种。而如果是多个维度的分类,标签应当是从 0 开始的数字,代表各个分类的索引。
导包
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
创建带有正标签和密集向量的标注点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)))
三.本地矩阵
导包
import org.apache.spark.mllib.linalg.{Matrix,Matrices}
创建一个3行2列的密集矩阵
val dm:Matrix = Matrices.dense(3,2,Array(1.0,3.0,5.0,2.0,4.0,6.0))
创建一个3行2列的稀疏矩阵
val sm:Matrix = Matrices.sparse(3,2,Array(0,1,3),Array(0,2,1),Array(9,6,8))
相关文章
- EasyCVR对接华为iVS订阅摄像机和用户变更请求接口介绍
- 精选 | 腾讯云CDN内容加速场景有哪些?
- 模块化网络防止基于模型的多任务强化学习中的灾难性干扰
- 用搜索和注意力学习稳健的调度方法
- 用于多变量时间序列异常检测的学习图神经网络
- 助力政企自动化自然生长,华为WeAutomate RPA是怎么做到的?
- 使用腾讯轻量云搭建Fiora聊天室
- TSRC安全测试规范
- 云计算“功守道”
- 助力成本优化,腾讯全场景在离线混部系统Caelus正式开源
- Flink 利器:开源平台 StreamX 简介
- 腾讯云实践 | 一图揭秘腾讯碳中和?解决方案
- 深度学习中的轻量级网络架构总结与代码实现
- 信息系统项目管理师(高项复习笔记三)
- Adobe国际认证让科技赋能时尚
- c++该怎么学习(面试吃土记)
- 面试官问发布订阅模式是在问什么?
- 面试官:请实现一个通用函数把 callback 转成 promise
- 空中悬停、翻滚转身、成功着陆,我用强化学习「回收」了SpaceX的火箭
- 中山大学林倞解读视觉语义理解新趋势:从表达学习到知识及因果融合