第2章 Spark机器学习中的线性代数库
在本章中,我们将讲解下面的攻略:
- Vector和Matrix的包引入和初始化设置;
- 使用Spark 2.0创建和配置DenseVector;
- 使用Spark 2.0创建和配置SparseVector;
- 使用Spark 2.0创建和配置DenseMatrix;
- 使用Spark 2.0的本地SparseMatrix;
- 使用Spark 2.0进行Vector运算;
- 使用Spark 2.0进行Matrix运算;
- 研究Spark 2.0 分布式RowMatrix;
- 研究Spark 2.0分布式IndexedRowMatrix;
- 研究Spark 2.0分布式CoordinateMatrix;
- 研究Spark 2.0分布式BlockMatrix。
2.1 引言
线性代数是机器学习(Machine Learning,ML)和数学规划(Mathematical Programming,MP)的基础。在使用Spark机器学习库时,需要清楚知道Scala(默认导入)的Vector/Matrix和Spark的ML、MLlib Vector、Matrix是不同的,后者是使用Spark(并行计算)解决大规模Matrix/Vector计算(例如,在某些领域运用衍生品定价和风险分析需要更高数值精度的SVD实现方案)时用到的一种由RDD所支持的数据结构。Scala的Vector/Matrix函数库提供了一套丰富的线性代数操作(例如点积、加法等),在机器学习管道的应用中仍然占有一席之地。总而言之,使用Scala Breeze和Spark/Spark ML的关键区别在于Spark由RDD所支持,在不需要额外的并发模块或其他开销时,同时支持分布式、并发计算和弹性机制。
Get Spark机器学习实战 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.