天天看點

spark 類标簽的稀疏 特征向量

一個向量(1.0,0.0,3.0)它有2中表示的方法

密集:[1.0,0.0,3.0]    其和一般的數組無異

稀疏:(3,[0,2],[1.0,3.0])     其表示的含義(向量大小,序号,值)   序号從0開始

本地向量(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 …進行特征标簽及特征的存儲與讀取。

本文轉自張昺華-sky部落格園部落格,原文連結:http://www.cnblogs.com/bonelee/p/7814081.html,如需轉載請自行聯系原作者

繼續閱讀