Spark稀疏向量和稠密向量

2021-09-24 04:20:43 字數 1015 閱讀 5873

旁邊的小伙一副生無可戀的表情:這是為什麼?我的**和之前寫的一樣,而且都是從官網copy的,結果怎麼是這樣子啊,我只是用向量彙編將多列轉為一列:

val va = new vectorassembler()

.setinputcols(array("age", "***", "sign", "province_code",

"lowest_usage", "three_noes", "product_type", "integrated_package", "master_deputy_card",

"card_type", "churn_warning_user", "susp_card_user", "conti_pre_package", "prefer_chann",

"net_card_user", "low_pay_user", "cur_income_month",

"acc_flow_month", "access_time", "payment_amount"))

.setoutputcol("features")

結果:

(20,[0,1,2,3,5,6,9,13,16,17,18,19],[5.0,1.0,11.0,23.0,1.0,2.0,1.0,3.0,8.0,9.0,7.0,5.0])
這是什麼鬼啊?我要的是類似於官網那種陣列型的:

[0.5909090909090909,2.0,0.14566181127295755,0.01953125,3.0,0.9754444302340454,0.544428452891636,51.0]
概念

簡單的總結:

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

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

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

這個時候小伙應該明白了,原來spark為了效率將有的向量以稀疏向量進行顯示

spark 稠密向量和稀疏向量

spark mlib的本地向量有兩種 densevctor 稠密向量 其建立方式 vector.dense 資料 sparsevector 稀疏向量 其建立方式有兩種 方法一 vector.sparse 向量長度,索引陣列,與索引陣列所對應的數值陣列 方法二 vector.sparse 向量長度,索...

spark 密集向量和稀疏向量

1 概念 稀疏向量和密集向量都是向量的表示方法 密集向量和稀疏向量的區別 密集向量的值就是乙個普通的double陣列 而稀疏向量由兩個並列的 陣列indices和values組成 例如 向量 1.0,0.0,1.0,3.0 用密集格式表示為 1.0,0.0,1.0,3.0 用稀疏格式表示為 4,0,...

Spark ML 之 稀疏和稠密向量

密集 1.0,0.0,3.0 其和一般的陣列無異 稀疏 3,0,2 1.0,3.0 其表示的含義 元素的個數,元素的下標,元素下標對應的值 比如這裡 元素個數為 3個 序號0 對應的值為1.0,需要2對應的值為3.0 其他下標的數值為0 val vd vectors.dense 2,5,8 prin...