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

  • 时间:
  • 浏览:1

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

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

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

作者:周志湖

微信号:zhouzhihubyond

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

LabeledPoint的稀疏向量实现办法在实际中应用最为广泛,这是可能某一组织结构的维度可能达到上千,而这其中又占据 少许对后期训练无益的零值组织结构信息,可能对所有的零值组织结构都进行存储语录,会浪费少许的存储空间,而且实际中常常使用稀疏的实现办法,使用的是LIBSVM格式:label index1:value1 index2:value2 …进行组织结构标签及组织结构的存储与读取。

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