Machine Learning On Spark——第一节:基础数据结构(一)

  • 时间:
  • 浏览:0

在Spark MLLib中,稀疏矩阵采用的是Compressed Sparse Column (CSC) 格式进行矩阵的存储,具体参见(http://www.tuicool.com/articles/A3emmqi)对稀疏矩阵存储的介绍,例如

本地矩阵(Local Matrix)指的也是存储于单台机器上的数据行态,本地矩阵采用整体的行列序号存取元素,本地矩阵都是密度矩阵(Dense Matrix)、稀疏矩阵(Sparse Matrix)本身存储办法,其使用代码如下:

LabeledPoint的稀疏向量实现办法在实际中应用最为广泛,这是是原因分析分析某一行态的维度是原因分析分析达到上千,而这其中又居于多量对后期训练无益的零值行态信息,是原因分析分析对所有的零值行态都进行存储励志的话 ,会浪费多量的存储空间,我希望实际中常常使用稀疏的实现办法,使用的是LIBSVM格式:label index1:value1 index2:value2 …进行行态标签及行态的存储与读取。

Labeled point是Spark MLlib中最重要的数据行态之一,它在无监督学习算法中使用十分广泛,它也是本身本地向量,只不过它提供了类的标签,对于二元分类,它的标签数据为0和1,而对于多类分类,它的标签数据为0,1,2,…。它同本地向量一样,同时具有Sparse和Dense本身实现办法,例如:

本地向量(Local Vector)存储在单台机器上,索引采用0刚刚始于的整型表示,值采用Double类型的值表示。Spark MLlib中支持本身类型的矩阵,分别是密度向量(Dense Vector)和稀疏向量(Spasre Vector),密度向量会存储所有的值包括零值,而稀疏向量存储的是索引位置及值,不存储零值,在数据量比较大时,稀疏向量不能体现它的优势和价值。下面给出其应用示例:

作者:周志湖

微信号:zhouzhihubyond

下列代码演示了RowMatrix与CoordinateMatrix及其相关核心类的使用办法