当前位置: 首页 > news >正文

MLlib中的vector和线性代数运算

目前最新的Spark 1.1.0版本中MLlib主要还是对核心算法的支持,辅助处理模块还很不完善。源代码包和其功能的对应关系如下:

 

classification/clustering/regression/tree分类算法、回归算法、决策树、聚类算法
optimization核心算法的优化方法实现
stat基础统计
feature预处理
evaluation算法效果衡量
linalg基础线性代数运算支持
recommendation推荐算法

MLlib中的vector和线性代数运算

不知道大家有没有注意到一个问题,就是MLlib底层的矩阵运算使用了breeze库,breeze库提供了vector/matrix的实现 以及相应计算的接口(linalg)。但是在MLlib里面同时也提供了vector和linalg等的实现(目前只是对breeze做了一层包装)。在 所有的MLlib的函数里面的参数传递都是使用Mllib自己的vector,而且在函数内的矩阵计算又通过 toBreeze.toDenseVector变成breeze的形式进行运算。这样做的目的一是保持自己函数接口的稳定性,不会因为breeze的变化 而变化;另外一个就是可以把distributed matrix作为一种matrix的实现而被使用。

 

6,开发环境

Spark集群(standalone、yarn-client、yarn-cluster、单机调试环境)。

我主要使用Scala开发,IDE为Intellij IDEA,安装Scala插件。

开发一个project可以使用maven或者sbt编译,都可以通过IDEA创建相应的工程。 Maven编译的话和Java的maven工程没啥区别,主要是修改pom.xml文件;使用sbt编译的话,主要是修改build.sbt文件。

build.sbt的格式网上有很多资料了,简单说下需要注意的问题:

1) 必须每隔一行写新的内容;

2) libraryDependencies 后面%%和%的区别:artifactId后面带/不带版本号;

3) libraryDependencies 后面可以使用”provided”使其在assembly打包的时候不被打入包中。

开发一个基于Spark和MLlib的机器学习Job,主要依赖的两个libraryDependencies就是spark-core和spark-mllib。

其实使用Scala开发Spark程序最重要的一点就是要知道你写的代码中哪些是RDD的操作,哪些是在RDD内部的操作,哪些是 transform,哪些是actions,哪个地方会形成一个stage。这些搞清楚之后就明白了哪些code是在Driver上执行的,哪些是在 executor上并行执行的。另外就是哪些资源相关的参数,像executor-memory和num-executors等。

转载于:https://www.cnblogs.com/ylx1214/p/4460409.html

相关文章:

  • HNOI2015 开店
  • LeetCode - Count Primes
  • mysql基础操作(表复制、索引、视图、内置函数、预处理、存储过程、触发器)
  • 深入解析AMS启动
  • 新闻发布系统,B/S模式下的三层应用
  • NTFS 文件系统解析
  • 【汉字乱码】IE下GET形式传递汉字。
  • Linux之convert命令
  • Cordova 安装与使用命令
  • android RelativeLayout 内容居中解决办法
  • 155. Min Stack
  • DataTables ajax重新加载数据
  • SVN更新的问题
  • Windows服务器配置与管理DHCP服务器搭建与管理
  • 线程:Message和Runnable
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 5分钟即可掌握的前端高效利器:JavaScript 策略模式
  • Android单元测试 - 几个重要问题
  • CSS实用技巧干货
  • ES6简单总结(搭配简单的讲解和小案例)
  • 复杂数据处理
  • 目录与文件属性:编写ls
  • 如何用Ubuntu和Xen来设置Kubernetes?
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 项目实战-Api的解决方案
  • 小李飞刀:SQL题目刷起来!
  • 写代码的正确姿势
  • 译有关态射的一切
  • 在Docker Swarm上部署Apache Storm:第1部分
  • # 数据结构
  • #常见电池型号介绍 常见电池尺寸是多少【详解】
  • #我与Java虚拟机的故事#连载08:书读百遍其义自见
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (1)STL算法之遍历容器
  • (3)选择元素——(17)练习(Exercises)
  • (7)STL算法之交换赋值
  • (Redis使用系列) SpringBoot 中对应2.0.x版本的Redis配置 一
  • (附源码)springboot“微印象”在线打印预约系统 毕业设计 061642
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (汇总)os模块以及shutil模块对文件的操作
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (学习日记)2024.04.10:UCOSIII第三十八节:事件实验
  • (转)scrum常见工具列表
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ./configure,make,make install的作用(转)
  • .NET 材料检测系统崩溃分析
  • .net6使用Sejil可视化日志
  • .NET连接数据库方式
  • .NET中winform传递参数至Url并获得返回值或文件
  • .net中我喜欢的两种验证码
  • @NoArgsConstructor和@AllArgsConstructor,@Builder
  • @Transactional类内部访问失效原因详解
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [ Linux ] Linux信号概述 信号的产生
  • [Android]竖直滑动选择器WheelView的实现