13

Korzystanie zapłonowe ML transformatory Pojawił się DataFrame gdzie każdy rząd wygląda następująco:Jak scalić wiele wektorów cech w DataFrame?

Row(object_id, text_features_vector, color_features, type_features) 

gdzie text_features jest rzadki wektor wag określony, color_features jest małe 20-element (jedna na gorąco kodera) gęsty wektor kolorów, a type_features jest również gęstym wektorem typów enkodera

Co jest dobrym podejściem (używając urządzeń Sparka) do scalenia tych funkcji w jedną, dużą tablicę, tak że mierzę rzeczy takie jak między cosinusami?

Odpowiedz

19

Można użyć VectorAssembler:

import org.apache.spark.ml.feature.VectorAssembler 
import org.apache.spark.sql.DataFrame 

val df: DataFrame = ??? 

val assembler = new VectorAssembler() 
    .setInputCols(Array("text_features", "color_features", "type_features")) 
    .setOutputCol("features") 

val transformed = assembler.transform(df) 

Na przykład PySpark zobaczyć: Encode and assemble multiple features in PySpark