天天看點

Machine Learning On Spark——第一節:基礎資料結構(一)

作者:周志湖

微信号:zhouzhihubyond

本地向量和矩陣

帶類标簽的特征向量(labeled point)

分布式矩陣

本地向量(local vector)存儲在單台機器上,索引采用0開始的整型表示,值采用double類型的值表示。spark mllib中支援兩種類型的矩陣,分别是密度向量(dense vector)和稀疏向量(spasre vector),密度向量會存儲所有的值包括零值,而稀疏向量存儲的是索引位置及值,不存儲零值,在資料量比較大時,稀疏向量才能展現它的優勢和價值。下面給出其應用示例:

本地矩陣(local matrix)指的也是存儲于單台機器上的資料結構,本地矩陣采用整體的行列序号存取元素,本地矩陣也有密度矩陣(dense matrix)、稀疏矩陣(sparse matrix)兩種存儲方法,其使用代碼如下:

labeled point是spark mllib中最重要的資料結構之一,它在無監督學習算法中使用十分廣泛,它也是一種本地向量,隻不過它提供了類的标簽,對于二進制分類,它的标簽資料為0和1,而對于多類分類,它的标簽資料為0,1,2,…。它同本地向量一樣,同時具有sparse和dense兩種實作方式,例如:

labeledpoint的稀疏向量實作方式在實際中應用最為廣泛,這是因為某一特征的次元可能達到上千,而這其中又存在大量對後期訓練無益的零值特征資訊,如果對所有的零值特征都進行存儲的話,會浪費大量的存儲空間,是以實際中常常使用稀疏的實作方式,使用的是libsvm格式:label index1:value1 index2:value2 …進行特征标簽及特征的存儲與讀取。

下列代碼示範了rowmatrix與coordinatematrix及其相關核心類的使用方法

繼續閱讀